summaryrefslogtreecommitdiffstats
path: root/test/MC
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2011-02-20 12:57:14 +0000
committerdim <dim@FreeBSD.org>2011-02-20 12:57:14 +0000
commitcbb70ce070d220642b038ea101d9c0f9fbf860d6 (patch)
treed2b61ce94e654cb01a254d2195259db5f9cc3f3c /test/MC
parent4ace901e87dac5bbbac78ed325e75462e48e386e (diff)
downloadFreeBSD-src-cbb70ce070d220642b038ea101d9c0f9fbf860d6.zip
FreeBSD-src-cbb70ce070d220642b038ea101d9c0f9fbf860d6.tar.gz
Vendor import of llvm trunk r126079:
http://llvm.org/svn/llvm-project/llvm/trunk@126079
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/ARM/arm_fixups.s7
-rw-r--r--test/MC/ARM/arm_instructions.s284
-rw-r--r--test/MC/ARM/arm_word_directive.s6
-rw-r--r--test/MC/ARM/dg.exp (renamed from test/MC/AsmParser/ARM/dg.exp)2
-rw-r--r--test/MC/ARM/elf-eflags-eabi.s13
-rw-r--r--test/MC/ARM/elf-movt.s39
-rw-r--r--test/MC/ARM/elf-reloc-01.ll71
-rw-r--r--test/MC/ARM/elf-reloc-02.ll51
-rw-r--r--test/MC/ARM/elf-reloc-03.ll98
-rw-r--r--test/MC/ARM/hilo-16bit-relocations.s20
-rw-r--r--test/MC/ARM/neon-abs-encoding.s31
-rw-r--r--test/MC/ARM/neon-absdiff-encoding.s82
-rw-r--r--test/MC/ARM/neon-add-encoding.s137
-rw-r--r--test/MC/ARM/neon-bitcount-encoding.s31
-rw-r--r--test/MC/ARM/neon-bitwise-encoding.s47
-rw-r--r--test/MC/ARM/neon-cmp-encoding.s115
-rw-r--r--test/MC/ARM/neon-convert-encoding.s38
-rw-r--r--test/MC/ARM/neon-dup-encoding.s27
-rw-r--r--test/MC/ARM/neon-minmax-encoding.s58
-rw-r--r--test/MC/ARM/neon-mov-encoding.s117
-rw-r--r--test/MC/ARM/neon-mul-accum-encoding.s67
-rw-r--r--test/MC/ARM/neon-mul-encoding.s56
-rw-r--r--test/MC/ARM/neon-neg-encoding.s30
-rw-r--r--test/MC/ARM/neon-pairwise-encoding.s86
-rw-r--r--test/MC/ARM/neon-reciprocal-encoding.s26
-rw-r--r--test/MC/ARM/neon-reverse-encoding.s26
-rw-r--r--test/MC/ARM/neon-satshift-encoding.s150
-rw-r--r--test/MC/ARM/neon-shift-encoding.s160
-rw-r--r--test/MC/ARM/neon-shiftaccum-encoding.s98
-rw-r--r--test/MC/ARM/neon-shuffle-encoding.s46
-rw-r--r--test/MC/ARM/neon-sub-encoding.s108
-rw-r--r--test/MC/ARM/neon-table-encoding.s19
-rw-r--r--test/MC/ARM/neon-vld-encoding.s110
-rw-r--r--test/MC/ARM/neon-vst-encoding.s101
-rw-r--r--test/MC/ARM/neont2-abs-encoding.s33
-rw-r--r--test/MC/ARM/neont2-absdiff-encoding.s86
-rw-r--r--test/MC/ARM/neont2-add-encoding.s138
-rw-r--r--test/MC/ARM/neont2-bitcount-encoding.s34
-rw-r--r--test/MC/ARM/neont2-bitwise-encoding.s49
-rw-r--r--test/MC/ARM/neont2-cmp-encoding.s36
-rw-r--r--test/MC/ARM/neont2-convert-encoding.s40
-rw-r--r--test/MC/ARM/neont2-dup-encoding.s29
-rw-r--r--test/MC/ARM/neont2-minmax-encoding.s60
-rw-r--r--test/MC/ARM/neont2-mov-encoding.s119
-rw-r--r--test/MC/ARM/neont2-mul-accum-encoding.s69
-rw-r--r--test/MC/ARM/neont2-mul-encoding.s58
-rw-r--r--test/MC/ARM/neont2-neg-encoding.s32
-rw-r--r--test/MC/ARM/neont2-pairwise-encoding.s89
-rw-r--r--test/MC/ARM/neont2-reciprocal-encoding.s28
-rw-r--r--test/MC/ARM/neont2-reverse-encoding.s26
-rw-r--r--test/MC/ARM/neont2-satshift-encoding.s152
-rw-r--r--test/MC/ARM/neont2-shift-encoding.s162
-rw-r--r--test/MC/ARM/neont2-shiftaccum-encoding.s100
-rw-r--r--test/MC/ARM/neont2-shuffle-encoding.s48
-rw-r--r--test/MC/ARM/neont2-sub-encoding.s46
-rw-r--r--test/MC/ARM/neont2-table-encoding.s21
-rw-r--r--test/MC/ARM/neont2-vld-encoding.s112
-rw-r--r--test/MC/ARM/neont2-vst-encoding.s103
-rw-r--r--test/MC/ARM/prefetch.ll58
-rw-r--r--test/MC/ARM/reg-list.s8
-rw-r--r--test/MC/ARM/simple-encoding.ll237
-rw-r--r--test/MC/ARM/simple-fp-encoding.s236
-rw-r--r--test/MC/ARM/thumb.s70
-rw-r--r--test/MC/ARM/thumb2.s286
-rw-r--r--test/MC/ARM/thumb2_instructions.s12
-rw-r--r--test/MC/AsmParser/ARM/arm_instructions.s8
-rw-r--r--test/MC/AsmParser/ARM/arm_word_directive.s6
-rw-r--r--test/MC/AsmParser/ELF/dg.exp6
-rw-r--r--test/MC/AsmParser/X86/x86_32-avx-clmul-encoding.s42
-rw-r--r--test/MC/AsmParser/X86/x86_32-bit.s1631
-rw-r--r--test/MC/AsmParser/X86/x86_32-bit_cat.s7862
-rw-r--r--test/MC/AsmParser/X86/x86_32-mismatched-add.s8
-rw-r--r--test/MC/AsmParser/X86/x86_64-incl_decl.s26
-rw-r--r--test/MC/AsmParser/X86/x86_64-new-encoder.s159
-rw-r--r--test/MC/AsmParser/X86/x86_64-operands.s15
-rw-r--r--test/MC/AsmParser/X86/x86_64-suffix-matching.s10
-rw-r--r--test/MC/AsmParser/X86/x86_instructions.s175
-rw-r--r--test/MC/AsmParser/dash-n.s7
-rw-r--r--test/MC/AsmParser/directive_abort.s2
-rw-r--r--test/MC/AsmParser/directive_ascii.s7
-rw-r--r--test/MC/AsmParser/directive_loc.s2
-rw-r--r--test/MC/AsmParser/directive_set.s5
-rw-r--r--test/MC/AsmParser/directive_values.s20
-rw-r--r--test/MC/AsmParser/equ.s9
-rw-r--r--test/MC/AsmParser/expr_symbol_modifiers.s14
-rw-r--r--test/MC/AsmParser/exprs.s77
-rw-r--r--test/MC/AsmParser/floating-literals.s35
-rw-r--r--test/MC/AsmParser/full_line_comment.s8
-rw-r--r--test/MC/AsmParser/ifdef.s29
-rw-r--r--test/MC/AsmParser/ifndef.s29
-rw-r--r--test/MC/AsmParser/paren.s8
-rw-r--r--test/MC/AsmParser/rename.s10
-rw-r--r--test/MC/AsmParser/section.s107
-rw-r--r--test/MC/COFF/align-nops.s50
-rw-r--r--test/MC/COFF/basic-coff.ll136
-rw-r--r--test/MC/COFF/basic-coff.s133
-rw-r--r--test/MC/COFF/bss.s15
-rw-r--r--test/MC/COFF/dg.exp2
-rw-r--r--test/MC/COFF/module-asm.ll26
-rw-r--r--test/MC/COFF/simple-fixups.s50
-rw-r--r--test/MC/COFF/switch-relocations.ll3
-rw-r--r--test/MC/COFF/symbol-alias.s62
-rw-r--r--test/MC/COFF/symbol-fragment-offset.ll182
-rw-r--r--test/MC/COFF/symbol-fragment-offset.s187
-rw-r--r--test/MC/COFF/weak.s51
-rw-r--r--test/MC/Disassembler/ARM/arm-tests.txt (renamed from test/MC/Disassembler/arm-tests.txt)29
-rw-r--r--test/MC/Disassembler/ARM/dg.exp (renamed from test/MC/Disassembler/dg.exp)0
-rw-r--r--test/MC/Disassembler/ARM/neon-tests.txt (renamed from test/MC/Disassembler/neon-tests.txt)12
-rw-r--r--test/MC/Disassembler/ARM/thumb-tests.txt (renamed from test/MC/Disassembler/thumb-tests.txt)21
-rw-r--r--test/MC/Disassembler/MBlaze/dg.exp6
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_branch.txt119
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_fpu.txt47
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_fsl.txt338
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_imm.txt121
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_memory.txt65
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_operands.txt197
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_pattern.txt14
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_shift.txt29
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_special.txt105
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_typea.txt74
-rw-r--r--test/MC/Disassembler/MBlaze/mblaze_typeb.txt56
-rw-r--r--test/MC/Disassembler/X86/dg.exp6
-rw-r--r--test/MC/Disassembler/X86/simple-tests.txt (renamed from test/MC/Disassembler/simple-tests.txt)8
-rw-r--r--test/MC/Disassembler/X86/truncated-input.txt4
-rw-r--r--test/MC/ELF/abs.s16
-rw-r--r--test/MC/ELF/alias-reloc.s52
-rw-r--r--test/MC/ELF/alias.s85
-rw-r--r--test/MC/ELF/align-bss.s17
-rw-r--r--test/MC/ELF/align-nops.s40
-rw-r--r--test/MC/ELF/align-size.s13
-rw-r--r--test/MC/ELF/align-text.s19
-rw-r--r--test/MC/ELF/align.s32
-rw-r--r--test/MC/ELF/bad-section.s9
-rw-r--r--test/MC/ELF/basic-elf-32.s78
-rw-r--r--test/MC/ELF/basic-elf-64.s82
-rw-r--r--test/MC/ELF/call-abs.s24
-rw-r--r--test/MC/ELF/cfi-advance-loc2.s45
-rw-r--r--test/MC/ELF/cfi-def-cfa-offset.s46
-rw-r--r--test/MC/ELF/cfi-def-cfa-register.s41
-rw-r--r--test/MC/ELF/cfi-def-cfa.s42
-rw-r--r--test/MC/ELF/cfi-offset.s42
-rw-r--r--test/MC/ELF/cfi-remember.s45
-rw-r--r--test/MC/ELF/cfi-zero-addr-delta.s48
-rw-r--r--test/MC/ELF/cfi.s674
-rw-r--r--test/MC/ELF/comdat.s86
-rw-r--r--test/MC/ELF/common.s88
-rw-r--r--test/MC/ELF/common2.s21
-rw-r--r--test/MC/ELF/debug-line.s22
-rw-r--r--test/MC/ELF/debug-loc.s32
-rw-r--r--test/MC/ELF/dg.exp2
-rw-r--r--test/MC/ELF/diff.s15
-rw-r--r--test/MC/ELF/diff2.s13
-rw-r--r--test/MC/ELF/elf_directive_previous.s (renamed from test/MC/AsmParser/ELF/directive_previous.s)0
-rw-r--r--test/MC/ELF/elf_directive_section.s (renamed from test/MC/AsmParser/ELF/directive_section.s)0
-rw-r--r--test/MC/ELF/empty-dwarf-lines.s21
-rw-r--r--test/MC/ELF/empty.s70
-rw-r--r--test/MC/ELF/entsize.ll44
-rw-r--r--test/MC/ELF/entsize.s69
-rw-r--r--test/MC/ELF/file.s23
-rw-r--r--test/MC/ELF/global-offset.s18
-rw-r--r--test/MC/ELF/got.s25
-rw-r--r--test/MC/ELF/ident.s17
-rw-r--r--test/MC/ELF/invalid-symver.s7
-rw-r--r--test/MC/ELF/leb128.s19
-rw-r--r--test/MC/ELF/local-reloc.s31
-rw-r--r--test/MC/ELF/merge.s97
-rw-r--r--test/MC/ELF/n_bytes.s20
-rw-r--r--test/MC/ELF/no-fixup.s16
-rw-r--r--test/MC/ELF/noexec.s24
-rw-r--r--test/MC/ELF/norelocation.s18
-rw-r--r--test/MC/ELF/pic-diff.s29
-rw-r--r--test/MC/ELF/plt.s14
-rw-r--r--test/MC/ELF/relax-arith.s75
-rw-r--r--test/MC/ELF/relax-crash.s11
-rw-r--r--test/MC/ELF/relax.s27
-rw-r--r--test/MC/ELF/relocation-386.s226
-rw-r--r--test/MC/ELF/relocation.s114
-rw-r--r--test/MC/ELF/rename.s46
-rw-r--r--test/MC/ELF/section.s110
-rw-r--r--test/MC/ELF/set.s34
-rw-r--r--test/MC/ELF/sleb.s29
-rw-r--r--test/MC/ELF/symref.s165
-rw-r--r--test/MC/ELF/tls-i386.s64
-rw-r--r--test/MC/ELF/tls.s48
-rw-r--r--test/MC/ELF/type.s32
-rw-r--r--test/MC/ELF/uleb.s22
-rw-r--r--test/MC/ELF/undef.s46
-rw-r--r--test/MC/ELF/undef2.s10
-rw-r--r--test/MC/ELF/weak.s30
-rw-r--r--test/MC/ELF/weakref-plt.s8
-rw-r--r--test/MC/ELF/weakref-reloc.s49
-rw-r--r--test/MC/ELF/weakref.s234
-rw-r--r--test/MC/ELF/zero.s16
-rw-r--r--test/MC/MBlaze/dg.exp5
-rw-r--r--test/MC/MBlaze/mblaze_branch.s197
-rw-r--r--test/MC/MBlaze/mblaze_fpu.s77
-rw-r--r--test/MC/MBlaze/mblaze_fsl.s568
-rw-r--r--test/MC/MBlaze/mblaze_imm.s194
-rw-r--r--test/MC/MBlaze/mblaze_memory.s107
-rw-r--r--test/MC/MBlaze/mblaze_operands.s328
-rw-r--r--test/MC/MBlaze/mblaze_pattern.s22
-rw-r--r--test/MC/MBlaze/mblaze_shift.s47
-rw-r--r--test/MC/MBlaze/mblaze_special.s167
-rw-r--r--test/MC/MBlaze/mblaze_typea.s122
-rw-r--r--test/MC/MBlaze/mblaze_typeb.s92
-rw-r--r--test/MC/MachO/absolutize.s6
-rw-r--r--test/MC/MachO/comm-1.s2
-rw-r--r--test/MC/MachO/darwin-ARM-reloc.s171
-rw-r--r--test/MC/MachO/darwin-Thumb-reloc.s139
-rw-r--r--test/MC/MachO/darwin-complex-difference.s129
-rw-r--r--test/MC/MachO/darwin-x86_64-diff-relocs.s2
-rw-r--r--test/MC/MachO/darwin-x86_64-reloc-offsets.s6
-rw-r--r--test/MC/MachO/darwin-x86_64-reloc.s10
-rw-r--r--test/MC/MachO/diff-with-two-sections.s64
-rw-r--r--test/MC/MachO/direction_labels.s4
-rw-r--r--test/MC/MachO/empty-dwarf-lines.s25
-rw-r--r--test/MC/MachO/indirect-symbols.s6
-rw-r--r--test/MC/MachO/jcc.s4
-rw-r--r--test/MC/MachO/lcomm-attributes.s2
-rw-r--r--test/MC/MachO/loc.s25
-rw-r--r--test/MC/MachO/pcrel-to-other-section.s107
-rw-r--r--test/MC/MachO/relax-jumps.s6
-rw-r--r--test/MC/MachO/reloc-pcrel-offset.s2
-rw-r--r--test/MC/MachO/reloc.s70
-rw-r--r--test/MC/MachO/section-align-1.s2
-rw-r--r--test/MC/MachO/section-align-2.s2
-rw-r--r--test/MC/MachO/string-table.s4
-rw-r--r--test/MC/MachO/symbol-diff.s122
-rw-r--r--test/MC/MachO/symbol-flags.s59
-rw-r--r--test/MC/MachO/symbol-indirect.s2
-rw-r--r--test/MC/MachO/symbols-1.s4
-rw-r--r--test/MC/MachO/tbss.s4
-rw-r--r--test/MC/MachO/tdata.s4
-rw-r--r--test/MC/MachO/thread_init_func.s2
-rw-r--r--test/MC/MachO/tls.s8
-rw-r--r--test/MC/MachO/tlv-reloc.s8
-rw-r--r--test/MC/MachO/tlv.s4
-rw-r--r--test/MC/MachO/values.s2
-rw-r--r--test/MC/MachO/weakdef.s141
-rw-r--r--test/MC/MachO/x86_32-optimal_nop.s8
-rw-r--r--test/MC/MachO/x86_32-symbols.s2
-rw-r--r--test/MC/MachO/x86_64-symbols.s2
-rw-r--r--test/MC/MachO/zerofill-1.s2
-rw-r--r--test/MC/MachO/zerofill-2.s2
-rw-r--r--test/MC/MachO/zerofill-3.s2
-rw-r--r--test/MC/MachO/zerofill-5.s6
-rw-r--r--test/MC/X86/3DNow.s92
-rw-r--r--test/MC/X86/dg.exp (renamed from test/MC/AsmParser/X86/dg.exp)0
-rw-r--r--test/MC/X86/x86-32-avx.s (renamed from test/MC/AsmParser/X86/x86_32-avx-encoding.s)42
-rw-r--r--test/MC/X86/x86-32-coverage.s (renamed from test/MC/AsmParser/X86/x86_32-encoding.s)9529
-rw-r--r--test/MC/X86/x86-32-fma3.s (renamed from test/MC/AsmParser/X86/x86_32-fma3-encoding.s)0
-rw-r--r--test/MC/X86/x86-32.s (renamed from test/MC/AsmParser/X86/x86_32-new-encoder.s)385
-rw-r--r--test/MC/X86/x86-64.s944
-rw-r--r--test/MC/X86/x86_64-avx-clmul-encoding.s (renamed from test/MC/AsmParser/X86/x86_64-avx-clmul-encoding.s)0
-rw-r--r--test/MC/X86/x86_64-avx-encoding.s (renamed from test/MC/AsmParser/X86/x86_64-avx-encoding.s)0
-rw-r--r--test/MC/X86/x86_64-encoding.s (renamed from test/MC/AsmParser/X86/x86_64-encoding.s)15
-rw-r--r--test/MC/X86/x86_64-fma3-encoding.s (renamed from test/MC/AsmParser/X86/x86_64-fma3-encoding.s)0
-rw-r--r--test/MC/X86/x86_64-imm-widths.s (renamed from test/MC/AsmParser/X86/x86_64-imm-widths.s)4
-rw-r--r--test/MC/X86/x86_directives.s (renamed from test/MC/AsmParser/X86/x86_word_directive.s)0
-rw-r--r--test/MC/X86/x86_errors.s (renamed from test/MC/AsmParser/X86/x86_instruction_errors.s)0
-rw-r--r--test/MC/X86/x86_operands.s (renamed from test/MC/AsmParser/X86/x86_operands.s)6
261 files changed, 24747 insertions, 10454 deletions
diff --git a/test/MC/ARM/arm_fixups.s b/test/MC/ARM/arm_fixups.s
new file mode 100644
index 0000000..0dceb83
--- /dev/null
+++ b/test/MC/ARM/arm_fixups.s
@@ -0,0 +1,7 @@
+// RUN: llvm-mc -triple arm-unknown-unknown %s --show-encoding > %t
+// RUN: FileCheck < %t %s
+
+// CHECK: bl _printf @ encoding: [A,A,A,0xeb]
+// CHECK: @ fixup A - offset: 0, value: _printf, kind: fixup_arm_uncondbranch
+bl _printf
+ \ No newline at end of file
diff --git a/test/MC/ARM/arm_instructions.s b/test/MC/ARM/arm_instructions.s
new file mode 100644
index 0000000..fbec789
--- /dev/null
+++ b/test/MC/ARM/arm_instructions.s
@@ -0,0 +1,284 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding %s | FileCheck %s
+
+@ CHECK: nop
+@ CHECK: encoding: [0x00,0xf0,0x20,0xe3]
+ nop
+
+@ CHECK: nopeq
+@ CHECK: encoding: [0x00,0xf0,0x20,0x03]
+ nopeq
+
+@ CHECK: trap
+@ CHECK: encoding: [0xfe,0xde,0xff,0xe7]
+ trap
+
+@ CHECK: bx lr
+@ CHECK: encoding: [0x1e,0xff,0x2f,0xe1]
+ bx lr
+
+@ CHECK: vqdmull.s32 q8, d17, d16
+@ CHECK: encoding: [0xa0,0x0d,0xe1,0xf2]
+ vqdmull.s32 q8, d17, d16
+
+@ CHECK: ldmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
+@ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9]
+@ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8]
+@ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9]
+ ldmia r2, {r1,r3-r6,sp}
+ ldmib r2, {r1,r3-r6,sp}
+ ldmda r2, {r1,r3-r6,sp}
+ ldmdb r2, {r1,r3-r6,sp}
+
+@ CHECK: stmia r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
+@ CHECK: stmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe9]
+@ CHECK: stmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe8]
+@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
+ stmia r2, {r1,r3-r6,sp}
+ stmib r2, {r1,r3-r6,sp}
+ stmda r2, {r1,r3-r6,sp}
+ stmdb r2, {r1,r3-r6,sp}
+
+@ CHECK: ldmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8]
+@ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9]
+@ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8]
+@ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9]
+ ldmia r2!, {r1,r3-r6,sp}
+ ldmib r2!, {r1,r3-r6,sp}
+ ldmda r2!, {r1,r3-r6,sp}
+ ldmdb r2!, {r1,r3-r6,sp}
+
+@ CHECK: stmia r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe8]
+@ CHECK: stmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe9]
+@ CHECK: stmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe8]
+@ CHECK: stmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe9]
+ stmia r2!, {r1,r3-r6,sp}
+ stmib r2!, {r1,r3-r6,sp}
+ stmda r2!, {r1,r3-r6,sp}
+ stmdb r2!, {r1,r3-r6,sp}
+
+@ CHECK: and r1, r2, r3 @ encoding: [0x03,0x10,0x02,0xe0]
+ and r1,r2,r3
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: ands r1, r2, r3 @ encoding: [0x03,0x10,0x12,0xe0]
+ ands r1,r2,r3
+
+@ CHECK: eor r1, r2, r3 @ encoding: [0x03,0x10,0x22,0xe0]
+ eor r1,r2,r3
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: eors r1, r2, r3 @ encoding: [0x03,0x10,0x32,0xe0]
+ eors r1,r2,r3
+
+@ CHECK: sub r1, r2, r3 @ encoding: [0x03,0x10,0x42,0xe0]
+ sub r1,r2,r3
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: subs r1, r2, r3 @ encoding: [0x03,0x10,0x52,0xe0]
+ subs r1,r2,r3
+
+@ CHECK: add r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe0]
+ add r1,r2,r3
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: adds r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe0]
+ adds r1,r2,r3
+
+@ CHECK: adc r1, r2, r3 @ encoding: [0x03,0x10,0xa2,0xe0]
+ adc r1,r2,r3
+
+@ CHECK: sbc r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe0]
+ sbc r1,r2,r3
+
+@ CHECK: orr r1, r2, r3 @ encoding: [0x03,0x10,0x82,0xe1]
+ orr r1,r2,r3
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: orrs r1, r2, r3 @ encoding: [0x03,0x10,0x92,0xe1]
+ orrs r1,r2,r3
+
+@ CHECK: bic r1, r2, r3 @ encoding: [0x03,0x10,0xc2,0xe1]
+ bic r1,r2,r3
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: bics r1, r2, r3 @ encoding: [0x03,0x10,0xd2,0xe1]
+ bics r1,r2,r3
+
+@ CHECK: mov r1, r2 @ encoding: [0x02,0x10,0xa0,0xe1]
+ mov r1,r2
+
+@ CHECK: mvn r1, r2 @ encoding: [0x02,0x10,0xe0,0xe1]
+ mvn r1,r2
+
+@ FIXME: This is wrong, we are dropping the 's' for now.
+@ CHECK-FIXME: mvns r1, r2 @ encoding: [0x02,0x10,0xf0,0xe1]
+ mvns r1,r2
+
+@ CHECK: rsb r1, r2, r3 @ encoding: [0x03,0x10,0x62,0xe0]
+ rsb r1,r2,r3
+
+@ CHECK: rsc r1, r2, r3 @ encoding: [0x03,0x10,0xe2,0xe0]
+ rsc r1,r2,r3
+
+@ FIXME: This is broken, CCOut operands don't work correctly when their presence
+@ may depend on flags.
+@ CHECK-FIXME:: mlas r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0xe0]
+@ mlas r1,r2,r3,r4
+
+@ CHECK: bfi r0, r0, #5, #7 @ encoding: [0x90,0x02,0xcb,0xe7]
+ bfi r0, r0, #5, #7
+
+@ CHECK: bkpt #10 @ encoding: [0x7a,0x00,0x20,0xe1]
+ bkpt #10
+
+@ CHECK: isb @ encoding: [0x6f,0xf0,0x7f,0xf5]
+ isb
+@ CHECK: mrs r8, cpsr @ encoding: [0x00,0x80,0x0f,0xe1]
+ mrs r8, cpsr
+
+@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xee]
+ mcr p7, #1, r5, c1, c1, #4
+@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xee]
+ mrc p14, #0, r1, c1, c2, #4
+@ CHECK: mcrr p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xec]
+ mcrr p7, #1, r5, r4, c1
+@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xec]
+ mrrc p7, #1, r5, r4, c1
+
+@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xfe]
+ mcr2 p7, #1, r5, c1, c1, #4
+@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xfe]
+ mrc2 p14, #0, r1, c1, c2, #4
+@ CHECK: mcrr2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x44,0xfc]
+ mcrr2 p7, #1, r5, r4, c1
+@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xfc]
+ mrrc2 p7, #1, r5, r4, c1
+
+@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee]
+ cdp p7, #1, c1, c1, c1, #4
+@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe]
+ cdp2 p7, #1, c1, c1, c1, #4
+
+@ CHECK: clrex @ encoding: [0x1f,0xf0,0x7f,0xf5]
+ clrex
+
+@ CHECK: clz r9, r0 @ encoding: [0x10,0x9f,0x6f,0xe1]
+ clz r9, r0
+
+@ CHECK: qadd r1, r2, r3 @ encoding: [0x52,0x10,0x03,0xe1]
+ qadd r1, r2, r3
+
+@ CHECK: qsub r1, r2, r3 @ encoding: [0x52,0x10,0x23,0xe1]
+ qsub r1, r2, r3
+
+@ CHECK: qdadd r1, r2, r3 @ encoding: [0x52,0x10,0x43,0xe1]
+ qdadd r1, r2, r3
+
+@ CHECK: qdsub r1, r2, r3 @ encoding: [0x52,0x10,0x63,0xe1]
+ qdsub r1, r2, r3
+
+@ CHECK: wfe @ encoding: [0x02,0xf0,0x20,0xe3]
+ wfe
+
+@ CHECK: wfi @ encoding: [0x03,0xf0,0x20,0xe3]
+ wfi
+
+@ CHECK: yield @ encoding: [0x01,0xf0,0x20,0xe3]
+ yield
+
+@ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3]
+ nop
+
+@ CHECK: dmb sy @ encoding: [0x5f,0xf0,0x7f,0xf5]
+ dmb sy
+
+@ CHECK: dmb st @ encoding: [0x5e,0xf0,0x7f,0xf5]
+ dmb st
+
+@ CHECK: dmb ish @ encoding: [0x5b,0xf0,0x7f,0xf5]
+ dmb ish
+
+@ CHECK: dmb ishst @ encoding: [0x5a,0xf0,0x7f,0xf5]
+ dmb ishst
+
+@ CHECK: dmb nsh @ encoding: [0x57,0xf0,0x7f,0xf5]
+ dmb nsh
+
+@ CHECK: dmb nshst @ encoding: [0x56,0xf0,0x7f,0xf5]
+ dmb nshst
+
+@ CHECK: dmb osh @ encoding: [0x53,0xf0,0x7f,0xf5]
+ dmb osh
+
+@ CHECK: dmb oshst @ encoding: [0x52,0xf0,0x7f,0xf5]
+ dmb oshst
+
+@ CHECK: dsb sy @ encoding: [0x4f,0xf0,0x7f,0xf5]
+ dsb sy
+
+@ CHECK: dsb st @ encoding: [0x4e,0xf0,0x7f,0xf5]
+ dsb st
+
+@ CHECK: dsb ish @ encoding: [0x4b,0xf0,0x7f,0xf5]
+ dsb ish
+
+@ CHECK: dsb ishst @ encoding: [0x4a,0xf0,0x7f,0xf5]
+ dsb ishst
+
+@ CHECK: dsb nsh @ encoding: [0x47,0xf0,0x7f,0xf5]
+ dsb nsh
+
+@ CHECK: dsb nshst @ encoding: [0x46,0xf0,0x7f,0xf5]
+ dsb nshst
+
+@ CHECK: dsb osh @ encoding: [0x43,0xf0,0x7f,0xf5]
+ dsb osh
+
+@ CHECK: dsb oshst @ encoding: [0x42,0xf0,0x7f,0xf5]
+ dsb oshst
+
+@ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1]
+ cpsie aif
+
+@ CHECK: cps #15 @ encoding: [0x0f,0x00,0x02,0xf1]
+ cps #15
+
+@ CHECK: cpsie if, #10 @ encoding: [0xca,0x00,0x0a,0xf1]
+ cpsie if, #10
+
+@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
+ msr apsr, r0
+
+@ CHECK: msr cpsr_s, r0 @ encoding: [0x00,0xf0,0x24,0xe1]
+ msr apsr_g, r0
+
+@ CHECK: msr cpsr_f, r0 @ encoding: [0x00,0xf0,0x28,0xe1]
+ msr apsr_nzcvq, r0
+
+@ CHECK: msr cpsr_fs, r0 @ encoding: [0x00,0xf0,0x2c,0xe1]
+ msr apsr_nzcvqg, r0
+
+@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
+ msr cpsr_fc, r0
+
+@ CHECK: msr cpsr_c, r0 @ encoding: [0x00,0xf0,0x21,0xe1]
+ msr cpsr_c, r0
+
+@ CHECK: msr cpsr_x, r0 @ encoding: [0x00,0xf0,0x22,0xe1]
+ msr cpsr_x, r0
+
+@ CHECK: msr cpsr_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
+ msr cpsr_fc, r0
+
+@ CHECK: msr cpsr_fsx, r0 @ encoding: [0x00,0xf0,0x2e,0xe1]
+ msr cpsr_fsx, r0
+
+@ CHECK: msr spsr_fc, r0 @ encoding: [0x00,0xf0,0x69,0xe1]
+ msr spsr_fc, r0
+
+@ CHECK: msr spsr_fsxc, r0 @ encoding: [0x00,0xf0,0x6f,0xe1]
+ msr spsr_fsxc, r0
+
+@ CHECK: msr cpsr_fsxc, r0 @ encoding: [0x00,0xf0,0x2f,0xe1]
+ msr cpsr_fsxc, r0
+
diff --git a/test/MC/ARM/arm_word_directive.s b/test/MC/ARM/arm_word_directive.s
new file mode 100644
index 0000000..e782479
--- /dev/null
+++ b/test/MC/ARM/arm_word_directive.s
@@ -0,0 +1,6 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown %s | FileCheck %s
+
+@ CHECK: TEST0:
+@ CHECK: .long 3
+TEST0:
+ .word 3
diff --git a/test/MC/AsmParser/ARM/dg.exp b/test/MC/ARM/dg.exp
index 3ff359a..055fa25 100644
--- a/test/MC/AsmParser/ARM/dg.exp
+++ b/test/MC/ARM/dg.exp
@@ -1,5 +1,5 @@
load_lib llvm.exp
if { [llvm_supports_target ARM] } {
- RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp,s}]]
}
diff --git a/test/MC/ARM/elf-eflags-eabi.s b/test/MC/ARM/elf-eflags-eabi.s
new file mode 100644
index 0000000..ea89eac
--- /dev/null
+++ b/test/MC/ARM/elf-eflags-eabi.s
@@ -0,0 +1,13 @@
+@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi -filetype=obj -o - | \
+@ RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
+ .syntax unified
+ .text
+ .globl barf
+ .align 2
+ .type barf,%function
+barf: @ @barf
+@ BB#0: @ %entry
+ b foo
+
+@@@ make sure the EF_ARM_EABIMASK comes out OK
+@OBJ: 'e_flags', 0x05000000
diff --git a/test/MC/ARM/elf-movt.s b/test/MC/ARM/elf-movt.s
new file mode 100644
index 0000000..0fe7c50
--- /dev/null
+++ b/test/MC/ARM/elf-movt.s
@@ -0,0 +1,39 @@
+@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi | FileCheck -check-prefix=ASM %s
+@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi -filetype=obj -o - | \
+@ RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
+ .syntax unified
+ .text
+ .globl barf
+ .align 2
+ .type barf,%function
+barf: @ @barf
+@ BB#0: @ %entry
+ movw r0, :lower16:GOT-(.LPC0_2+8)
+ movt r0, :upper16:GOT-(.LPC0_2+16)
+.LPC0_2:
+@ ASM: movw r0, :lower16:(GOT-(.LPC0_2+8))
+@ ASM-NEXT: movt r0, :upper16:(GOT-(.LPC0_2+16))
+
+@@ make sure that the text section fixups are sane too
+@ OBJ: '.text'
+@ OBJ-NEXT: 'sh_type', 0x00000001
+@ OBJ-NEXT: 'sh_flags', 0x00000006
+@ OBJ-NEXT: 'sh_addr', 0x00000000
+@ OBJ-NEXT: 'sh_offset', 0x00000034
+@ OBJ-NEXT: 'sh_size', 0x00000008
+@ OBJ-NEXT: 'sh_link', 0x00000000
+@ OBJ-NEXT: 'sh_info', 0x00000000
+@ OBJ-NEXT: 'sh_addralign', 0x00000004
+@ OBJ-NEXT: 'sh_entsize', 0x00000000
+@ OBJ-NEXT: '_section_data', 'f00f0fe3 ff0f4fe3'
+
+@ OBJ: Relocation 0x00000000
+@ OBJ-NEXT: 'r_offset', 0x00000000
+@ OBJ-NEXT: 'r_sym'
+@ OBJ-NEXT: 'r_type', 0x0000002d
+
+@ OBJ: Relocation 0x00000001
+@ OBJ-NEXT: 'r_offset', 0x00000004
+@ OBJ-NEXT: 'r_sym'
+@ OBJ-NEXT: 'r_type', 0x0000002e
+
diff --git a/test/MC/ARM/elf-reloc-01.ll b/test/MC/ARM/elf-reloc-01.ll
new file mode 100644
index 0000000..6b83c95
--- /dev/null
+++ b/test/MC/ARM/elf-reloc-01.ll
@@ -0,0 +1,71 @@
+;; RUN: llc -mtriple=armv7-linux-gnueabi -O3 \
+;; RUN: -mcpu=cortex-a8 -mattr=-neon -mattr=+vfp2 -arm-reserve-r9 \
+;; RUN: -filetype=obj %s -o - | \
+;; RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
+
+;; FIXME: This file needs to be in .s form!
+;; The args to llc are there to constrain the codegen only.
+;;
+;; Ensure no regression on ARM/gcc compatibility for
+;; emitting explicit symbol relocs for nonexternal symbols
+;; versus section symbol relocs (with offset) -
+;;
+;; Default llvm behavior is to emit as section symbol relocs nearly
+;; everything that is not an undefined external. Unfortunately, this
+;; diverges from what codesourcery ARM/gcc does!
+;;
+;; Tests that reloc to _MergedGlobals show up as explicit symbol reloc
+
+
+target triple = "armv7-none-linux-gnueabi"
+
+@var_tls = thread_local global i32 1
+@var_tls_double = thread_local global double 1.000000e+00
+@var_static = internal global i32 1
+@var_static_double = internal global double 1.000000e+00
+@var_global = global i32 1
+@var_global_double = global double 1.000000e+00
+
+declare i32 @mystrlen(i8* nocapture %s) nounwind
+
+declare void @myhextochar(i32 %n, i8* nocapture %buffer)
+
+declare void @__aeabi_read_tp() nounwind
+
+declare void @__nacl_read_tp() nounwind
+
+define i32 @main(i32 %argc, i8** nocapture %argv) nounwind {
+entry:
+ switch i32 %argc, label %bb3 [
+ i32 555, label %bb
+ i32 6666, label %bb2
+ ]
+
+bb: ; preds = %entry
+ volatile store i32 11, i32* @var_tls, align 4
+ volatile store double 2.200000e+01, double* @var_tls_double, align 8
+ volatile store i32 33, i32* @var_static, align 4
+ volatile store double 4.400000e+01, double* @var_static_double, align 8
+ volatile store i32 55, i32* @var_global, align 4
+ volatile store double 6.600000e+01, double* @var_global_double, align 8
+ br label %bb3
+
+bb2: ; preds = %entry
+ ret i32 add (i32 add (i32 add (i32 ptrtoint (i32* @var_tls to i32), i32 add (i32 ptrtoint (i32* @var_static to i32), i32 ptrtoint (i32* @var_global to i32))), i32 ptrtoint (double* @var_tls_double to i32)), i32 add (i32 ptrtoint (double* @var_static_double to i32), i32 ptrtoint (double* @var_global_double to i32)))
+
+bb3: ; preds = %bb, %entry
+ tail call void @exit(i32 55) noreturn nounwind
+ unreachable
+}
+
+declare void @exit(i32) noreturn nounwind
+
+
+;; OBJ: Symbol 0x00000002
+;; OBJ-NEXT: '_MergedGlobals'
+;; OBJ-NEXT: 'st_value', 0x00000010
+
+;; OBJ: Relocation 0x00000001
+;; OBJ-NEXT: 'r_offset',
+;; OBJ-NEXT: 'r_sym', 0x00000002
+;; OBJ-NEXT: 'r_type', 0x0000002b
diff --git a/test/MC/ARM/elf-reloc-02.ll b/test/MC/ARM/elf-reloc-02.ll
new file mode 100644
index 0000000..132a477
--- /dev/null
+++ b/test/MC/ARM/elf-reloc-02.ll
@@ -0,0 +1,51 @@
+;; RUN: llc -mtriple=armv7-linux-gnueabi -O3 \
+;; RUN: -mcpu=cortex-a8 -mattr=-neon -mattr=+vfp2 -arm-reserve-r9 \
+;; RUN: -filetype=obj %s -o - | \
+;; RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
+
+;; FIXME: This file needs to be in .s form!
+;; The args to llc are there to constrain the codegen only.
+;;
+;; Ensure no regression on ARM/gcc compatibility for
+;; emitting explicit symbol relocs for nonexternal symbols
+;; versus section symbol relocs (with offset) -
+;;
+;; Default llvm behavior is to emit as section symbol relocs nearly
+;; everything that is not an undefined external. Unfortunately, this
+;; diverges from what codesourcery ARM/gcc does!
+;;
+;; Tests that reloc to .L.str* show up as explicit symbols
+
+target triple = "armv7-none-linux-gnueabi"
+
+@.str = private constant [7 x i8] c"@null\0A\00", align 4
+@.str1 = private constant [8 x i8] c"@write\0A\00", align 4
+@.str2 = private constant [13 x i8] c"hello worldn\00", align 4
+@.str3 = private constant [7 x i8] c"@exit\0A\00", align 4
+
+declare i32 @mystrlen(i8* nocapture %s) nounwind readonly
+
+declare void @myhextochar(i32 %n, i8* nocapture %buffer) nounwind
+
+define i32 @main() nounwind {
+entry:
+ %0 = tail call i32 (...)* @write(i32 1, i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0), i32 6) nounwind
+ %1 = tail call i32 (...)* @write(i32 1, i8* getelementptr inbounds ([8 x i8]* @.str1, i32 0, i32 0), i32 7) nounwind
+ %2 = tail call i32 (...)* @write(i32 1, i8* getelementptr inbounds ([13 x i8]* @.str2, i32 0, i32 0), i32 12) nounwind
+ %3 = tail call i32 (...)* @write(i32 1, i8* getelementptr inbounds ([7 x i8]* @.str3, i32 0, i32 0), i32 6) nounwind
+ tail call void @exit(i32 55) noreturn nounwind
+ unreachable
+}
+
+declare i32 @write(...)
+
+declare void @exit(i32) noreturn nounwind
+
+
+;; OBJ: Symbol 0x00000002
+;; OBJ-NEXT: '.L.str'
+
+;; OBJ: Relocation 0x00000000
+;; OBJ-NEXT: 'r_offset',
+;; OBJ-NEXT: 'r_sym', 0x00000002
+;; OBJ-NEXT: 'r_type', 0x0000002b
diff --git a/test/MC/ARM/elf-reloc-03.ll b/test/MC/ARM/elf-reloc-03.ll
new file mode 100644
index 0000000..e052f39
--- /dev/null
+++ b/test/MC/ARM/elf-reloc-03.ll
@@ -0,0 +1,98 @@
+;; RUN: llc -mtriple=armv7-linux-gnueabi -O3 \
+;; RUN: -mcpu=cortex-a8 -mattr=-neon -mattr=+vfp2 -arm-reserve-r9 \
+;; RUN: -filetype=obj %s -o - | \
+;; RUN: elf-dump --dump-section-data | FileCheck -check-prefix=OBJ %s
+
+;; FIXME: This file needs to be in .s form!
+;; The args to llc are there to constrain the codegen only.
+;;
+;; Ensure no regression on ARM/gcc compatibility for
+;; emitting explicit symbol relocs for nonexternal symbols
+;; versus section symbol relocs (with offset) -
+;;
+;; Default llvm behavior is to emit as section symbol relocs nearly
+;; everything that is not an undefined external. Unfortunately, this
+;; diverges from what codesourcery ARM/gcc does!
+;;
+;; Verifies that internal constants appear as explict symbol relocs
+
+
+target triple = "armv7-none-linux-gnueabi"
+
+@startval = global i32 5
+@vtable = internal constant [10 x i32 (...)*] [i32 (...)* bitcast (i32 ()* @foo0 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo1 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo2 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo3 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo4 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo5 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo6 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo7 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo8 to i32 (...)*), i32 (...)* bitcast (i32 ()* @foo9 to i32 (...)*)]
+
+declare i32 @mystrlen(i8* nocapture %s) nounwind readonly
+
+declare void @myhextochar(i32 %n, i8* nocapture %buffer) nounwind
+
+define internal i32 @foo0() nounwind readnone {
+entry:
+ ret i32 0
+}
+
+define internal i32 @foo1() nounwind readnone {
+entry:
+ ret i32 1
+}
+
+define internal i32 @foo2() nounwind readnone {
+entry:
+ ret i32 2
+}
+
+define internal i32 @foo3() nounwind readnone {
+entry:
+ ret i32 3
+}
+
+define internal i32 @foo4() nounwind readnone {
+entry:
+ ret i32 4
+}
+
+define internal i32 @foo5() nounwind readnone {
+entry:
+ ret i32 55
+}
+
+define internal i32 @foo6() nounwind readnone {
+entry:
+ ret i32 6
+}
+
+define internal i32 @foo7() nounwind readnone {
+entry:
+ ret i32 7
+}
+
+define internal i32 @foo8() nounwind readnone {
+entry:
+ ret i32 8
+}
+
+define internal i32 @foo9() nounwind readnone {
+entry:
+ ret i32 9
+}
+
+define i32 @main() nounwind {
+entry:
+ %0 = load i32* @startval, align 4
+ %1 = getelementptr inbounds [10 x i32 (...)*]* @vtable, i32 0, i32 %0
+ %2 = load i32 (...)** %1, align 4
+ %3 = tail call i32 (...)* %2() nounwind
+ tail call void @exit(i32 %3) noreturn nounwind
+ unreachable
+}
+
+declare void @exit(i32) noreturn nounwind
+
+
+;; OBJ: Symbol 0x0000000c
+;; OBJ-NEXT: 'vtable'
+
+;; OBJ: Relocation 0x00000001
+;; OBJ-NEXT: 'r_offset',
+;; OBJ-NEXT: 'r_sym', 0x0000000c
+;; OBJ-NEXT: 'r_type', 0x0000002b
diff --git a/test/MC/ARM/hilo-16bit-relocations.s b/test/MC/ARM/hilo-16bit-relocations.s
new file mode 100644
index 0000000..7d6b498
--- /dev/null
+++ b/test/MC/ARM/hilo-16bit-relocations.s
@@ -0,0 +1,20 @@
+@ RUN: llvm-mc %s -triple armv7-apple-darwin | FileCheck %s
+@ RUN: llvm-mc %s -triple armv7-apple-darwin | FileCheck %s
+
+_t:
+ movw r0, :lower16:(L_foo$non_lazy_ptr - (L1 + 8))
+ movt r0, :upper16:(L_foo$non_lazy_ptr - (L1 + 8))
+L1:
+
+@ CHECK: movw r0, :lower16:(L_foo$non_lazy_ptr-(L1+8))
+@ CHECK: movt r0, :upper16:(L_foo$non_lazy_ptr-(L1+8))
+
+ .comm _foo,4,2
+
+ .section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
+ .align 2
+L_foo$non_lazy_ptr:
+ .indirect_symbol _foo
+ .long 0
+
+.subsections_via_symbols
diff --git a/test/MC/ARM/neon-abs-encoding.s b/test/MC/ARM/neon-abs-encoding.s
new file mode 100644
index 0000000..398f2db
--- /dev/null
+++ b/test/MC/ARM/neon-abs-encoding.s
@@ -0,0 +1,31 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vabs.s8 d16, d16 @ encoding: [0x20,0x03,0xf1,0xf3]
+ vabs.s8 d16, d16
+@ CHECK: vabs.s16 d16, d16 @ encoding: [0x20,0x03,0xf5,0xf3]
+ vabs.s16 d16, d16
+@ CHECK: vabs.s32 d16, d16 @ encoding: [0x20,0x03,0xf9,0xf3]
+ vabs.s32 d16, d16
+@ CHECK: vabs.f32 d16, d16 @ encoding: [0x20,0x07,0xf9,0xf3]
+ vabs.f32 d16, d16
+@ CHECK: vabs.s8 q8, q8 @ encoding: [0x60,0x03,0xf1,0xf3]
+ vabs.s8 q8, q8
+@ CHECK: vabs.s16 q8, q8 @ encoding: [0x60,0x03,0xf5,0xf3]
+ vabs.s16 q8, q8
+@ CHECK: vabs.s32 q8, q8 @ encoding: [0x60,0x03,0xf9,0xf3]
+ vabs.s32 q8, q8
+@ CHECK: vabs.f32 q8, q8 @ encoding: [0x60,0x07,0xf9,0xf3]
+ vabs.f32 q8, q8
+
+@ CHECK: vqabs.s8 d16, d16 @ encoding: [0x20,0x07,0xf0,0xf3]
+ vqabs.s8 d16, d16
+@ CHECK: vqabs.s16 d16, d16 @ encoding: [0x20,0x07,0xf4,0xf3]
+ vqabs.s16 d16, d16
+@ CHECK: vqabs.s32 d16, d16 @ encoding: [0x20,0x07,0xf8,0xf3]
+ vqabs.s32 d16, d16
+@ CHECK: vqabs.s8 q8, q8 @ encoding: [0x60,0x07,0xf0,0xf3]
+ vqabs.s8 q8, q8
+@ CHECK: vqabs.s16 q8, q8 @ encoding: [0x60,0x07,0xf4,0xf3]
+ vqabs.s16 q8, q8
+@ CHECK: vqabs.s32 q8, q8 @ encoding: [0x60,0x07,0xf8,0xf3]
+ vqabs.s32 q8, q8
diff --git a/test/MC/ARM/neon-absdiff-encoding.s b/test/MC/ARM/neon-absdiff-encoding.s
new file mode 100644
index 0000000..f43ea65
--- /dev/null
+++ b/test/MC/ARM/neon-absdiff-encoding.s
@@ -0,0 +1,82 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vabd.s8 d16, d16, d17 @ encoding: [0xa1,0x07,0x40,0xf2]
+ vabd.s8 d16, d16, d17
+@ CHECK: vabd.s16 d16, d16, d17 @ encoding: [0xa1,0x07,0x50,0xf2]
+ vabd.s16 d16, d16, d17
+@ CHECK: vabd.s32 d16, d16, d17 @ encoding: [0xa1,0x07,0x60,0xf2]
+ vabd.s32 d16, d16, d17
+@ CHECK: vabd.u8 d16, d16, d17 @ encoding: [0xa1,0x07,0x40,0xf3]
+ vabd.u8 d16, d16, d17
+@ CHECK: vabd.u16 d16, d16, d17 @ encoding: [0xa1,0x07,0x50,0xf3]
+ vabd.u16 d16, d16, d17
+ @ CHECK: vabd.u32 d16, d16, d17 @ encoding: [0xa1,0x07,0x60,0xf3]
+ vabd.u32 d16, d16, d17
+@ CHECK: vabd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x60,0xf3]
+ vabd.f32 d16, d16, d17
+@ CHECK: vabd.s8 q8, q8, q9 @ encoding: [0xe2,0x07,0x40,0xf2]
+ vabd.s8 q8, q8, q9
+@ CHECK: vabd.s16 q8, q8, q9 @ encoding: [0xe2,0x07,0x50,0xf2]
+ vabd.s16 q8, q8, q9
+@ CHECK: vabd.s32 q8, q8, q9 @ encoding: [0xe2,0x07,0x60,0xf2]
+ vabd.s32 q8, q8, q9
+@ CHECK: vabd.u8 q8, q8, q9 @ encoding: [0xe2,0x07,0x40,0xf3]
+ vabd.u8 q8, q8, q9
+@ CHECK: vabd.u16 q8, q8, q9 @ encoding: [0xe2,0x07,0x50,0xf3]
+ vabd.u16 q8, q8, q9
+@ CHECK: vabd.u32 q8, q8, q9 @ encoding: [0xe2,0x07,0x60,0xf3]
+ vabd.u32 q8, q8, q9
+@ CHECK: vabd.f32 q8, q8, q9 @ encoding: [0xe2,0x0d,0x60,0xf3]
+ vabd.f32 q8, q8, q9
+
+@ CHECK: vabdl.s8 q8, d16, d17 @ encoding: [0xa1,0x07,0xc0,0xf2]
+ vabdl.s8 q8, d16, d17
+@ CHECK: vabdl.s16 q8, d16, d17 @ encoding: [0xa1,0x07,0xd0,0xf2]
+ vabdl.s16 q8, d16, d17
+@ CHECK: vabdl.s32 q8, d16, d17 @ encoding: [0xa1,0x07,0xe0,0xf2]
+ vabdl.s32 q8, d16, d17
+@ CHECK: vabdl.u8 q8, d16, d17 @ encoding: [0xa1,0x07,0xc0,0xf3]
+ vabdl.u8 q8, d16, d17
+@ CHECK: vabdl.u16 q8, d16, d17 @ encoding: [0xa1,0x07,0xd0,0xf3]
+ vabdl.u16 q8, d16, d17
+@ CHECK: vabdl.u32 q8, d16, d17 @ encoding: [0xa1,0x07,0xe0,0xf3]
+ vabdl.u32 q8, d16, d17
+
+@ CHECK: vaba.s8 d16, d18, d17 @ encoding: [0xb1,0x07,0x42,0xf2]
+ vaba.s8 d16, d18, d17
+@ CHECK: vaba.s16 d16, d18, d17 @ encoding: [0xb1,0x07,0x52,0xf2]
+ vaba.s16 d16, d18, d17
+@ CHECK: vaba.s32 d16, d18, d17 @ encoding: [0xb1,0x07,0x62,0xf2]
+ vaba.s32 d16, d18, d17
+@ CHECK: vaba.u8 d16, d18, d17 @ encoding: [0xb1,0x07,0x42,0xf3]
+ vaba.u8 d16, d18, d17
+@ CHECK: vaba.u16 d16, d18, d17 @ encoding: [0xb1,0x07,0x52,0xf3]
+ vaba.u16 d16, d18, d17
+@ CHECK: vaba.u32 d16, d18, d17 @ encoding: [0xb1,0x07,0x62,0xf3]
+ vaba.u32 d16, d18, d17
+@ CHECK: vaba.s8 q9, q8, q10 @ encoding: [0xf4,0x27,0x40,0xf2]
+ vaba.s8 q9, q8, q10
+@ CHECK: vaba.s16 q9, q8, q10 @ encoding: [0xf4,0x27,0x50,0xf2]
+ vaba.s16 q9, q8, q10
+@ CHECK: vaba.s32 q9, q8, q10 @ encoding: [0xf4,0x27,0x60,0xf2]
+ vaba.s32 q9, q8, q10
+@ CHECK: vaba.u8 q9, q8, q10 @ encoding: [0xf4,0x27,0x40,0xf3]
+ vaba.u8 q9, q8, q10
+@ CHECK: vaba.u16 q9, q8, q10 @ encoding: [0xf4,0x27,0x50,0xf3]
+ vaba.u16 q9, q8, q10
+@ CHECK: vaba.u32 q9, q8, q10 @ encoding: [0xf4,0x27,0x60,0xf3]
+ vaba.u32 q9, q8, q10
+
+@ CHECK: vabal.s8 q8, d19, d18 @ encoding: [0xa2,0x05,0xc3,0xf2]
+ vabal.s8 q8, d19, d18
+@ CHECK: vabal.s16 q8, d19, d18 @ encoding: [0xa2,0x05,0xd3,0xf2]
+ vabal.s16 q8, d19, d18
+@ CHECK: vabal.s32 q8, d19, d18 @ encoding: [0xa2,0x05,0xe3,0xf2]
+ vabal.s32 q8, d19, d18
+@ CHECK: vabal.u8 q8, d19, d18 @ encoding: [0xa2,0x05,0xc3,0xf3]
+ vabal.u8 q8, d19, d18
+@ CHECK: vabal.u16 q8, d19, d18 @ encoding: [0xa2,0x05,0xd3,0xf3]
+ vabal.u16 q8, d19, d18
+@ CHECK: vabal.u32 q8, d19, d18 @ encoding: [0xa2,0x05,0xe3,0xf3]
+ vabal.u32 q8, d19, d18
+
diff --git a/test/MC/ARM/neon-add-encoding.s b/test/MC/ARM/neon-add-encoding.s
new file mode 100644
index 0000000..e425397
--- /dev/null
+++ b/test/MC/ARM/neon-add-encoding.s
@@ -0,0 +1,137 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
+
+
+@ CHECK: vadd.i8 d16, d17, d16 @ encoding: [0xa0,0x08,0x41,0xf2]
+ vadd.i8 d16, d17, d16
+@ CHECK: vadd.i16 d16, d17, d16 @ encoding: [0xa0,0x08,0x51,0xf2]
+ vadd.i16 d16, d17, d16
+@ CHECK: vadd.i64 d16, d17, d16 @ encoding: [0xa0,0x08,0x71,0xf2]
+ vadd.i64 d16, d17, d16
+@ CHECK: vadd.i32 d16, d17, d16 @ encoding: [0xa0,0x08,0x61,0xf2]
+ vadd.i32 d16, d17, d16
+@ CHECK: vadd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x40,0xf2]
+ vadd.f32 d16, d16, d17
+@ CHECK: vadd.f32 q8, q8, q9 @ encoding: [0xe2,0x0d,0x40,0xf2]
+ vadd.f32 q8, q8, q9
+
+@ CHECK: vaddl.s8 q8, d17, d16 @ encoding: [0xa0,0x00,0xc1,0xf2]
+ vaddl.s8 q8, d17, d16
+@ CHECK: vaddl.s16 q8, d17, d16 @ encoding: [0xa0,0x00,0xd1,0xf2]
+ vaddl.s16 q8, d17, d16
+@ CHECK: vaddl.s32 q8, d17, d16 @ encoding: [0xa0,0x00,0xe1,0xf2]
+ vaddl.s32 q8, d17, d16
+@ CHECK: vaddl.u8 q8, d17, d16 @ encoding: [0xa0,0x00,0xc1,0xf3]
+ vaddl.u8 q8, d17, d16
+@ CHECK: vaddl.u16 q8, d17, d16 @ encoding: [0xa0,0x00,0xd1,0xf3]
+ vaddl.u16 q8, d17, d16
+@ CHECK: vaddl.u32 q8, d17, d16 @ encoding: [0xa0,0x00,0xe1,0xf3]
+ vaddl.u32 q8, d17, d16
+
+@ CHECK: vaddw.s8 q8, q8, d18 @ encoding: [0xa2,0x01,0xc0,0xf2]
+ vaddw.s8 q8, q8, d18
+@ CHECK: vaddw.s16 q8, q8, d18 @ encoding: [0xa2,0x01,0xd0,0xf2]
+ vaddw.s16 q8, q8, d18
+@ CHECK: vaddw.s32 q8, q8, d18 @ encoding: [0xa2,0x01,0xe0,0xf2]
+ vaddw.s32 q8, q8, d18
+@ CHECK: vaddw.u8 q8, q8, d18 @ encoding: [0xa2,0x01,0xc0,0xf3]
+ vaddw.u8 q8, q8, d18
+@ CHECK: vaddw.u16 q8, q8, d18 @ encoding: [0xa2,0x01,0xd0,0xf3]
+ vaddw.u16 q8, q8, d18
+@ CHECK: vaddw.u32 q8, q8, d18 @ encoding: [0xa2,0x01,0xe0,0xf3]
+ vaddw.u32 q8, q8, d18
+
+@ CHECK: vhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x00,0x40,0xf2]
+ vhadd.s8 d16, d16, d17
+@ CHECK: vhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x00,0x50,0xf2]
+ vhadd.s16 d16, d16, d17
+@ CHECK: vhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x00,0x60,0xf2]
+ vhadd.s32 d16, d16, d17
+@ CHECK: vhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x00,0x40,0xf3]
+ vhadd.u8 d16, d16, d17
+@ CHECK: vhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x00,0x50,0xf3]
+ vhadd.u16 d16, d16, d17
+@ CHECK: vhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x00,0x60,0xf3]
+ vhadd.u32 d16, d16, d17
+@ CHECK: vhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x00,0x40,0xf2]
+ vhadd.s8 q8, q8, q9
+@ CHECK: vhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x00,0x50,0xf2]
+ vhadd.s16 q8, q8, q9
+@ CHECK: vhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x00,0x60,0xf2]
+ vhadd.s32 q8, q8, q9
+ @ CHECK: vhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x00,0x40,0xf3]
+ vhadd.u8 q8, q8, q9
+@ CHECK: vhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x00,0x50,0xf3]
+ vhadd.u16 q8, q8, q9
+@ CHECK: vhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x00,0x60,0xf3]
+ vhadd.u32 q8, q8, q9
+
+@ CHECK: vrhadd.s8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf2]
+ vrhadd.s8 d16, d16, d17
+@ CHECK: vrhadd.s16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf2]
+ vrhadd.s16 d16, d16, d17
+@ CHECK: vrhadd.s32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf2]
+ vrhadd.s32 d16, d16, d17
+@ CHECK: vrhadd.u8 d16, d16, d17 @ encoding: [0xa1,0x01,0x40,0xf3]
+ vrhadd.u8 d16, d16, d17
+@ CHECK: vrhadd.u16 d16, d16, d17 @ encoding: [0xa1,0x01,0x50,0xf3]
+ vrhadd.u16 d16, d16, d17
+@ CHECK: vrhadd.u32 d16, d16, d17 @ encoding: [0xa1,0x01,0x60,0xf3]
+ vrhadd.u32 d16, d16, d17
+@ CHECK: vrhadd.s8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf2]
+ vrhadd.s8 q8, q8, q9
+@ CHECK: vrhadd.s16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf2]
+ vrhadd.s16 q8, q8, q9
+@ CHECK: vrhadd.s32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf2]
+ vrhadd.s32 q8, q8, q9
+@ CHECK: vrhadd.u8 q8, q8, q9 @ encoding: [0xe2,0x01,0x40,0xf3]
+ vrhadd.u8 q8, q8, q9
+@ CHECK: vrhadd.u16 q8, q8, q9 @ encoding: [0xe2,0x01,0x50,0xf3]
+ vrhadd.u16 q8, q8, q9
+@ CHECK: vrhadd.u32 q8, q8, q9 @ encoding: [0xe2,0x01,0x60,0xf3]
+ vrhadd.u32 q8, q8, q9
+
+@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf2]
+ vqadd.s8 d16, d16, d17
+@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf2]
+ vqadd.s16 d16, d16, d17
+@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf2]
+ vqadd.s32 d16, d16, d17
+@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf2]
+ vqadd.s64 d16, d16, d17
+@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0xb1,0x00,0x40,0xf3]
+ vqadd.u8 d16, d16, d17
+@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0xb1,0x00,0x50,0xf3]
+ vqadd.u16 d16, d16, d17
+@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0xb1,0x00,0x60,0xf3]
+ vqadd.u32 d16, d16, d17
+@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0xb1,0x00,0x70,0xf3]
+ vqadd.u64 d16, d16, d17
+@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf2]
+ vqadd.s8 q8, q8, q9
+@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf2]
+ vqadd.s16 q8, q8, q9
+@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf2]
+ vqadd.s32 q8, q8, q9
+@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf2]
+ vqadd.s64 q8, q8, q9
+@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0xf2,0x00,0x40,0xf3]
+ vqadd.u8 q8, q8, q9
+@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0xf2,0x00,0x50,0xf3]
+ vqadd.u16 q8, q8, q9
+@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0xf2,0x00,0x60,0xf3]
+ vqadd.u32 q8, q8, q9
+@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0xf2,0x00,0x70,0xf3]
+ vqadd.u64 q8, q8, q9
+
+@ CHECK: vaddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf2]
+ vaddhn.i16 d16, q8, q9
+@ CHECK: vaddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf2]
+ vaddhn.i32 d16, q8, q9
+@ CHECK: vaddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf2]
+ vaddhn.i64 d16, q8, q9
+@ CHECK: vraddhn.i16 d16, q8, q9 @ encoding: [0xa2,0x04,0xc0,0xf3]
+ vraddhn.i16 d16, q8, q9
+@ CHECK: vraddhn.i32 d16, q8, q9 @ encoding: [0xa2,0x04,0xd0,0xf3]
+ vraddhn.i32 d16, q8, q9
+@ CHECK: vraddhn.i64 d16, q8, q9 @ encoding: [0xa2,0x04,0xe0,0xf3]
+ vraddhn.i64 d16, q8, q9
diff --git a/test/MC/ARM/neon-bitcount-encoding.s b/test/MC/ARM/neon-bitcount-encoding.s
new file mode 100644
index 0000000..2c9518b
--- /dev/null
+++ b/test/MC/ARM/neon-bitcount-encoding.s
@@ -0,0 +1,31 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vcnt.8 d16, d16 @ encoding: [0x20,0x05,0xf0,0xf3]
+ vcnt.8 d16, d16
+@ CHECK: vcnt.8 q8, q8 @ encoding: [0x60,0x05,0xf0,0xf3]
+ vcnt.8 q8, q8
+@ CHECK: vclz.i8 d16, d16 @ encoding: [0xa0,0x04,0xf0,0xf3]
+ vclz.i8 d16, d16
+@ CHECK: vclz.i16 d16, d16 @ encoding: [0xa0,0x04,0xf4,0xf3]
+ vclz.i16 d16, d16
+@ CHECK: vclz.i32 d16, d16 @ encoding: [0xa0,0x04,0xf8,0xf3]
+ vclz.i32 d16, d16
+@ CHECK: vclz.i8 q8, q8 @ encoding: [0xe0,0x04,0xf0,0xf3]
+ vclz.i8 q8, q8
+@ CHECK: vclz.i16 q8, q8 @ encoding: [0xe0,0x04,0xf4,0xf3]
+ vclz.i16 q8, q8
+@ CHECK: vclz.i32 q8, q8 @ encoding: [0xe0,0x04,0xf8,0xf3]
+ vclz.i32 q8, q8
+@ CHECK: vcls.s8 d16, d16 @ encoding: [0x20,0x04,0xf0,0xf3]
+ vcls.s8 d16, d16
+@ CHECK: vcls.s16 d16, d16 @ encoding: [0x20,0x04,0xf4,0xf3]
+ vcls.s16 d16, d16
+@ CHECK: vcls.s32 d16, d16 @ encoding: [0x20,0x04,0xf8,0xf3]
+ vcls.s32 d16, d16
+@ CHECK: vcls.s8 q8, q8 @ encoding: [0x60,0x04,0xf0,0xf3]
+ vcls.s8 q8, q8
+@ CHECK: vcls.s16 q8, q8 @ encoding: [0x60,0x04,0xf4,0xf3]
+ vcls.s16 q8, q8
+@ CHECK: vcls.s32 q8, q8 @ encoding: [0x60,0x04,0xf8,0xf3]
+ vcls.s32 q8, q8
+
diff --git a/test/MC/ARM/neon-bitwise-encoding.s b/test/MC/ARM/neon-bitwise-encoding.s
new file mode 100644
index 0000000..8710923
--- /dev/null
+++ b/test/MC/ARM/neon-bitwise-encoding.s
@@ -0,0 +1,47 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vand d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xf2]
+ vand d16, d17, d16
+@ CHECK: vand q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xf2]
+ vand q8, q8, q9
+
+@ CHECK: veor d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xf3]
+ veor d16, d17, d16
+@ CHECK: veor q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xf3]
+ veor q8, q8, q9
+
+@ CHECK: vorr d16, d17, d16 @ encoding: [0xb0,0x01,0x61,0xf2]
+ vorr d16, d17, d16
+@ CHECK: vorr q8, q8, q9 @ encoding: [0xf2,0x01,0x60,0xf2]
+ vorr q8, q8, q9
+@ CHECK: vorr.i32 d16, #0x1000000 @ encoding: [0x11,0x07,0xc0,0xf2]
+ vorr.i32 d16, #0x1000000
+@ CHECK: vorr.i32 q8, #0x1000000 @ encoding: [0x51,0x07,0xc0,0xf2]
+ vorr.i32 q8, #0x1000000
+@ CHECK: vorr.i32 q8, #0x0 @ encoding: [0x50,0x01,0xc0,0xf2]
+ vorr.i32 q8, #0x0
+
+@ CHECK: vbic d16, d17, d16 @ encoding: [0xb0,0x01,0x51,0xf2]
+ vbic d16, d17, d16
+@ CHECK: vbic q8, q8, q9 @ encoding: [0xf2,0x01,0x50,0xf2]
+ vbic q8, q8, q9
+@ CHECK: vbic.i32 d16, #0xFF000000 @ encoding: [0x3f,0x07,0xc7,0xf3]
+ vbic.i32 d16, #0xFF000000
+@ CHECK: vbic.i32 q8, #0xFF000000 @ encoding: [0x7f,0x07,0xc7,0xf3]
+ vbic.i32 q8, #0xFF000000
+
+@ CHECK: vorn d16, d17, d16 @ encoding: [0xb0,0x01,0x71,0xf2]
+ vorn d16, d17, d16
+@ CHECK: vorn q8, q8, q9 @ encoding: [0xf2,0x01,0x70,0xf2]
+ vorn q8, q8, q9
+
+@ CHECK: vmvn d16, d16 @ encoding: [0xa0,0x05,0xf0,0xf3]
+ vmvn d16, d16
+@ CHECK: vmvn q8, q8 @ encoding: [0xe0,0x05,0xf0,0xf3]
+ vmvn q8, q8
+
+@ CHECK: vbsl d18, d17, d16 @ encoding: [0xb0,0x21,0x51,0xf3]
+ vbsl d18, d17, d16
+@ CHECK: vbsl q8, q10, q9 @ encoding: [0xf2,0x01,0x54,0xf3]
+ vbsl q8, q10, q9
diff --git a/test/MC/ARM/neon-cmp-encoding.s b/test/MC/ARM/neon-cmp-encoding.s
new file mode 100644
index 0000000..6bfc549
--- /dev/null
+++ b/test/MC/ARM/neon-cmp-encoding.s
@@ -0,0 +1,115 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ FIXME: We cannot currently test the following instructions, which are
+@ currently marked as for-disassembly only in the .td files:
+@ - VCEQz
+@ - VCGEz, VCLEz
+@ - VCGTz, VCLTz
+
+@ CHECK: vceq.i8 d16, d16, d17 @ encoding: [0xb1,0x08,0x40,0xf3]
+ vceq.i8 d16, d16, d17
+@ CHECK: vceq.i16 d16, d16, d17 @ encoding: [0xb1,0x08,0x50,0xf3]
+ vceq.i16 d16, d16, d17
+@ CHECK: vceq.i32 d16, d16, d17 @ encoding: [0xb1,0x08,0x60,0xf3]
+ vceq.i32 d16, d16, d17
+@ CHECK: vceq.f32 d16, d16, d17 @ encoding: [0xa1,0x0e,0x40,0xf2]
+ vceq.f32 d16, d16, d17
+@ CHECK: vceq.i8 q8, q8, q9 @ encoding: [0xf2,0x08,0x40,0xf3]
+ vceq.i8 q8, q8, q9
+@ CHECK: vceq.i16 q8, q8, q9 @ encoding: [0xf2,0x08,0x50,0xf3]
+ vceq.i16 q8, q8, q9
+@ CHECK: vceq.i32 q8, q8, q9 @ encoding: [0xf2,0x08,0x60,0xf3]
+ vceq.i32 q8, q8, q9
+@ CHECK: vceq.f32 q8, q8, q9 @ encoding: [0xe2,0x0e,0x40,0xf2]
+ vceq.f32 q8, q8, q9
+
+@ CHECK: vcge.s8 d16, d16, d17 @ encoding: [0xb1,0x03,0x40,0xf2]
+ vcge.s8 d16, d16, d17
+@ CHECK: vcge.s16 d16, d16, d17 @ encoding: [0xb1,0x03,0x50,0xf2]
+ vcge.s16 d16, d16, d17
+@ CHECK: vcge.s32 d16, d16, d17 @ encoding: [0xb1,0x03,0x60,0xf2]
+ vcge.s32 d16, d16, d17
+@ CHECK: vcge.u8 d16, d16, d17 @ encoding: [0xb1,0x03,0x40,0xf3]
+ vcge.u8 d16, d16, d17
+@ CHECK: vcge.u16 d16, d16, d17 @ encoding: [0xb1,0x03,0x50,0xf3]
+ vcge.u16 d16, d16, d17
+@ CHECK: vcge.u32 d16, d16, d17 @ encoding: [0xb1,0x03,0x60,0xf3]
+ vcge.u32 d16, d16, d17
+@ CHECK: vcge.f32 d16, d16, d17 @ encoding: [0xa1,0x0e,0x40,0xf3]
+ vcge.f32 d16, d16, d17
+@ CHECK: vcge.s8 q8, q8, q9 @ encoding: [0xf2,0x03,0x40,0xf2]
+ vcge.s8 q8, q8, q9
+@ CHECK: vcge.s16 q8, q8, q9 @ encoding: [0xf2,0x03,0x50,0xf2]
+ vcge.s16 q8, q8, q9
+@ CHECK: vcge.s32 q8, q8, q9 @ encoding: [0xf2,0x03,0x60,0xf2]
+ vcge.s32 q8, q8, q9
+@ CHECK: vcge.u8 q8, q8, q9 @ encoding: [0xf2,0x03,0x40,0xf3]
+ vcge.u8 q8, q8, q9
+@ CHECK: vcge.u16 q8, q8, q9 @ encoding: [0xf2,0x03,0x50,0xf3]
+ vcge.u16 q8, q8, q9
+@ CHECK: vcge.u32 q8, q8, q9 @ encoding: [0xf2,0x03,0x60,0xf3]
+ vcge.u32 q8, q8, q9
+@ CHECK: vcge.f32 q8, q8, q9 @ encoding: [0xe2,0x0e,0x40,0xf3]
+ vcge.f32 q8, q8, q9
+@ CHECK: vacge.f32 d16, d16, d17 @ encoding: [0xb1,0x0e,0x40,0xf3]
+ vacge.f32 d16, d16, d17
+@ CHECK: vacge.f32 q8, q8, q9 @ encoding: [0xf2,0x0e,0x40,0xf3]
+ vacge.f32 q8, q8, q9
+
+@ CHECK: vcgt.s8 d16, d16, d17 @ encoding: [0xa1,0x03,0x40,0xf2]
+ vcgt.s8 d16, d16, d17
+@ CHECK: vcgt.s16 d16, d16, d17 @ encoding: [0xa1,0x03,0x50,0xf2]
+ vcgt.s16 d16, d16, d17
+@ CHECK: vcgt.s32 d16, d16, d17 @ encoding: [0xa1,0x03,0x60,0xf2]
+ vcgt.s32 d16, d16, d17
+@ CHECK: vcgt.u8 d16, d16, d17 @ encoding: [0xa1,0x03,0x40,0xf3]
+ vcgt.u8 d16, d16, d17
+@ CHECK: vcgt.u16 d16, d16, d17 @ encoding: [0xa1,0x03,0x50,0xf3]
+ vcgt.u16 d16, d16, d17
+@ CHECK: vcgt.u32 d16, d16, d17 @ encoding: [0xa1,0x03,0x60,0xf3]
+ vcgt.u32 d16, d16, d17
+@ CHECK: vcgt.f32 d16, d16, d17 @ encoding: [0xa1,0x0e,0x60,0xf3]
+ vcgt.f32 d16, d16, d17
+@ CHECK: vcgt.s8 q8, q8, q9 @ encoding: [0xe2,0x03,0x40,0xf2]
+ vcgt.s8 q8, q8, q9
+@ CHECK: vcgt.s16 q8, q8, q9 @ encoding: [0xe2,0x03,0x50,0xf2]
+ vcgt.s16 q8, q8, q9
+@ CHECK: vcgt.s32 q8, q8, q9 @ encoding: [0xe2,0x03,0x60,0xf2]
+ vcgt.s32 q8, q8, q9
+@ CHECK: vcgt.u8 q8, q8, q9 @ encoding: [0xe2,0x03,0x40,0xf3]
+ vcgt.u8 q8, q8, q9
+@ CHECK: vcgt.u16 q8, q8, q9 @ encoding: [0xe2,0x03,0x50,0xf3]
+ vcgt.u16 q8, q8, q9
+@ CHECK: vcgt.u32 q8, q8, q9 @ encoding: [0xe2,0x03,0x60,0xf3]
+ vcgt.u32 q8, q8, q9
+@ CHECK: vcgt.f32 q8, q8, q9 @ encoding: [0xe2,0x0e,0x60,0xf3]
+ vcgt.f32 q8, q8, q9
+@ CHECK: vacgt.f32 d16, d16, d17 @ encoding: [0xb1,0x0e,0x60,0xf3]
+ vacgt.f32 d16, d16, d17
+@ CHECK: vacgt.f32 q8, q8, q9 @ encoding: [0xf2,0x0e,0x60,0xf3]
+ vacgt.f32 q8, q8, q9
+
+@ CHECK: vtst.8 d16, d16, d17 @ encoding: [0xb1,0x08,0x40,0xf2]
+ vtst.8 d16, d16, d17
+@ CHECK: vtst.16 d16, d16, d17 @ encoding: [0xb1,0x08,0x50,0xf2]
+ vtst.16 d16, d16, d17
+@ CHECK: vtst.32 d16, d16, d17 @ encoding: [0xb1,0x08,0x60,0xf2]
+ vtst.32 d16, d16, d17
+@ CHECK: vtst.8 q8, q8, q9 @ encoding: [0xf2,0x08,0x40,0xf2]
+ vtst.8 q8, q8, q9
+@ CHECK: vtst.16 q8, q8, q9 @ encoding: [0xf2,0x08,0x50,0xf2]
+ vtst.16 q8, q8, q9
+@ CHECK: vtst.32 q8, q8, q9 @ encoding: [0xf2,0x08,0x60,0xf2]
+ vtst.32 q8, q8, q9
+
+@ CHECK: vceq.i8 d16, d16, #0 @ encoding: [0x20,0x01,0xf1,0xf3]
+ vceq.i8 d16, d16, #0
+@ CHECK: vcge.s8 d16, d16, #0 @ encoding: [0xa0,0x00,0xf1,0xf3]
+ vcge.s8 d16, d16, #0
+@ CHECK: vcle.s8 d16, d16, #0 @ encoding: [0xa0,0x01,0xf1,0xf3]
+ vcle.s8 d16, d16, #0
+@ CHECK: vcgt.s8 d16, d16, #0 @ encoding: [0x20,0x00,0xf1,0xf3]
+ vcgt.s8 d16, d16, #0
+@ CHECK: vclt.s8 d16, d16, #0 @ encoding: [0x20,0x02,0xf1,0xf3]
+ vclt.s8 d16, d16, #0
diff --git a/test/MC/ARM/neon-convert-encoding.s b/test/MC/ARM/neon-convert-encoding.s
new file mode 100644
index 0000000..1733c52
--- /dev/null
+++ b/test/MC/ARM/neon-convert-encoding.s
@@ -0,0 +1,38 @@
+@ RUN: llvm-mc -mcpu=cortex-a9 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vcvt.s32.f32 d16, d16 @ encoding: [0x20,0x07,0xfb,0xf3]
+ vcvt.s32.f32 d16, d16
+@ CHECK: vcvt.u32.f32 d16, d16 @ encoding: [0xa0,0x07,0xfb,0xf3]
+ vcvt.u32.f32 d16, d16
+@ CHECK: vcvt.f32.s32 d16, d16 @ encoding: [0x20,0x06,0xfb,0xf3]
+ vcvt.f32.s32 d16, d16
+@ CHECK: vcvt.f32.u32 d16, d16 @ encoding: [0xa0,0x06,0xfb,0xf3]
+ vcvt.f32.u32 d16, d16
+@ CHECK: vcvt.s32.f32 q8, q8 @ encoding: [0x60,0x07,0xfb,0xf3]
+ vcvt.s32.f32 q8, q8
+@ CHECK: vcvt.u32.f32 q8, q8 @ encoding: [0xe0,0x07,0xfb,0xf3]
+ vcvt.u32.f32 q8, q8
+@ CHECK: vcvt.f32.s32 q8, q8 @ encoding: [0x60,0x06,0xfb,0xf3]
+ vcvt.f32.s32 q8, q8
+@ CHECK: vcvt.f32.u32 q8, q8 @ encoding: [0xe0,0x06,0xfb,0xf3]
+ vcvt.f32.u32 q8, q8
+@ CHECK: vcvt.s32.f32 d16, d16, #1 @ encoding: [0x30,0x0f,0xff,0xf2]
+ vcvt.s32.f32 d16, d16, #1
+@ CHECK: vcvt.u32.f32 d16, d16, #1 @ encoding: [0x30,0x0f,0xff,0xf3]
+ vcvt.u32.f32 d16, d16, #1
+@ CHECK: vcvt.f32.s32 d16, d16, #1 @ encoding: [0x30,0x0e,0xff,0xf2]
+ vcvt.f32.s32 d16, d16, #1
+@ CHECK: vcvt.f32.u32 d16, d16, #1 @ encoding: [0x30,0x0e,0xff,0xf3]
+ vcvt.f32.u32 d16, d16, #1
+@ CHECK: vcvt.s32.f32 q8, q8, #1 @ encoding: [0x70,0x0f,0xff,0xf2]
+ vcvt.s32.f32 q8, q8, #1
+@ CHECK: vcvt.u32.f32 q8, q8, #1 @ encoding: [0x70,0x0f,0xff,0xf3]
+ vcvt.u32.f32 q8, q8, #1
+@ CHECK: vcvt.f32.s32 q8, q8, #1 @ encoding: [0x70,0x0e,0xff,0xf2]
+ vcvt.f32.s32 q8, q8, #1
+@ CHECK: vcvt.f32.u32 q8, q8, #1 @ encoding: [0x70,0x0e,0xff,0xf3]
+ vcvt.f32.u32 q8, q8, #1
+@ CHECK: vcvt.f32.f16 q8, d16 @ encoding: [0x20,0x07,0xf6,0xf3]
+ vcvt.f32.f16 q8, d16
+@ CHECK: vcvt.f16.f32 d16, q8 @ encoding: [0x20,0x06,0xf6,0xf3]
+ vcvt.f16.f32 d16, q8
diff --git a/test/MC/ARM/neon-dup-encoding.s b/test/MC/ARM/neon-dup-encoding.s
new file mode 100644
index 0000000..0aebdce
--- /dev/null
+++ b/test/MC/ARM/neon-dup-encoding.s
@@ -0,0 +1,27 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vdup.8 d16, r0 @ encoding: [0x90,0x0b,0xc0,0xee]
+ vdup.8 d16, r0
+@ CHECK: vdup.16 d16, r0 @ encoding: [0xb0,0x0b,0x80,0xee]
+ vdup.16 d16, r0
+@ CHECK: vdup.32 d16, r0 @ encoding: [0x90,0x0b,0x80,0xee]
+ vdup.32 d16, r0
+@ CHECK: vdup.8 q8, r0 @ encoding: [0x90,0x0b,0xe0,0xee]
+ vdup.8 q8, r0
+@ CHECK: vdup.16 q8, r0 @ encoding: [0xb0,0x0b,0xa0,0xee]
+ vdup.16 q8, r0
+@ CHECK: vdup.32 q8, r0 @ encoding: [0x90,0x0b,0xa0,0xee]
+ vdup.32 q8, r0
+@ CHECK: vdup.8 d16, d16[1] @ encoding: [0x20,0x0c,0xf3,0xf3]
+ vdup.8 d16, d16[1]
+@ CHECK: vdup.16 d16, d16[1] @ encoding: [0x20,0x0c,0xf6,0xf3]
+ vdup.16 d16, d16[1]
+@ CHECK: vdup.32 d16, d16[1] @ encoding: [0x20,0x0c,0xfc,0xf3]
+ vdup.32 d16, d16[1]
+@ CHECK: vdup.8 q8, d16[1] @ encoding: [0x60,0x0c,0xf3,0xf3]
+ vdup.8 q8, d16[1]
+@ CHECK: vdup.16 q8, d16[1] @ encoding: [0x60,0x0c,0xf6,0xf3]
+ vdup.16 q8, d16[1]
+@ CHECK: vdup.32 q8, d16[1] @ encoding: [0x60,0x0c,0xfc,0xf3]
+ vdup.32 q8, d16[1]
diff --git a/test/MC/ARM/neon-minmax-encoding.s b/test/MC/ARM/neon-minmax-encoding.s
new file mode 100644
index 0000000..2d0d8c9
--- /dev/null
+++ b/test/MC/ARM/neon-minmax-encoding.s
@@ -0,0 +1,58 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vmin.s8 d16, d16, d17 @ encoding: [0xb1,0x06,0x40,0xf2]
+ vmin.s8 d16, d16, d17
+@ CHECK: vmin.s16 d16, d16, d17 @ encoding: [0xb1,0x06,0x50,0xf2]
+ vmin.s16 d16, d16, d17
+@ CHECK: vmin.s32 d16, d16, d17 @ encoding: [0xb1,0x06,0x60,0xf2]
+ vmin.s32 d16, d16, d17
+@ CHECK: vmin.u8 d16, d16, d17 @ encoding: [0xb1,0x06,0x40,0xf3]
+ vmin.u8 d16, d16, d17
+@ CHECK: vmin.u16 d16, d16, d17 @ encoding: [0xb1,0x06,0x50,0xf3]
+ vmin.u16 d16, d16, d17
+@ CHECK: vmin.u32 d16, d16, d17 @ encoding: [0xb1,0x06,0x60,0xf3]
+ vmin.u32 d16, d16, d17
+@ CHECK: vmin.f32 d16, d16, d17 @ encoding: [0xa1,0x0f,0x60,0xf2]
+ vmin.f32 d16, d16, d17
+@ CHECK: vmin.s8 q8, q8, q9 @ encoding: [0xf2,0x06,0x40,0xf2]
+ vmin.s8 q8, q8, q9
+@ CHECK: vmin.s16 q8, q8, q9 @ encoding: [0xf2,0x06,0x50,0xf2]
+ vmin.s16 q8, q8, q9
+@ CHECK: vmin.s32 q8, q8, q9 @ encoding: [0xf2,0x06,0x60,0xf2]
+ vmin.s32 q8, q8, q9
+@ CHECK: vmin.u8 q8, q8, q9 @ encoding: [0xf2,0x06,0x40,0xf3]
+ vmin.u8 q8, q8, q9
+@ CHECK: vmin.u16 q8, q8, q9 @ encoding: [0xf2,0x06,0x50,0xf3]
+ vmin.u16 q8, q8, q9
+@ CHECK: vmin.u32 q8, q8, q9 @ encoding: [0xf2,0x06,0x60,0xf3]
+ vmin.u32 q8, q8, q9
+@ CHECK: vmin.f32 q8, q8, q9 @ encoding: [0xe2,0x0f,0x60,0xf2]
+ vmin.f32 q8, q8, q9
+@ CHECK: vmax.s8 d16, d16, d17 @ encoding: [0xa1,0x06,0x40,0xf2]
+ vmax.s8 d16, d16, d17
+@ CHECK: vmax.s16 d16, d16, d17 @ encoding: [0xa1,0x06,0x50,0xf2]
+ vmax.s16 d16, d16, d17
+@ CHECK: vmax.s32 d16, d16, d17 @ encoding: [0xa1,0x06,0x60,0xf2]
+ vmax.s32 d16, d16, d17
+@ CHECK: vmax.u8 d16, d16, d17 @ encoding: [0xa1,0x06,0x40,0xf3]
+ vmax.u8 d16, d16, d17
+@ CHECK: vmax.u16 d16, d16, d17 @ encoding: [0xa1,0x06,0x50,0xf3]
+ vmax.u16 d16, d16, d17
+@ CHECK: vmax.u32 d16, d16, d17 @ encoding: [0xa1,0x06,0x60,0xf3]
+ vmax.u32 d16, d16, d17
+@ CHECK: vmax.f32 d16, d16, d17 @ encoding: [0xa1,0x0f,0x40,0xf2]
+ vmax.f32 d16, d16, d17
+@ CHECK: vmax.s8 q8, q8, q9 @ encoding: [0xe2,0x06,0x40,0xf2]
+ vmax.s8 q8, q8, q9
+@ CHECK: vmax.s16 q8, q8, q9 @ encoding: [0xe2,0x06,0x50,0xf2]
+ vmax.s16 q8, q8, q9
+@ CHECK: vmax.s32 q8, q8, q9 @ encoding: [0xe2,0x06,0x60,0xf2]
+ vmax.s32 q8, q8, q9
+@ CHECK: vmax.u8 q8, q8, q9 @ encoding: [0xe2,0x06,0x40,0xf3]
+ vmax.u8 q8, q8, q9
+@ CHECK: vmax.u16 q8, q8, q9 @ encoding: [0xe2,0x06,0x50,0xf3]
+ vmax.u16 q8, q8, q9
+@ CHECK: vmax.u32 q8, q8, q9 @ encoding: [0xe2,0x06,0x60,0xf3]
+ vmax.u32 q8, q8, q9
+@ CHECK: vmax.f32 q8, q8, q9 @ encoding: [0xe2,0x0f,0x40,0xf2]
+ vmax.f32 q8, q8, q9
diff --git a/test/MC/ARM/neon-mov-encoding.s b/test/MC/ARM/neon-mov-encoding.s
new file mode 100644
index 0000000..ca678d0
--- /dev/null
+++ b/test/MC/ARM/neon-mov-encoding.s
@@ -0,0 +1,117 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vmov.i8 d16, #0x8 @ encoding: [0x18,0x0e,0xc0,0xf2]
+ vmov.i8 d16, #0x8
+@ CHECK: vmov.i16 d16, #0x10 @ encoding: [0x10,0x08,0xc1,0xf2]
+ vmov.i16 d16, #0x10
+@ CHECK: vmov.i16 d16, #0x1000 @ encoding: [0x10,0x0a,0xc1,0xf2]
+ vmov.i16 d16, #0x1000
+@ CHECK: vmov.i32 d16, #0x20 @ encoding: [0x10,0x00,0xc2,0xf2]
+ vmov.i32 d16, #0x20
+@ CHECK: vmov.i32 d16, #0x2000 @ encoding: [0x10,0x02,0xc2,0xf2]
+ vmov.i32 d16, #0x2000
+@ CHECK: vmov.i32 d16, #0x200000 @ encoding: [0x10,0x04,0xc2,0xf2]
+ vmov.i32 d16, #0x200000
+@ CHECK: vmov.i32 d16, #0x20000000 @ encoding: [0x10,0x06,0xc2,0xf2]
+ vmov.i32 d16, #0x20000000
+@ CHECK: vmov.i32 d16, #0x20FF @ encoding: [0x10,0x0c,0xc2,0xf2]
+ vmov.i32 d16, #0x20FF
+@ CHECK: vmov.i32 d16, #0x20FFFF @ encoding: [0x10,0x0d,0xc2,0xf2]
+ vmov.i32 d16, #0x20FFFF
+@ CHECK: vmov.i64 d16, #0xFF0000FF0000FFFF @ encoding: [0x33,0x0e,0xc1,0xf3]
+ vmov.i64 d16, #0xFF0000FF0000FFFF
+@ CHECK: vmov.i8 q8, #0x8 @ encoding: [0x58,0x0e,0xc0,0xf2]
+ vmov.i8 q8, #0x8
+@ CHECK: vmov.i16 q8, #0x10 @ encoding: [0x50,0x08,0xc1,0xf2]
+ vmov.i16 q8, #0x10
+@ CHECK: vmov.i16 q8, #0x1000 @ encoding: [0x50,0x0a,0xc1,0xf2]
+ vmov.i16 q8, #0x1000
+@ CHECK: vmov.i32 q8, #0x20 @ encoding: [0x50,0x00,0xc2,0xf2]
+ vmov.i32 q8, #0x20
+@ CHECK: vmov.i32 q8, #0x2000 @ encoding: [0x50,0x02,0xc2,0xf2]
+ vmov.i32 q8, #0x2000
+@ CHECK: vmov.i32 q8, #0x200000 @ encoding: [0x50,0x04,0xc2,0xf2]
+ vmov.i32 q8, #0x200000
+@ CHECK: vmov.i32 q8, #0x20000000 @ encoding: [0x50,0x06,0xc2,0xf2]
+ vmov.i32 q8, #0x20000000
+@ CHECK: vmov.i32 q8, #0x20FF @ encoding: [0x50,0x0c,0xc2,0xf2]
+ vmov.i32 q8, #0x20FF
+@ CHECK: vmov.i32 q8, #0x20FFFF @ encoding: [0x50,0x0d,0xc2,0xf2]
+ vmov.i32 q8, #0x20FFFF
+@ CHECK: vmov.i64 q8, #0xFF0000FF0000FFFF @ encoding: [0x73,0x0e,0xc1,0xf3]
+ vmov.i64 q8, #0xFF0000FF0000FFFF
+@ CHECK: vmvn.i16 d16, #0x10 @ encoding: [0x30,0x08,0xc1,0xf2]
+ vmvn.i16 d16, #0x10
+@ CHECK: vmvn.i16 d16, #0x1000 @ encoding: [0x30,0x0a,0xc1,0xf2]
+ vmvn.i16 d16, #0x1000
+@ CHECK: vmvn.i32 d16, #0x20 @ encoding: [0x30,0x00,0xc2,0xf2]
+ vmvn.i32 d16, #0x20
+@ CHECK: vmvn.i32 d16, #0x2000 @ encoding: [0x30,0x02,0xc2,0xf2]
+ vmvn.i32 d16, #0x2000
+@ CHECK: vmvn.i32 d16, #0x200000 @ encoding: [0x30,0x04,0xc2,0xf2]
+ vmvn.i32 d16, #0x200000
+@ CHECK: vmvn.i32 d16, #0x20000000 @ encoding: [0x30,0x06,0xc2,0xf2]
+ vmvn.i32 d16, #0x20000000
+@ CHECK: vmvn.i32 d16, #0x20FF @ encoding: [0x30,0x0c,0xc2,0xf2]
+ vmvn.i32 d16, #0x20FF
+@ CHECK: vmvn.i32 d16, #0x20FFFF @ encoding: [0x30,0x0d,0xc2,0xf2]
+ vmvn.i32 d16, #0x20FFFF
+@ CHECK: vmovl.s8 q8, d16 @ encoding: [0x30,0x0a,0xc8,0xf2]
+ vmovl.s8 q8, d16
+@ CHECK: vmovl.s16 q8, d16 @ encoding: [0x30,0x0a,0xd0,0xf2]
+ vmovl.s16 q8, d16
+@ CHECK: vmovl.s32 q8, d16 @ encoding: [0x30,0x0a,0xe0,0xf2]
+ vmovl.s32 q8, d16
+@ CHECK: vmovl.u8 q8, d16 @ encoding: [0x30,0x0a,0xc8,0xf3]
+ vmovl.u8 q8, d16
+@ CHECK: vmovl.u16 q8, d16 @ encoding: [0x30,0x0a,0xd0,0xf3]
+ vmovl.u16 q8, d16
+@ CHECK: vmovl.u32 q8, d16 @ encoding: [0x30,0x0a,0xe0,0xf3]
+ vmovl.u32 q8, d16
+@ CHECK: vmovn.i16 d16, q8 @ encoding: [0x20,0x02,0xf2,0xf3]
+ vmovn.i16 d16, q8
+@ CHECK: vmovn.i32 d16, q8 @ encoding: [0x20,0x02,0xf6,0xf3]
+ vmovn.i32 d16, q8
+@ CHECK: vmovn.i64 d16, q8 @ encoding: [0x20,0x02,0xfa,0xf3]
+ vmovn.i64 d16, q8
+@ CHECK: vqmovn.s16 d16, q8 @ encoding: [0xa0,0x02,0xf2,0xf3]
+ vqmovn.s16 d16, q8
+@ CHECK: vqmovn.s32 d16, q8 @ encoding: [0xa0,0x02,0xf6,0xf3]
+ vqmovn.s32 d16, q8
+@ CHECK: vqmovn.s64 d16, q8 @ encoding: [0xa0,0x02,0xfa,0xf3]
+ vqmovn.s64 d16, q8
+@ CHECK: vqmovn.u16 d16, q8 @ encoding: [0xe0,0x02,0xf2,0xf3]
+ vqmovn.u16 d16, q8
+@ CHECK: vqmovn.u32 d16, q8 @ encoding: [0xe0,0x02,0xf6,0xf3]
+ vqmovn.u32 d16, q8
+@ CHECK: vqmovn.u64 d16, q8 @ encoding: [0xe0,0x02,0xfa,0xf3]
+ vqmovn.u64 d16, q8
+@ CHECK: vqmovun.s16 d16, q8 @ encoding: [0x60,0x02,0xf2,0xf3]
+ vqmovun.s16 d16, q8
+@ CHECK: vqmovun.s32 d16, q8 @ encoding: [0x60,0x02,0xf6,0xf3]
+ vqmovun.s32 d16, q8
+@ CHECK: vqmovun.s64 d16, q8 @ encoding: [0x60,0x02,0xfa,0xf3]
+ vqmovun.s64 d16, q8
+@ CHECK: vmov.s8 r0, d16[1] @ encoding: [0xb0,0x0b,0x50,0xee]
+ vmov.s8 r0, d16[1]
+@ CHECK: vmov.s16 r0, d16[1] @ encoding: [0xf0,0x0b,0x10,0xee]
+ vmov.s16 r0, d16[1]
+@ CHECK: vmov.u8 r0, d16[1] @ encoding: [0xb0,0x0b,0xd0,0xee]
+ vmov.u8 r0, d16[1]
+@ CHECK: vmov.u16 r0, d16[1] @ encoding: [0xf0,0x0b,0x90,0xee]
+ vmov.u16 r0, d16[1]
+@ CHECK: vmov.32 r0, d16[1] @ encoding: [0x90,0x0b,0x30,0xee]
+ vmov.32 r0, d16[1]
+@ CHECK: vmov.8 d16[1], r1 @ encoding: [0xb0,0x1b,0x40,0xee]
+ vmov.8 d16[1], r1
+@ CHECK: vmov.16 d16[1], r1 @ encoding: [0xf0,0x1b,0x00,0xee]
+ vmov.16 d16[1], r1
+@ CHECK: vmov.32 d16[1], r1 @ encoding: [0x90,0x1b,0x20,0xee]
+ vmov.32 d16[1], r1
+@ CHECK: vmov.8 d18[1], r1 @ encoding: [0xb0,0x1b,0x42,0xee]
+ vmov.8 d18[1], r1
+@ CHECK: vmov.16 d18[1], r1 @ encoding: [0xf0,0x1b,0x02,0xee]
+ vmov.16 d18[1], r1
+@ CHECK: vmov.32 d18[1], r1 @ encoding: [0x90,0x1b,0x22,0xee]
+ vmov.32 d18[1], r1
diff --git a/test/MC/ARM/neon-mul-accum-encoding.s b/test/MC/ARM/neon-mul-accum-encoding.s
new file mode 100644
index 0000000..e269dea
--- /dev/null
+++ b/test/MC/ARM/neon-mul-accum-encoding.s
@@ -0,0 +1,67 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vmla.i8 d16, d18, d17 @ encoding: [0xa1,0x09,0x42,0xf2]
+ vmla.i8 d16, d18, d17
+@ CHECK: vmla.i16 d16, d18, d17 @ encoding: [0xa1,0x09,0x52,0xf2]
+ vmla.i16 d16, d18, d17
+@ CHECK: vmla.i16 d16, d18, d17 @ encoding: [0xa1,0x09,0x52,0xf2]
+ vmla.i32 d16, d18, d17
+@ CHECK: vmla.f32 d16, d18, d17 @ encoding: [0xb1,0x0d,0x42,0xf2]
+ vmla.f32 d16, d18, d17
+@ CHECK: vmla.i8 q9, q8, q10 @ encoding: [0xe4,0x29,0x40,0xf2]
+ vmla.i8 q9, q8, q10
+@ CHECK: vmla.i16 q9, q8, q10 @ encoding: [0xe4,0x29,0x50,0xf2]
+ vmla.i16 q9, q8, q10
+@ CHECK: vmla.i32 q9, q8, q10 @ encoding: [0xe4,0x29,0x60,0xf2]
+ vmla.i32 q9, q8, q10
+@ CHECK: vmla.f32 q9, q8, q10 @ encoding: [0xf4,0x2d,0x40,0xf2]
+ vmla.f32 q9, q8, q10
+@ CHECK: vmlal.s8 q8, d19, d18 @ encoding: [0xa2,0x08,0xc3,0xf2]
+ vmlal.s8 q8, d19, d18
+@ CHECK: vmlal.s16 q8, d19, d18 @ encoding: [0xa2,0x08,0xd3,0xf2]
+ vmlal.s16 q8, d19, d18
+@ CHECK: vmlal.s32 q8, d19, d18 @ encoding: [0xa2,0x08,0xe3,0xf2]
+ vmlal.s32 q8, d19, d18
+@ CHECK: vmlal.u8 q8, d19, d18 @ encoding: [0xa2,0x08,0xc3,0xf3]
+ vmlal.u8 q8, d19, d18
+@ CHECK: vmlal.u16 q8, d19, d18 @ encoding: [0xa2,0x08,0xd3,0xf3]
+ vmlal.u16 q8, d19, d18
+@ CHECK: vmlal.u32 q8, d19, d18 @ encoding: [0xa2,0x08,0xe3,0xf3]
+ vmlal.u32 q8, d19, d18
+@ CHECK: vqdmlal.s16 q8, d19, d18 @ encoding: [0xa2,0x09,0xd3,0xf2]
+ vqdmlal.s16 q8, d19, d18
+@ CHECK: vqdmlal.s32 q8, d19, d18 @ encoding: [0xa2,0x09,0xe3,0xf2]
+ vqdmlal.s32 q8, d19, d18
+@ CHECK: vmls.i8 d16, d18, d17 @ encoding: [0xa1,0x09,0x42,0xf3]
+ vmls.i8 d16, d18, d17
+@ CHECK: vmls.i16 d16, d18, d17 @ encoding: [0xa1,0x09,0x52,0xf3]
+ vmls.i16 d16, d18, d17
+@ CHECK: vmls.i32 d16, d18, d17 @ encoding: [0xa1,0x09,0x62,0xf3]
+ vmls.i32 d16, d18, d17
+@ CHECK: vmls.f32 d16, d18, d17 @ encoding: [0xb1,0x0d,0x62,0xf2]
+ vmls.f32 d16, d18, d17
+@ CHECK: vmls.i8 q9, q8, q10 @ encoding: [0xe4,0x29,0x40,0xf3]
+ vmls.i8 q9, q8, q10
+@ CHECK: vmls.i16 q9, q8, q10 @ encoding: [0xe4,0x29,0x50,0xf3]
+ vmls.i16 q9, q8, q10
+@ CHECK: vmls.i32 q9, q8, q10 @ encoding: [0xe4,0x29,0x60,0xf3]
+ vmls.i32 q9, q8, q10
+@ CHECK: vmls.f32 q9, q8, q10 @ encoding: [0xf4,0x2d,0x60,0xf2]
+ vmls.f32 q9, q8, q10
+@ CHECK: vmlsl.s8 q8, d19, d18 @ encoding: [0xa2,0x0a,0xc3,0xf2]
+ vmlsl.s8 q8, d19, d18
+@ CHECK: vmlsl.s16 q8, d19, d18 @ encoding: [0xa2,0x0a,0xd3,0xf2]
+ vmlsl.s16 q8, d19, d18
+@ CHECK: vmlsl.s32 q8, d19, d18 @ encoding: [0xa2,0x0a,0xe3,0xf2]
+ vmlsl.s32 q8, d19, d18
+@ CHECK: vmlsl.u8 q8, d19, d18 @ encoding: [0xa2,0x0a,0xc3,0xf3]
+ vmlsl.u8 q8, d19, d18
+@ CHECK: vmlsl.u16 q8, d19, d18 @ encoding: [0xa2,0x0a,0xd3,0xf3]
+ vmlsl.u16 q8, d19, d18
+@ CHECK: vmlsl.u32 q8, d19, d18 @ encoding: [0xa2,0x0a,0xe3,0xf3]
+ vmlsl.u32 q8, d19, d18
+@ CHECK: vqdmlsl.s16 q8, d19, d18 @ encoding: [0xa2,0x0b,0xd3,0xf2]
+ vqdmlsl.s16 q8, d19, d18
+@ CHECK: vqdmlsl.s32 q8, d19, d18 @ encoding: [0xa2,0x0b,0xe3,0xf2]
+ vqdmlsl.s32 q8, d19, d18
diff --git a/test/MC/ARM/neon-mul-encoding.s b/test/MC/ARM/neon-mul-encoding.s
new file mode 100644
index 0000000..4ff192f
--- /dev/null
+++ b/test/MC/ARM/neon-mul-encoding.s
@@ -0,0 +1,56 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vmul.i8 d16, d16, d17 @ encoding: [0xb1,0x09,0x40,0xf2]
+ vmul.i8 d16, d16, d17
+@ CHECK: vmul.i16 d16, d16, d17 @ encoding: [0xb1,0x09,0x50,0xf2]
+ vmul.i16 d16, d16, d17
+@ CHECK: vmul.i32 d16, d16, d17 @ encoding: [0xb1,0x09,0x60,0xf2]
+ vmul.i32 d16, d16, d17
+@ CHECK: vmul.f32 d16, d16, d17 @ encoding: [0xb1,0x0d,0x40,0xf3]
+ vmul.f32 d16, d16, d17
+@ CHECK: vmul.i8 q8, q8, q9 @ encoding: [0xf2,0x09,0x40,0xf2]
+ vmul.i8 q8, q8, q9
+@ CHECK: vmul.i16 q8, q8, q9 @ encoding: [0xf2,0x09,0x50,0xf2]
+ vmul.i16 q8, q8, q9
+@ CHECK: vmul.i32 q8, q8, q9 @ encoding: [0xf2,0x09,0x60,0xf2]
+ vmul.i32 q8, q8, q9
+@ CHECK: vmul.f32 q8, q8, q9 @ encoding: [0xf2,0x0d,0x40,0xf3]
+ vmul.f32 q8, q8, q9
+@ CHECK: vmul.p8 d16, d16, d17 @ encoding: [0xb1,0x09,0x40,0xf3]
+ vmul.p8 d16, d16, d17
+@ CHECK: vmul.p8 q8, q8, q9 @ encoding: [0xf2,0x09,0x40,0xf3]
+ vmul.p8 q8, q8, q9
+@ CHECK: vqdmulh.s16 d16, d16, d17 @ encoding: [0xa1,0x0b,0x50,0xf2]
+ vqdmulh.s16 d16, d16, d17
+@ CHECK: vqdmulh.s32 d16, d16, d17 @ encoding: [0xa1,0x0b,0x60,0xf2]
+ vqdmulh.s32 d16, d16, d17
+@ CHECK: vqdmulh.s16 q8, q8, q9 @ encoding: [0xe2,0x0b,0x50,0xf2]
+ vqdmulh.s16 q8, q8, q9
+@ CHECK: vqdmulh.s32 q8, q8, q9 @ encoding: [0xe2,0x0b,0x60,0xf2]
+ vqdmulh.s32 q8, q8, q9
+@ CHECK: vqrdmulh.s16 d16, d16, d17 @ encoding: [0xa1,0x0b,0x50,0xf3]
+ vqrdmulh.s16 d16, d16, d17
+@ CHECK: vqrdmulh.s32 d16, d16, d17 @ encoding: [0xa1,0x0b,0x60,0xf3]
+ vqrdmulh.s32 d16, d16, d17
+@ CHECK: vqrdmulh.s16 q8, q8, q9 @ encoding: [0xe2,0x0b,0x50,0xf3]
+ vqrdmulh.s16 q8, q8, q9
+@ CHECK: vqrdmulh.s32 q8, q8, q9 @ encoding: [0xe2,0x0b,0x60,0xf3]
+ vqrdmulh.s32 q8, q8, q9
+@ CHECK: vmull.s8 q8, d16, d17 @ encoding: [0xa1,0x0c,0xc0,0xf2]
+ vmull.s8 q8, d16, d17
+@ CHECK: vmull.s16 q8, d16, d17 @ encoding: [0xa1,0x0c,0xd0,0xf2]
+ vmull.s16 q8, d16, d17
+@ CHECK: vmull.s32 q8, d16, d17 @ encoding: [0xa1,0x0c,0xe0,0xf2]
+ vmull.s32 q8, d16, d17
+@ CHECK: vmull.u8 q8, d16, d17 @ encoding: [0xa1,0x0c,0xc0,0xf3]
+ vmull.u8 q8, d16, d17
+@ CHECK: vmull.u16 q8, d16, d17 @ encoding: [0xa1,0x0c,0xd0,0xf3]
+ vmull.u16 q8, d16, d17
+@ CHECK: vmull.u32 q8, d16, d17 @ encoding: [0xa1,0x0c,0xe0,0xf3]
+ vmull.u32 q8, d16, d17
+@ CHECK: vmull.p8 q8, d16, d17 @ encoding: [0xa1,0x0e,0xc0,0xf2]
+ vmull.p8 q8, d16, d17
+@ CHECK: vqdmull.s16 q8, d16, d17 @ encoding: [0xa1,0x0d,0xd0,0xf2]
+ vqdmull.s16 q8, d16, d17
+@ CHECK: vqdmull.s32 q8, d16, d17 @ encoding: [0xa1,0x0d,0xe0,0xf2]
+ vqdmull.s32 q8, d16, d17
diff --git a/test/MC/ARM/neon-neg-encoding.s b/test/MC/ARM/neon-neg-encoding.s
new file mode 100644
index 0000000..014bdb0
--- /dev/null
+++ b/test/MC/ARM/neon-neg-encoding.s
@@ -0,0 +1,30 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vneg.s8 d16, d16 @ encoding: [0xa0,0x03,0xf1,0xf3]
+ vneg.s8 d16, d16
+@ CHECK: vneg.s16 d16, d16 @ encoding: [0xa0,0x03,0xf5,0xf3]
+ vneg.s16 d16, d16
+@ CHECK: vneg.s32 d16, d16 @ encoding: [0xa0,0x03,0xf9,0xf3]
+ vneg.s32 d16, d16
+@ CHECK: vneg.f32 d16, d16 @ encoding: [0xa0,0x07,0xf9,0xf3]
+ vneg.f32 d16, d16
+@ CHECK: vneg.s8 q8, q8 @ encoding: [0xe0,0x03,0xf1,0xf3]
+ vneg.s8 q8, q8
+@ CHECK: vneg.s16 q8, q8 @ encoding: [0xe0,0x03,0xf5,0xf3]
+ vneg.s16 q8, q8
+@ CHECK: vneg.s32 q8, q8 @ encoding: [0xe0,0x03,0xf9,0xf3]
+ vneg.s32 q8, q8
+@ CHECK: vneg.f32 q8, q8 @ encoding: [0xe0,0x07,0xf9,0xf3]
+ vneg.f32 q8, q8
+@ CHECK: vqneg.s8 d16, d16 @ encoding: [0xa0,0x07,0xf0,0xf3]
+ vqneg.s8 d16, d16
+@ CHECK: vqneg.s16 d16, d16 @ encoding: [0xa0,0x07,0xf4,0xf3]
+ vqneg.s16 d16, d16
+@ CHECK: vqneg.s32 d16, d16 @ encoding: [0xa0,0x07,0xf8,0xf3]
+ vqneg.s32 d16, d16
+@ CHECK: vqneg.s8 q8, q8 @ encoding: [0xe0,0x07,0xf0,0xf3]
+ vqneg.s8 q8, q8
+@ CHECK: vqneg.s16 q8, q8 @ encoding: [0xe0,0x07,0xf4,0xf3]
+ vqneg.s16 q8, q8
+@ CHECK: vqneg.s32 q8, q8 @ encoding: [0xe0,0x07,0xf8,0xf3]
+ vqneg.s32 q8, q8
diff --git a/test/MC/ARM/neon-pairwise-encoding.s b/test/MC/ARM/neon-pairwise-encoding.s
new file mode 100644
index 0000000..65c47bd
--- /dev/null
+++ b/test/MC/ARM/neon-pairwise-encoding.s
@@ -0,0 +1,86 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vpadd.i8 d16, d17, d16 @ encoding: [0xb0,0x0b,0x41,0xf2]
+ vpadd.i8 d16, d17, d16
+@ CHECK: vpadd.i16 d16, d17, d16 @ encoding: [0xb0,0x0b,0x51,0xf2]
+ vpadd.i16 d16, d17, d16
+@ CHECK: vpadd.i32 d16, d17, d16 @ encoding: [0xb0,0x0b,0x61,0xf2]
+ vpadd.i32 d16, d17, d16
+@ CHECK: vpadd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x40,0xf3]
+ vpadd.f32 d16, d16, d17
+@ CHECK: vpaddl.s8 d16, d16 @ encoding: [0x20,0x02,0xf0,0xf3]
+ vpaddl.s8 d16, d16
+@ CHECK: vpaddl.s16 d16, d16 @ encoding: [0x20,0x02,0xf4,0xf3]
+ vpaddl.s16 d16, d16
+@ CHECK: vpaddl.s32 d16, d16 @ encoding: [0x20,0x02,0xf8,0xf3]
+ vpaddl.s32 d16, d16
+@ CHECK: vpaddl.u8 d16, d16 @ encoding: [0xa0,0x02,0xf0,0xf3]
+ vpaddl.u8 d16, d16
+@ CHECK: vpaddl.u16 d16, d16 @ encoding: [0xa0,0x02,0xf4,0xf3]
+ vpaddl.u16 d16, d16
+@ CHECK: vpaddl.u32 d16, d16 @ encoding: [0xa0,0x02,0xf8,0xf3]
+ vpaddl.u32 d16, d16
+@ CHECK: vpaddl.s8 q8, q8 @ encoding: [0x60,0x02,0xf0,0xf3]
+ vpaddl.s8 q8, q8
+@ CHECK: vpaddl.s16 q8, q8 @ encoding: [0x60,0x02,0xf4,0xf3]
+ vpaddl.s16 q8, q8
+@ CHECK: vpaddl.s32 q8, q8 @ encoding: [0x60,0x02,0xf8,0xf3]
+ vpaddl.s32 q8, q8
+@ CHECK: vpaddl.u8 q8, q8 @ encoding: [0xe0,0x02,0xf0,0xf3]
+ vpaddl.u8 q8, q8
+@ CHECK: vpaddl.u16 q8, q8 @ encoding: [0xe0,0x02,0xf4,0xf3]
+ vpaddl.u16 q8, q8
+@ CHECK: vpaddl.u32 q8, q8 @ encoding: [0xe0,0x02,0xf8,0xf3]
+ vpaddl.u32 q8, q8
+@ CHECK: vpadal.s8 d16, d17 @ encoding: [0x21,0x06,0xf0,0xf3]
+ vpadal.s8 d16, d17
+@ CHECK: vpadal.s16 d16, d17 @ encoding: [0x21,0x06,0xf4,0xf3]
+ vpadal.s16 d16, d17
+@ CHECK: vpadal.s32 d16, d17 @ encoding: [0x21,0x06,0xf8,0xf3]
+ vpadal.s32 d16, d17
+@ CHECK: vpadal.u8 d16, d17 @ encoding: [0xa1,0x06,0xf0,0xf3]
+ vpadal.u8 d16, d17
+@ CHECK: vpadal.u16 d16, d17 @ encoding: [0xa1,0x06,0xf4,0xf3]
+ vpadal.u16 d16, d17
+@ CHECK: vpadal.u32 d16, d17 @ encoding: [0xa1,0x06,0xf8,0xf3]
+ vpadal.u32 d16, d17
+@ CHECK: vpadal.s8 q9, q8 @ encoding: [0x60,0x26,0xf0,0xf3]
+ vpadal.s8 q9, q8
+@ CHECK: vpadal.s16 q9, q8 @ encoding: [0x60,0x26,0xf4,0xf3]
+ vpadal.s16 q9, q8
+@ CHECK: vpadal.s32 q9, q8 @ encoding: [0x60,0x26,0xf8,0xf3]
+ vpadal.s32 q9, q8
+@ CHECK: vpadal.u8 q9, q8 @ encoding: [0xe0,0x26,0xf0,0xf3]
+ vpadal.u8 q9, q8
+@ CHECK: vpadal.u16 q9, q8 @ encoding: [0xe0,0x26,0xf4,0xf3]
+ vpadal.u16 q9, q8
+@ CHECK: vpadal.u32 q9, q8 @ encoding: [0xe0,0x26,0xf8,0xf3]
+ vpadal.u32 q9, q8
+@ CHECK: vpmin.s8 d16, d16, d17 @ encoding: [0xb1,0x0a,0x40,0xf2]
+ vpmin.s8 d16, d16, d17
+@ CHECK: vpmin.s16 d16, d16, d17 @ encoding: [0xb1,0x0a,0x50,0xf2]
+ vpmin.s16 d16, d16, d17
+@ CHECK: vpmin.s32 d16, d16, d17 @ encoding: [0xb1,0x0a,0x60,0xf2]
+ vpmin.s32 d16, d16, d17
+@ CHECK: vpmin.u8 d16, d16, d17 @ encoding: [0xb1,0x0a,0x40,0xf3]
+ vpmin.u8 d16, d16, d17
+@ CHECK: vpmin.u16 d16, d16, d17 @ encoding: [0xb1,0x0a,0x50,0xf3]
+ vpmin.u16 d16, d16, d17
+@ CHECK: vpmin.u32 d16, d16, d17 @ encoding: [0xb1,0x0a,0x60,0xf3]
+ vpmin.u32 d16, d16, d17
+@ CHECK: vpmin.f32 d16, d16, d17 @ encoding: [0xa1,0x0f,0x60,0xf3]
+ vpmin.f32 d16, d16, d17
+@ CHECK: vpmax.s8 d16, d16, d17 @ encoding: [0xa1,0x0a,0x40,0xf2]
+ vpmax.s8 d16, d16, d17
+@ CHECK: vpmax.s16 d16, d16, d17 @ encoding: [0xa1,0x0a,0x50,0xf2]
+ vpmax.s16 d16, d16, d17
+@ CHECK: vpmax.s32 d16, d16, d17 @ encoding: [0xa1,0x0a,0x60,0xf2]
+ vpmax.s32 d16, d16, d17
+@ CHECK: vpmax.u8 d16, d16, d17 @ encoding: [0xa1,0x0a,0x40,0xf3]
+ vpmax.u8 d16, d16, d17
+@ CHECK: vpmax.u16 d16, d16, d17 @ encoding: [0xa1,0x0a,0x50,0xf3]
+ vpmax.u16 d16, d16, d17
+@ CHECK: vpmax.u32 d16, d16, d17 @ encoding: [0xa1,0x0a,0x60,0xf3]
+ vpmax.u32 d16, d16, d17
+@ CHECK: vpmax.f32 d16, d16, d17 @ encoding: [0xa1,0x0f,0x40,0xf3]
+ vpmax.f32 d16, d16, d17
diff --git a/test/MC/ARM/neon-reciprocal-encoding.s b/test/MC/ARM/neon-reciprocal-encoding.s
new file mode 100644
index 0000000..e12a473
--- /dev/null
+++ b/test/MC/ARM/neon-reciprocal-encoding.s
@@ -0,0 +1,26 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vrecpe.u32 d16, d16 @ encoding: [0x20,0x04,0xfb,0xf3]
+ vrecpe.u32 d16, d16
+@ CHECK: vrecpe.u32 q8, q8 @ encoding: [0x60,0x04,0xfb,0xf3]
+ vrecpe.u32 q8, q8
+@ CHECK: vrecpe.f32 d16, d16 @ encoding: [0x20,0x05,0xfb,0xf3]
+ vrecpe.f32 d16, d16
+@ CHECK: vrecpe.f32 q8, q8 @ encoding: [0x60,0x05,0xfb,0xf3]
+ vrecpe.f32 q8, q8
+@ CHECK: vrecps.f32 d16, d16, d17 @ encoding: [0xb1,0x0f,0x40,0xf2]
+ vrecps.f32 d16, d16, d17
+@ CHECK: vrecps.f32 q8, q8, q9 @ encoding: [0xf2,0x0f,0x40,0xf2]
+ vrecps.f32 q8, q8, q9
+@ CHECK: vrsqrte.u32 d16, d16 @ encoding: [0xa0,0x04,0xfb,0xf3]
+ vrsqrte.u32 d16, d16
+@ CHECK: vrsqrte.u32 q8, q8 @ encoding: [0xe0,0x04,0xfb,0xf3]
+ vrsqrte.u32 q8, q8
+@ CHECK: vrsqrte.f32 d16, d16 @ encoding: [0xa0,0x05,0xfb,0xf3]
+ vrsqrte.f32 d16, d16
+@ CHECK: vrsqrte.f32 q8, q8 @ encoding: [0xe0,0x05,0xfb,0xf3]
+ vrsqrte.f32 q8, q8
+@ CHECK: vrsqrts.f32 d16, d16, d17 @ encoding: [0xb1,0x0f,0x60,0xf2]
+ vrsqrts.f32 d16, d16, d17
+@ CHECK: vrsqrts.f32 q8, q8, q9 @ encoding: [0xf2,0x0f,0x60,0xf2]
+ vrsqrts.f32 q8, q8, q9
diff --git a/test/MC/ARM/neon-reverse-encoding.s b/test/MC/ARM/neon-reverse-encoding.s
new file mode 100644
index 0000000..e33b9f3
--- /dev/null
+++ b/test/MC/ARM/neon-reverse-encoding.s
@@ -0,0 +1,26 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vrev64.8 d16, d16 @ encoding: [0x20,0x00,0xf0,0xf3]
+ vrev64.8 d16, d16
+@ CHECK: vrev64.16 d16, d16 @ encoding: [0x20,0x00,0xf4,0xf3]
+ vrev64.16 d16, d16
+@ CHECK: vrev64.32 d16, d16 @ encoding: [0x20,0x00,0xf8,0xf3]
+ vrev64.32 d16, d16
+@ CHECK: vrev64.8 q8, q8 @ encoding: [0x60,0x00,0xf0,0xf3]
+ vrev64.8 q8, q8
+@ CHECK: vrev64.16 q8, q8 @ encoding: [0x60,0x00,0xf4,0xf3]
+ vrev64.16 q8, q8
+@ CHECK: vrev64.32 q8, q8 @ encoding: [0x60,0x00,0xf8,0xf3]
+ vrev64.32 q8, q8
+@ CHECK: vrev32.8 d16, d16 @ encoding: [0xa0,0x00,0xf0,0xf3]
+ vrev32.8 d16, d16
+@ CHECK: vrev32.16 d16, d16 @ encoding: [0xa0,0x00,0xf4,0xf3]
+ vrev32.16 d16, d16
+@ CHECK: vrev32.8 q8, q8 @ encoding: [0xe0,0x00,0xf0,0xf3]
+ vrev32.8 q8, q8
+@ CHECK: vrev32.16 q8, q8 @ encoding: [0xe0,0x00,0xf4,0xf3]
+ vrev32.16 q8, q8
+@ CHECK: vrev16.8 d16, d16 @ encoding: [0x20,0x01,0xf0,0xf3]
+ vrev16.8 d16, d16
+@ CHECK: vrev16.8 q8, q8 @ encoding: [0x60,0x01,0xf0,0xf3]
+ vrev16.8 q8, q8
diff --git a/test/MC/ARM/neon-satshift-encoding.s b/test/MC/ARM/neon-satshift-encoding.s
new file mode 100644
index 0000000..506f48a
--- /dev/null
+++ b/test/MC/ARM/neon-satshift-encoding.s
@@ -0,0 +1,150 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vqshl.s8 d16, d16, d17 @ encoding: [0xb0,0x04,0x41,0xf2]
+ vqshl.s8 d16, d16, d17
+@ CHECK: vqshl.s16 d16, d16, d17 @ encoding: [0xb0,0x04,0x51,0xf2]
+ vqshl.s16 d16, d16, d17
+@ CHECK: vqshl.s32 d16, d16, d17 @ encoding: [0xb0,0x04,0x61,0xf2]
+ vqshl.s32 d16, d16, d17
+@ CHECK: vqshl.s64 d16, d16, d17 @ encoding: [0xb0,0x04,0x71,0xf2]
+ vqshl.s64 d16, d16, d17
+@ CHECK: vqshl.u8 d16, d16, d17 @ encoding: [0xb0,0x04,0x41,0xf3]
+ vqshl.u8 d16, d16, d17
+@ CHECK: vqshl.u16 d16, d16, d17 @ encoding: [0xb0,0x04,0x51,0xf3]
+ vqshl.u16 d16, d16, d17
+@ CHECK: vqshl.u32 d16, d16, d17 @ encoding: [0xb0,0x04,0x61,0xf3]
+ vqshl.u32 d16, d16, d17
+@ CHECK: vqshl.u64 d16, d16, d17 @ encoding: [0xb0,0x04,0x71,0xf3]
+ vqshl.u64 d16, d16, d17
+@ CHECK: vqshl.s8 q8, q8, q9 @ encoding: [0xf0,0x04,0x42,0xf2]
+ vqshl.s8 q8, q8, q9
+@ CHECK: vqshl.s16 q8, q8, q9 @ encoding: [0xf0,0x04,0x52,0xf2]
+ vqshl.s16 q8, q8, q9
+@ CHECK: vqshl.s32 q8, q8, q9 @ encoding: [0xf0,0x04,0x62,0xf2]
+ vqshl.s32 q8, q8, q9
+@ CHECK: vqshl.s64 q8, q8, q9 @ encoding: [0xf0,0x04,0x72,0xf2]
+ vqshl.s64 q8, q8, q9
+@ CHECK: vqshl.u8 q8, q8, q9 @ encoding: [0xf0,0x04,0x42,0xf3]
+ vqshl.u8 q8, q8, q9
+@ CHECK: vqshl.u16 q8, q8, q9 @ encoding: [0xf0,0x04,0x52,0xf3]
+ vqshl.u16 q8, q8, q9
+@ CHECK: vqshl.u32 q8, q8, q9 @ encoding: [0xf0,0x04,0x62,0xf3]
+ vqshl.u32 q8, q8, q9
+@ CHECK: vqshl.u64 q8, q8, q9 @ encoding: [0xf0,0x04,0x72,0xf3]
+ vqshl.u64 q8, q8, q9
+@ CHECK: vqshl.s8 d16, d16, #7 @ encoding: [0x30,0x07,0xcf,0xf2]
+ vqshl.s8 d16, d16, #7
+@ CHECK: vqshl.s16 d16, d16, #15 @ encoding: [0x30,0x07,0xdf,0xf2]
+ vqshl.s16 d16, d16, #15
+@ CHECK: vqshl.s32 d16, d16, #31 @ encoding: [0x30,0x07,0xff,0xf2]
+ vqshl.s32 d16, d16, #31
+@ CHECK: vqshl.s64 d16, d16, #63 @ encoding: [0xb0,0x07,0xff,0xf2]
+ vqshl.s64 d16, d16, #63
+@ CHECK: vqshl.u8 d16, d16, #7 @ encoding: [0x30,0x07,0xcf,0xf3]
+ vqshl.u8 d16, d16, #7
+@ CHECK: vqshl.u16 d16, d16, #15 @ encoding: [0x30,0x07,0xdf,0xf3]
+ vqshl.u16 d16, d16, #15
+@ CHECK: vqshl.u32 d16, d16, #31 @ encoding: [0x30,0x07,0xff,0xf3]
+ vqshl.u32 d16, d16, #31
+@ CHECK: vqshl.u64 d16, d16, #63 @ encoding: [0xb0,0x07,0xff,0xf3]
+ vqshl.u64 d16, d16, #63
+@ CHECK: vqshlu.s8 d16, d16, #7 @ encoding: [0x30,0x06,0xcf,0xf3]
+ vqshlu.s8 d16, d16, #7
+@ CHECK: vqshlu.s16 d16, d16, #15 @ encoding: [0x30,0x06,0xdf,0xf3]
+ vqshlu.s16 d16, d16, #15
+@ CHECK: vqshlu.s32 d16, d16, #31 @ encoding: [0x30,0x06,0xff,0xf3]
+ vqshlu.s32 d16, d16, #31
+@ CHECK: vqshlu.s64 d16, d16, #63 @ encoding: [0xb0,0x06,0xff,0xf3]
+ vqshlu.s64 d16, d16, #63
+@ CHECK: vqshl.s8 q8, q8, #7 @ encoding: [0x70,0x07,0xcf,0xf2]
+ vqshl.s8 q8, q8, #7
+@ CHECK: vqshl.s16 q8, q8, #15 @ encoding: [0x70,0x07,0xdf,0xf2]
+ vqshl.s16 q8, q8, #15
+@ CHECK: vqshl.s32 q8, q8, #31 @ encoding: [0x70,0x07,0xff,0xf2]
+ vqshl.s32 q8, q8, #31
+@ CHECK: vqshl.s64 q8, q8, #63 @ encoding: [0xf0,0x07,0xff,0xf2]
+ vqshl.s64 q8, q8, #63
+@ CHECK: vqshl.u8 q8, q8, #7 @ encoding: [0x70,0x07,0xcf,0xf3]
+ vqshl.u8 q8, q8, #7
+@ CHECK: vqshl.u16 q8, q8, #15 @ encoding: [0x70,0x07,0xdf,0xf3]
+ vqshl.u16 q8, q8, #15
+@ CHECK: vqshl.u32 q8, q8, #31 @ encoding: [0x70,0x07,0xff,0xf3]
+ vqshl.u32 q8, q8, #31
+@ CHECK: vqshl.u64 q8, q8, #63 @ encoding: [0xf0,0x07,0xff,0xf3]
+ vqshl.u64 q8, q8, #63
+@ CHECK: vqshlu.s8 q8, q8, #7 @ encoding: [0x70,0x06,0xcf,0xf3]
+ vqshlu.s8 q8, q8, #7
+@ CHECK: vqshlu.s16 q8, q8, #15 @ encoding: [0x70,0x06,0xdf,0xf3]
+ vqshlu.s16 q8, q8, #15
+@ CHECK: vqshlu.s32 q8, q8, #31 @ encoding: [0x70,0x06,0xff,0xf3]
+ vqshlu.s32 q8, q8, #31
+@ CHECK: vqshlu.s64 q8, q8, #63 @ encoding: [0xf0,0x06,0xff,0xf3]
+ vqshlu.s64 q8, q8, #63
+@ CHECK: vqrshl.s8 d16, d16, d17 @ encoding: [0xb0,0x05,0x41,0xf2]
+ vqrshl.s8 d16, d16, d17
+@ CHECK: vqrshl.s16 d16, d16, d17 @ encoding: [0xb0,0x05,0x51,0xf2]
+ vqrshl.s16 d16, d16, d17
+@ CHECK: vqrshl.s32 d16, d16, d17 @ encoding: [0xb0,0x05,0x61,0xf2]
+ vqrshl.s32 d16, d16, d17
+@ CHECK: vqrshl.s64 d16, d16, d17 @ encoding: [0xb0,0x05,0x71,0xf2]
+ vqrshl.s64 d16, d16, d17
+@ CHECK: vqrshl.u8 d16, d16, d17 @ encoding: [0xb0,0x05,0x41,0xf3]
+ vqrshl.u8 d16, d16, d17
+@ CHECK: vqrshl.u16 d16, d16, d17 @ encoding: [0xb0,0x05,0x51,0xf3]
+ vqrshl.u16 d16, d16, d17
+@ CHECK: vqrshl.u32 d16, d16, d17 @ encoding: [0xb0,0x05,0x61,0xf3]
+ vqrshl.u32 d16, d16, d17
+@ CHECK: vqrshl.u64 d16, d16, d17 @ encoding: [0xb0,0x05,0x71,0xf3]
+ vqrshl.u64 d16, d16, d17
+@ CHECK: vqrshl.s8 q8, q8, q9 @ encoding: [0xf0,0x05,0x42,0xf2]
+ vqrshl.s8 q8, q8, q9
+@ CHECK: vqrshl.s16 q8, q8, q9 @ encoding: [0xf0,0x05,0x52,0xf2]
+ vqrshl.s16 q8, q8, q9
+@ CHECK: vqrshl.s32 q8, q8, q9 @ encoding: [0xf0,0x05,0x62,0xf2]
+ vqrshl.s32 q8, q8, q9
+@ CHECK: vqrshl.s64 q8, q8, q9 @ encoding: [0xf0,0x05,0x72,0xf2]
+ vqrshl.s64 q8, q8, q9
+@ CHECK: vqrshl.u8 q8, q8, q9 @ encoding: [0xf0,0x05,0x42,0xf3]
+ vqrshl.u8 q8, q8, q9
+@ CHECK: vqrshl.u16 q8, q8, q9 @ encoding: [0xf0,0x05,0x52,0xf3]
+ vqrshl.u16 q8, q8, q9
+@ CHECK: vqrshl.u32 q8, q8, q9 @ encoding: [0xf0,0x05,0x62,0xf3]
+ vqrshl.u32 q8, q8, q9
+@ CHECK: vqrshl.u64 q8, q8, q9 @ encoding: [0xf0,0x05,0x72,0xf3]
+ vqrshl.u64 q8, q8, q9
+@ CHECK: vqshrn.s16 d16, q8, #8 @ encoding: [0x30,0x09,0xc8,0xf2]
+ vqshrn.s16 d16, q8, #8
+@ CHECK: vqshrn.s32 d16, q8, #16 @ encoding: [0x30,0x09,0xd0,0xf2]
+ vqshrn.s32 d16, q8, #16
+@ CHECK: vqshrn.s64 d16, q8, #32 @ encoding: [0x30,0x09,0xe0,0xf2]
+ vqshrn.s64 d16, q8, #32
+@ CHECK: vqshrn.u16 d16, q8, #8 @ encoding: [0x30,0x09,0xc8,0xf3]
+ vqshrn.u16 d16, q8, #8
+@ CHECK: vqshrn.u32 d16, q8, #16 @ encoding: [0x30,0x09,0xd0,0xf3]
+ vqshrn.u32 d16, q8, #16
+@ CHECK: vqshrn.u64 d16, q8, #32 @ encoding: [0x30,0x09,0xe0,0xf3]
+ vqshrn.u64 d16, q8, #32
+@ CHECK: vqshrun.s16 d16, q8, #8 @ encoding: [0x30,0x08,0xc8,0xf3]
+ vqshrun.s16 d16, q8, #8
+@ CHECK: vqshrun.s32 d16, q8, #16 @ encoding: [0x30,0x08,0xd0,0xf3]
+ vqshrun.s32 d16, q8, #16
+@ CHECK: vqshrun.s64 d16, q8, #32 @ encoding: [0x30,0x08,0xe0,0xf3]
+ vqshrun.s64 d16, q8, #32
+@ CHECK: vqrshrn.s16 d16, q8, #8 @ encoding: [0x70,0x09,0xc8,0xf2]
+ vqrshrn.s16 d16, q8, #8
+@ CHECK: vqrshrn.s32 d16, q8, #16 @ encoding: [0x70,0x09,0xd0,0xf2]
+ vqrshrn.s32 d16, q8, #16
+@ CHECK: vqrshrn.s64 d16, q8, #32 @ encoding: [0x70,0x09,0xe0,0xf2]
+ vqrshrn.s64 d16, q8, #32
+@ CHECK: vqrshrn.u16 d16, q8, #8 @ encoding: [0x70,0x09,0xc8,0xf3]
+ vqrshrn.u16 d16, q8, #8
+@ CHECK: vqrshrn.u32 d16, q8, #16 @ encoding: [0x70,0x09,0xd0,0xf3]
+ vqrshrn.u32 d16, q8, #16
+@ CHECK: vqrshrn.u64 d16, q8, #32 @ encoding: [0x70,0x09,0xe0,0xf3]
+ vqrshrn.u64 d16, q8, #32
+@ CHECK: vqrshrun.s16 d16, q8, #8 @ encoding: [0x70,0x08,0xc8,0xf3]
+ vqrshrun.s16 d16, q8, #8
+@ CHECK: vqrshrun.s32 d16, q8, #16 @ encoding: [0x70,0x08,0xd0,0xf3]
+ vqrshrun.s32 d16, q8, #16
+@ CHECK: vqrshrun.s64 d16, q8, #32 @ encoding: [0x70,0x08,0xe0,0xf3]
+ vqrshrun.s64 d16, q8, #32
diff --git a/test/MC/ARM/neon-shift-encoding.s b/test/MC/ARM/neon-shift-encoding.s
new file mode 100644
index 0000000..4b4fa08
--- /dev/null
+++ b/test/MC/ARM/neon-shift-encoding.s
@@ -0,0 +1,160 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vshl.u8 d16, d17, d16 @ encoding: [0xa1,0x04,0x40,0xf3]
+ vshl.u8 d16, d17, d16
+@ CHECK: vshl.u16 d16, d17, d16 @ encoding: [0xa1,0x04,0x50,0xf3]
+ vshl.u16 d16, d17, d16
+@ CHECK: vshl.u32 d16, d17, d16 @ encoding: [0xa1,0x04,0x60,0xf3]
+ vshl.u32 d16, d17, d16
+@ CHECK: vshl.u64 d16, d17, d16 @ encoding: [0xa1,0x04,0x70,0xf3]
+ vshl.u64 d16, d17, d16
+@ CHECK: vshl.i8 d16, d16, #7 @ encoding: [0x30,0x05,0xcf,0xf2]
+ vshl.i8 d16, d16, #7
+@ CHECK: vshl.i16 d16, d16, #15 @ encoding: [0x30,0x05,0xdf,0xf2]
+ vshl.i16 d16, d16, #15
+@ CHECK: vshl.i32 d16, d16, #31 @ encoding: [0x30,0x05,0xff,0xf2]
+ vshl.i32 d16, d16, #31
+@ CHECK: vshl.i64 d16, d16, #63 @ encoding: [0xb0,0x05,0xff,0xf2]
+ vshl.i64 d16, d16, #63
+@ CHECK: vshl.u8 q8, q9, q8 @ encoding: [0xe2,0x04,0x40,0xf3]
+ vshl.u8 q8, q9, q8
+@ CHECK: vshl.u16 q8, q9, q8 @ encoding: [0xe2,0x04,0x50,0xf3]
+ vshl.u16 q8, q9, q8
+@ CHECK: vshl.u32 q8, q9, q8 @ encoding: [0xe2,0x04,0x60,0xf3]
+ vshl.u32 q8, q9, q8
+@ CHECK: vshl.u64 q8, q9, q8 @ encoding: [0xe2,0x04,0x70,0xf3]
+ vshl.u64 q8, q9, q8
+@ CHECK: vshl.i8 q8, q8, #7 @ encoding: [0x70,0x05,0xcf,0xf2]
+ vshl.i8 q8, q8, #7
+@ CHECK: vshl.i16 q8, q8, #15 @ encoding: [0x70,0x05,0xdf,0xf2]
+ vshl.i16 q8, q8, #15
+@ CHECK: vshl.i32 q8, q8, #31 @ encoding: [0x70,0x05,0xff,0xf2]
+ vshl.i32 q8, q8, #31
+@ CHECK: vshl.i64 q8, q8, #63 @ encoding: [0xf0,0x05,0xff,0xf2]
+ vshl.i64 q8, q8, #63
+@ CHECK: vshr.u8 d16, d16, #8 @ encoding: [0x30,0x00,0xc8,0xf3]
+ vshr.u8 d16, d16, #8
+@ CHECK: vshr.u16 d16, d16, #16 @ encoding: [0x30,0x00,0xd0,0xf3]
+ vshr.u16 d16, d16, #16
+@ CHECK: vshr.u32 d16, d16, #32 @ encoding: [0x30,0x00,0xe0,0xf3]
+ vshr.u32 d16, d16, #32
+@ CHECK: vshr.u64 d16, d16, #64 @ encoding: [0xb0,0x00,0xc0,0xf3]
+ vshr.u64 d16, d16, #64
+@ CHECK: vshr.u8 q8, q8, #8 @ encoding: [0x70,0x00,0xc8,0xf3]
+ vshr.u8 q8, q8, #8
+@ CHECK: vshr.u16 q8, q8, #16 @ encoding: [0x70,0x00,0xd0,0xf3]
+ vshr.u16 q8, q8, #16
+@ CHECK: vshr.u32 q8, q8, #32 @ encoding: [0x70,0x00,0xe0,0xf3]
+ vshr.u32 q8, q8, #32
+@ CHECK: vshr.u64 q8, q8, #64 @ encoding: [0xf0,0x00,0xc0,0xf3]
+ vshr.u64 q8, q8, #64
+@ CHECK: vshr.s8 d16, d16, #8 @ encoding: [0x30,0x00,0xc8,0xf2]
+ vshr.s8 d16, d16, #8
+@ CHECK: vshr.s16 d16, d16, #16 @ encoding: [0x30,0x00,0xd0,0xf2]
+ vshr.s16 d16, d16, #16
+@ CHECK: vshr.s32 d16, d16, #32 @ encoding: [0x30,0x00,0xe0,0xf2]
+ vshr.s32 d16, d16, #32
+@ CHECK: vshr.s64 d16, d16, #64 @ encoding: [0xb0,0x00,0xc0,0xf2]
+ vshr.s64 d16, d16, #64
+@ CHECK: vshr.s8 q8, q8, #8 @ encoding: [0x70,0x00,0xc8,0xf2]
+ vshr.s8 q8, q8, #8
+@ CHECK: vshr.s16 q8, q8, #16 @ encoding: [0x70,0x00,0xd0,0xf2]
+ vshr.s16 q8, q8, #16
+@ CHECK: vshr.s32 q8, q8, #32 @ encoding: [0x70,0x00,0xe0,0xf2
+ vshr.s32 q8, q8, #32
+@ CHECK: vshr.s64 q8, q8, #64 @ encoding: [0xf0,0x00,0xc0,0xf2]
+ vshr.s64 q8, q8, #64
+@ CHECK: vshll.s8 q8, d16, #7 @ encoding: [0x30,0x0a,0xcf,0xf2]
+ vshll.s8 q8, d16, #7
+@ CHECK: vshll.s16 q8, d16, #15 @ encoding: [0x30,0x0a,0xdf,0xf2]
+ vshll.s16 q8, d16, #15
+@ CHECK: vshll.s32 q8, d16, #31 @ encoding: [0x30,0x0a,0xff,0xf2]
+ vshll.s32 q8, d16, #31
+@ CHECK: vshll.u8 q8, d16, #7 @ encoding: [0x30,0x0a,0xcf,0xf3]
+ vshll.u8 q8, d16, #7
+@ CHECK: vshll.u16 q8, d16, #15 @ encoding: [0x30,0x0a,0xdf,0xf3]
+ vshll.u16 q8, d16, #15
+@ CHECK: vshll.u32 q8, d16, #31 @ encoding: [0x30,0x0a,0xff,0xf3]
+ vshll.u32 q8, d16, #31
+@ CHECK: vshll.i8 q8, d16, #8 @ encoding: [0x20,0x03,0xf2,0xf3]
+ vshll.i8 q8, d16, #8
+@ CHECK: vshll.i16 q8, d16, #16 @ encoding: [0x20,0x03,0xf6,0xf3]
+ vshll.i16 q8, d16, #16
+@ CHECK: vshll.i32 q8, d16, #32 @ encoding: [0x20,0x03,0xfa,0xf3]
+ vshll.i32 q8, d16, #32
+@ CHECK: vshrn.i16 d16, q8, #8 @ encoding: [0x30,0x08,0xc8,0xf2]
+ vshrn.i16 d16, q8, #8
+@ CHECK: vshrn.i32 d16, q8, #16 @ encoding: [0x30,0x08,0xd0,0xf2]
+ vshrn.i32 d16, q8, #16
+@ CHECK: vshrn.i64 d16, q8, #32 @ encoding: [0x30,0x08,0xe0,0xf2]
+ vshrn.i64 d16, q8, #32
+@ CHECK: vrshl.s8 d16, d17, d16 @ encoding: [0xa1,0x05,0x40,0xf2]
+ vrshl.s8 d16, d17, d16
+@ CHECK: vrshl.s16 d16, d17, d16 @ encoding: [0xa1,0x05,0x50,0xf2]
+ vrshl.s16 d16, d17, d16
+@ CHECK: vrshl.s32 d16, d17, d16 @ encoding: [0xa1,0x05,0x60,0xf2]
+ vrshl.s32 d16, d17, d16
+@ CHECK: vrshl.s64 d16, d17, d16 @ encoding: [0xa1,0x05,0x70,0
+ vrshl.s64 d16, d17, d16
+@ CHECK: vrshl.u8 d16, d17, d16 @ encoding: [0xa1,0x05,0x40,0xf3]
+ vrshl.u8 d16, d17, d16
+@ CHECK: vrshl.u16 d16, d17, d16 @ encoding: [0xa1,0x05,0x50,0xf3]
+ vrshl.u16 d16, d17, d16
+@ CHECK: vrshl.u32 d16, d17, d16 @ encoding: [0xa1,0x05,0x60,0xf3]
+ vrshl.u32 d16, d17, d16
+@ CHECK: vrshl.u64 d16, d17, d16 @ encoding: [0xa1,0x05,0x70,0xf3]
+ vrshl.u64 d16, d17, d16
+@ CHECK: vrshl.s8 q8, q9, q8 @ encoding: [0xe2,0x05,0x40,0xf2]
+ vrshl.s8 q8, q9, q8
+@ CHECK: vrshl.s16 q8, q9, q8 @ encoding: [0xe2,0x05,0x50,0xf2]
+ vrshl.s16 q8, q9, q8
+@ CHECK: vrshl.s32 q8, q9, q8 @ encoding: [0xe2,0x05,0x60,0xf2]
+ vrshl.s32 q8, q9, q8
+@ CHECK: vrshl.s64 q8, q9, q8 @ encoding: [0xe2,0x05,0x70,0xf2]
+ vrshl.s64 q8, q9, q8
+@ CHECK: vrshl.u8 q8, q9, q8 @ encoding: [0xe2,0x05,0x40,0xf3]
+ vrshl.u8 q8, q9, q8
+@ CHECK: vrshl.u16 q8, q9, q8 @ encoding: [0xe2,0x05,0x50,0xf3]
+ vrshl.u16 q8, q9, q8
+@ CHECK: vrshl.u32 q8, q9, q8 @ encoding: [0xe2,0x05,0x60,0xf3]
+ vrshl.u32 q8, q9, q8
+@ CHECK: vrshl.u64 q8, q9, q8 @ encoding: [0xe2,0x05,0x70,0xf3]
+ vrshl.u64 q8, q9, q8
+@ CHECK: vrshr.s8 d16, d16, #8 @ encoding: [0x30,0x02,0xc8,0xf2]
+ vrshr.s8 d16, d16, #8
+@ CHECK: vrshr.s16 d16, d16, #16 @ encoding: [0x30,0x02,0xd0,0xf2]
+ vrshr.s16 d16, d16, #16
+@ CHECK: vrshr.s32 d16, d16, #32 @ encoding: [0x30,0x02,0xe0,0xf2]
+ vrshr.s32 d16, d16, #32
+@ CHECK: vrshr.s64 d16, d16, #64 @ encoding: [0xb0,0x02,0xc0,0xf2]
+ vrshr.s64 d16, d16, #64
+@ CHECK: vrshr.u8 d16, d16, #8 @ encoding: [0x30,0x02,0xc8,0xf3]
+ vrshr.u8 d16, d16, #8
+@ CHECK: vrshr.u16 d16, d16, #16 @ encoding: [0x30,0x02,0xd0,0xf3]
+ vrshr.u16 d16, d16, #16
+@ CHECK: vrshr.u32 d16, d16, #32 @ encoding: [0x30,0x02,0xe0,0xf3]
+ vrshr.u32 d16, d16, #32
+@ CHECK: vrshr.u64 d16, d16, #64 @ encoding: [0xb0,0x02,0xc0,0xf3]
+ vrshr.u64 d16, d16, #64
+@ CHECK: vrshr.s8 q8, q8, #8 @ encoding: [0x70,0x02,0xc8,0xf2]
+ vrshr.s8 q8, q8, #8
+@ CHECK: vrshr.s16 q8, q8, #16 @ encoding: [0x70,0x02,0xd0,0xf2]
+ vrshr.s16 q8, q8, #16
+@ CHECK: vrshr.s32 q8, q8, #32 @ encoding: [0x70,0x02,0xe0,0xf2]
+ vrshr.s32 q8, q8, #32
+@ CHECK: vrshr.s64 q8, q8, #64 @ encoding: [0xf0,0x02,0xc0,0xf2]
+ vrshr.s64 q8, q8, #64
+@ CHECK: vrshr.u8 q8, q8, #8 @ encoding: [0x70,0x02,0xc8,0xf3]
+ vrshr.u8 q8, q8, #8
+@ CHECK: vrshr.u16 q8, q8, #16 @ encoding: [0x70,0x02,0xd0,0xf3]
+ vrshr.u16 q8, q8, #16
+@ CHECK: vrshr.u32 q8, q8, #32 @ encoding: [0x70,0x02,0xe0,0xf3]
+ vrshr.u32 q8, q8, #32
+@ CHECK: vrshr.u64 q8, q8, #64 @ encoding: [0xf0,0x02,0xc0,0xf3]
+ vrshr.u64 q8, q8, #64
+@ CHECK: vrshrn.i16 d16, q8, #8 @ encoding: [0x70,0x08,0xc8,0xf2]
+ vrshrn.i16 d16, q8, #8
+@ CHECK: vrshrn.i32 d16, q8, #16 @ encoding: [0x70,0x08,0xd0,0xf2]
+ vrshrn.i32 d16, q8, #16
+@ CHECK: vrshrn.i64 d16, q8, #32 @ encoding: [0x70,0x08,0xe0,0xf2]
+ vrshrn.i64 d16, q8, #32
diff --git a/test/MC/ARM/neon-shiftaccum-encoding.s b/test/MC/ARM/neon-shiftaccum-encoding.s
new file mode 100644
index 0000000..0dc630d
--- /dev/null
+++ b/test/MC/ARM/neon-shiftaccum-encoding.s
@@ -0,0 +1,98 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vsra.s8 d17, d16, #8 @ encoding: [0x30,0x11,0xc8,0xf2]
+ vsra.s8 d17, d16, #8
+@ CHECK: vsra.s16 d17, d16, #16 @ encoding: [0x30,0x11,0xd0,0xf2]
+ vsra.s16 d17, d16, #16
+@ CHECK: vsra.s32 d17, d16, #32 @ encoding: [0x30,0x11,0xe0,0xf2]
+ vsra.s32 d17, d16, #32
+@ CHECK: vsra.s64 d17, d16, #64 @ encoding: [0xb0,0x11,0xc0,0xf2]
+ vsra.s64 d17, d16, #64
+@ CHECK: vsra.s8 q8, q9, #8 @ encoding: [0x72,0x01,0xc8,0xf2]
+ vsra.s8 q8, q9, #8
+@ CHECK: vsra.s16 q8, q9, #16 @ encoding: [0x72,0x01,0xd0,0xf2]
+ vsra.s16 q8, q9, #16
+@ CHECK: vsra.s32 q8, q9, #32 @ encoding: [0x72,0x01,0xe0,0xf2]
+ vsra.s32 q8, q9, #32
+@ CHECK: vsra.s64 q8, q9, #64 @ encoding: [0xf2,0x01,0xc0,0xf2]
+ vsra.s64 q8, q9, #64
+@ CHECK: vsra.u8 d17, d16, #8 @ encoding: [0x30,0x11,0xc8,0xf3]
+ vsra.u8 d17, d16, #8
+@ CHECK: vsra.u16 d17, d16, #16 @ encoding: [0x30,0x11,0xd0,0xf3]
+ vsra.u16 d17, d16, #16
+@ CHECK: vsra.u32 d17, d16, #32 @ encoding: [0x30,0x11,0xe0,0xf3]
+ vsra.u32 d17, d16, #32
+@ CHECK: vsra.u64 d17, d16, #64 @ encoding: [0xb0,0x11,0xc0,0xf3]
+ vsra.u64 d17, d16, #64
+@ CHECK: vsra.u8 q8, q9, #8 @ encoding: [0x72,0x01,0xc8,0xf3]
+ vsra.u8 q8, q9, #8
+@ CHECK: vsra.u16 q8, q9, #16 @ encoding: [0x72,0x01,0xd0,0xf3]
+ vsra.u16 q8, q9, #16
+@ CHECK: vsra.u32 q8, q9, #32 @ encoding: [0x72,0x01,0xe0,0xf3]
+ vsra.u32 q8, q9, #32
+@ CHECK: vsra.u64 q8, q9, #64 @ encoding: [0xf2,0x01,0xc0,0xf3]
+ vsra.u64 q8, q9, #64
+@ CHECK: vrsra.s8 d17, d16, #8 @ encoding: [0x30,0x13,0xc8,0xf2]
+ vrsra.s8 d17, d16, #8
+@ CHECK: vrsra.s16 d17, d16, #16 @ encoding: [0x30,0x13,0xd0,0xf2]
+ vrsra.s16 d17, d16, #16
+@ CHECK: vrsra.s32 d17, d16, #32 @ encoding: [0x30,0x13,0xe0,0xf2]
+ vrsra.s32 d17, d16, #32
+@ CHECK: vrsra.s64 d17, d16, #64 @ encoding: [0xb0,0x13,0xc0,0xf2]
+ vrsra.s64 d17, d16, #64
+@ CHECK: vrsra.u8 d17, d16, #8 @ encoding: [0x30,0x13,0xc8,0xf3]
+ vrsra.u8 d17, d16, #8
+@ CHECK: vrsra.u16 d17, d16, #16 @ encoding: [0x30,0x13,0xd0,0xf3]
+ vrsra.u16 d17, d16, #16
+@ CHECK: vrsra.u32 d17, d16, #32 @ encoding: [0x30,0x13,0xe0,0xf3]
+ vrsra.u32 d17, d16, #32
+@ CHECK: vrsra.u64 d17, d16, #64 @ encoding: [0xb0,0x13,0xc0,0xf3]
+ vrsra.u64 d17, d16, #64
+@ CHECK: vrsra.s8 q8, q9, #8 @ encoding: [0x72,0x03,0xc8,0xf2]
+ vrsra.s8 q8, q9, #8
+@ CHECK: vrsra.s16 q8, q9, #16 @ encoding: [0x72,0x03,0xd0,0xf2]
+ vrsra.s16 q8, q9, #16
+@ CHECK: vrsra.s32 q8, q9, #32 @ encoding: [0x72,0x03,0xe0,0xf2]
+ vrsra.s32 q8, q9, #32
+@ CHECK: vrsra.s64 q8, q9, #64 @ encoding: [0xf2,0x03,0xc0,0xf2]
+ vrsra.s64 q8, q9, #64
+@ CHECK: vrsra.u8 q8, q9, #8 @ encoding: [0x72,0x03,0xc8,0xf3]
+ vrsra.u8 q8, q9, #8
+@ CHECK: vrsra.u16 q8, q9, #16 @ encoding: [0x72,0x03,0xd0,0xf3]
+ vrsra.u16 q8, q9, #16
+@ CHECK: vrsra.u32 q8, q9, #32 @ encoding: [0x72,0x03,0xe0,0xf3]
+ vrsra.u32 q8, q9, #32
+@ CHECK: vrsra.u64 q8, q9, #64 @ encoding: [0xf2,0x03,0xc0,0xf3]
+ vrsra.u64 q8, q9, #64
+@ CHECK: vsli.8 d17, d16, #7 @ encoding: [0x30,0x15,0xcf,0xf3]
+ vsli.8 d17, d16, #7
+@ CHECK: vsli.16 d17, d16, #15 @ encoding: [0x30,0x15,0xdf,0xf3]
+ vsli.16 d17, d16, #15
+@ CHECK: vsli.32 d17, d16, #31 @ encoding: [0x30,0x15,0xff,0xf3]
+ vsli.32 d17, d16, #31
+@ CHECK: vsli.64 d17, d16, #63 @ encoding: [0xb0,0x15,0xff,0xf3]
+ vsli.64 d17, d16, #63
+@ CHECK: vsli.8 q9, q8, #7 @ encoding: [0x70,0x25,0xcf,0xf3]
+ vsli.8 q9, q8, #7
+@ CHECK: vsli.16 q9, q8, #15 @ encoding: [0x70,0x25,0xdf,0xf3]
+ vsli.16 q9, q8, #15
+@ CHECK: vsli.32 q9, q8, #31 @ encoding: [0x70,0x25,0xff,0xf3]
+ vsli.32 q9, q8, #31
+@ CHECK: vsli.64 q9, q8, #63 @ encoding: [0xf0,0x25,0xff,0xf3]
+ vsli.64 q9, q8, #63
+@ CHECK: vsri.8 d17, d16, #8 @ encoding: [0x30,0x14,0xc8,0xf3]
+ vsri.8 d17, d16, #8
+@ CHECK: vsri.16 d17, d16, #16 @ encoding: [0x30,0x14,0xd0,0xf3]
+ vsri.16 d17, d16, #16
+@ CHECK: vsri.32 d17, d16, #32 @ encoding: [0x30,0x14,0xe0,0xf3]
+ vsri.32 d17, d16, #32
+@ CHECK: vsri.64 d17, d16, #64 @ encoding: [0xb0,0x14,0xc0,0xf3]
+ vsri.64 d17, d16, #64
+@ CHECK: vsri.8 q9, q8, #8 @ encoding: [0x70,0x24,0xc8,0xf3]
+ vsri.8 q9, q8, #8
+@ CHECK: vsri.16 q9, q8, #16 @ encoding: [0x70,0x24,0xd0,0xf3]
+ vsri.16 q9, q8, #16
+@ CHECK: vsri.32 q9, q8, #32 @ encoding: [0x70,0x24,0xe0,0xf3]
+ vsri.32 q9, q8, #32
+@ CHECK: vsri.64 q9, q8, #64 @ encoding: [0xf0,0x24,0xc0,0xf3]
+ vsri.64 q9, q8, #64
diff --git a/test/MC/ARM/neon-shuffle-encoding.s b/test/MC/ARM/neon-shuffle-encoding.s
new file mode 100644
index 0000000..ce7eb66
--- /dev/null
+++ b/test/MC/ARM/neon-shuffle-encoding.s
@@ -0,0 +1,46 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vext.8 d16, d17, d16, #3 @ encoding: [0xa0,0x03,0xf1,0xf2]
+ vext.8 d16, d17, d16, #3
+@ CHECK: vext.8 d16, d17, d16, #5 @ encoding: [0xa0,0x05,0xf1,0xf2]
+ vext.8 d16, d17, d16, #5
+@ CHECK: vext.8 q8, q9, q8, #3 @ encoding: [0xe0,0x03,0xf2,0xf2]
+ vext.8 q8, q9, q8, #3
+@ CHECK: vext.8 q8, q9, q8, #7 @ encoding: [0xe0,0x07,0xf2,0xf2]
+ vext.8 q8, q9, q8, #7
+@ CHECK: vext.16 d16, d17, d16, #3 @ encoding: [0xa0,0x06,0xf1,0xf2]
+ vext.16 d16, d17, d16, #3
+@ CHECK: vext.32 q8, q9, q8, #3 @ encoding: [0xe0,0x0c,0xf2,0xf2]
+ vext.32 q8, q9, q8, #3
+@ CHECK: vtrn.8 d17, d16 @ encoding: [0xa0,0x10,0xf2,0xf3]
+ vtrn.8 d17, d16
+@ CHECK: vtrn.16 d17, d16 @ encoding: [0xa0,0x10,0xf6,0xf3]
+ vtrn.16 d17, d16
+@ CHECK: vtrn.32 d17, d16 @ encoding: [0xa0,0x10,0xfa,0xf3]
+ vtrn.32 d17, d16
+@ CHECK: vtrn.8 q9, q8 @ encoding: [0xe0,0x20,0xf2,0xf3]
+ vtrn.8 q9, q8
+@ CHECK: vtrn.16 q9, q8 @ encoding: [0xe0,0x20,0xf6,0xf3]
+ vtrn.16 q9, q8
+@ CHECK: vtrn.32 q9, q8 @ encoding: [0xe0,0x20,0xfa,0xf3]
+ vtrn.32 q9, q8
+@ CHECK: vuzp.8 d17, d16 @ encoding: [0x20,0x11,0xf2,0xf3]
+ vuzp.8 d17, d16
+@ CHECK: vuzp.16 d17, d16 @ encoding: [0x20,0x11,0xf6,0xf3]
+ vuzp.16 d17, d16
+@ CHECK: vuzp.8 q9, q8 @ encoding: [0x60,0x21,0xf2,0xf3]
+ vuzp.8 q9, q8
+@ CHECK: vuzp.16 q9, q8 @ encoding: [0x60,0x21,0xf6,0xf3]
+ vuzp.16 q9, q8
+@ CHECK: vuzp.32 q9, q8 @ encoding: [0x60,0x21,0xfa,0xf3]
+ vuzp.32 q9, q8
+@ CHECK: vzip.8 d17, d16 @ encoding: [0xa0,0x11,0xf2,0xf3]
+ vzip.8 d17, d16
+@ CHECK: vzip.16 d17, d16 @ encoding: [0xa0,0x11,0xf6,0xf3]
+ vzip.16 d17, d16
+@ CHECK: vzip.8 q9, q8 @ encoding: [0xe0,0x21,0xf2,0xf3]
+ vzip.8 q9, q8
+@ CHECK: vzip.16 q9, q8 @ encoding: [0xe0,0x21,0xf6,0xf3]
+ vzip.16 q9, q8
+@ CHECK: vzip.32 q9, q8 @ encoding: [0xe0,0x21,0xfa,0xf3]
+ vzip.32 q9, q8
diff --git a/test/MC/ARM/neon-sub-encoding.s b/test/MC/ARM/neon-sub-encoding.s
new file mode 100644
index 0000000..241a01f
--- /dev/null
+++ b/test/MC/ARM/neon-sub-encoding.s
@@ -0,0 +1,108 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vsub.i8 d16, d17, d16 @ encoding: [0xa0,0x08,0x41,0xf3]
+ vsub.i8 d16, d17, d16
+@ CHECK: vsub.i16 d16, d17, d16 @ encoding: [0xa0,0x08,0x51,0xf3]
+ vsub.i16 d16, d17, d16
+@ CHECK: vsub.i32 d16, d17, d16 @ encoding: [0xa0,0x08,0x61,0xf3]
+ vsub.i32 d16, d17, d16
+@ CHECK: vsub.i64 d16, d17, d16 @ encoding: [0xa0,0x08,0x71,0xf3]
+ vsub.i64 d16, d17, d16
+@ CHECK: vsub.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x60,0xf2]
+ vsub.f32 d16, d16, d17
+@ CHECK: vsub.i8 q8, q8, q9 @ encoding: [0xe2,0x08,0x40,0xf3]
+ vsub.i8 q8, q8, q9
+@ CHECK: vsub.i16 q8, q8, q9 @ encoding: [0xe2,0x08,0x50,0xf3]
+ vsub.i16 q8, q8, q9
+@ CHECK: vsub.i32 q8, q8, q9 @ encoding: [0xe2,0x08,0x60,0xf3]
+ vsub.i32 q8, q8, q9
+@ CHECK: vsub.i64 q8, q8, q9 @ encoding: [0xe2,0x08,0x70,0xf3]
+ vsub.i64 q8, q8, q9
+@ CHECK: vsub.f32 q8, q8, q9 @ encoding: [0xe2,0x0d,0x60,0xf2]
+ vsub.f32 q8, q8, q9
+@ CHECK: vsubl.s8 q8, d17, d16 @ encoding: [0xa0,0x02,0xc1,0xf2]
+ vsubl.s8 q8, d17, d16
+@ CHECK: vsubl.s16 q8, d17, d16 @ encoding: [0xa0,0x02,0xd1,0xf2]
+ vsubl.s16 q8, d17, d16
+@ CHECK: vsubl.s32 q8, d17, d16 @ encoding: [0xa0,0x02,0xe1,0xf2]
+ vsubl.s32 q8, d17, d16
+@ CHECK: vsubl.u8 q8, d17, d16 @ encoding: [0xa0,0x02,0xc1,0xf3]
+ vsubl.u8 q8, d17, d16
+@ CHECK: vsubl.u16 q8, d17, d16 @ encoding: [0xa0,0x02,0xd1,0xf3]
+ vsubl.u16 q8, d17, d16
+@ CHECK: vsubl.u32 q8, d17, d16 @ encoding: [0xa0,0x02,0xe1,0xf3]
+ vsubl.u32 q8, d17, d16
+@ CHECK: vsubw.s8 q8, q8, d18 @ encoding: [0xa2,0x03,0xc0,0xf2]
+ vsubw.s8 q8, q8, d18
+@ CHECK: vsubw.s16 q8, q8, d18 @ encoding: [0xa2,0x03,0xd0,0xf2]
+ vsubw.s16 q8, q8, d18
+@ CHECK: vsubw.s32 q8, q8, d18 @ encoding: [0xa2,0x03,0xe0,0xf2]
+ vsubw.s32 q8, q8, d18
+@ CHECK: vsubw.u8 q8, q8, d18 @ encoding: [0xa2,0x03,0xc0,0xf3]
+ vsubw.u8 q8, q8, d18
+@ CHECK: vsubw.u16 q8, q8, d18 @ encoding: [0xa2,0x03,0xd0,0xf3]
+ vsubw.u16 q8, q8, d18
+@ CHECK: vsubw.u32 q8, q8, d18 @ encoding: [0xa2,0x03,0xe0,0xf3]
+ vsubw.u32 q8, q8, d18
+@ CHECK: vhsub.s8 d16, d16, d17 @ encoding: [0xa1,0x02,0x40,0xf2]
+ vhsub.s8 d16, d16, d17
+@ CHECK: vhsub.s16 d16, d16, d17 @ encoding: [0xa1,0x02,0x50,0xf2]
+ vhsub.s16 d16, d16, d17
+@ CHECK: vhsub.s32 d16, d16, d17 @ encoding: [0xa1,0x02,0x60,0xf2]
+ vhsub.s32 d16, d16, d17
+@ CHECK: vhsub.u8 d16, d16, d17 @ encoding: [0xa1,0x02,0x40,0xf3]
+ vhsub.u8 d16, d16, d17
+@ CHECK: vhsub.u16 d16, d16, d17 @ encoding: [0xa1,0x02,0x50,0xf3]
+ vhsub.u16 d16, d16, d17
+@ CHECK: vhsub.u32 d16, d16, d17 @ encoding: [0xa1,0x02,0x60,0xf3]
+ vhsub.u32 d16, d16, d17
+@ CHECK: vhsub.s8 q8, q8, q9 @ encoding: [0xe2,0x02,0x40,0xf2]
+ vhsub.s8 q8, q8, q9
+@ CHECK: vhsub.s16 q8, q8, q9 @ encoding: [0xe2,0x02,0x50,0xf2]
+ vhsub.s16 q8, q8, q9
+@ CHECK: vhsub.s32 q8, q8, q9 @ encoding: [0xe2,0x02,0x60,0xf2]
+ vhsub.s32 q8, q8, q9
+@ CHECK: vqsub.s8 d16, d16, d17 @ encoding: [0xb1,0x02,0x40,0xf2]
+ vqsub.s8 d16, d16, d17
+@ CHECK: vqsub.s16 d16, d16, d17 @ encoding: [0xb1,0x02,0x50,0xf2]
+ vqsub.s16 d16, d16, d17
+@ CHECK: vqsub.s32 d16, d16, d17 @ encoding: [0xb1,0x02,0x60,0xf2]
+ vqsub.s32 d16, d16, d17
+@ CHECK: vqsub.s64 d16, d16, d17 @ encoding: [0xb1,0x02,0x70,0xf2]
+ vqsub.s64 d16, d16, d17
+@ CHECK: vqsub.u8 d16, d16, d17 @ encoding: [0xb1,0x02,0x40,0xf3]
+ vqsub.u8 d16, d16, d17
+@ CHECK: vqsub.u16 d16, d16, d17 @ encoding: [0xb1,0x02,0x50,0xf3]
+ vqsub.u16 d16, d16, d17
+@ CHECK: vqsub.u32 d16, d16, d17 @ encoding: [0xb1,0x02,0x60,0xf3]
+ vqsub.u32 d16, d16, d17
+@ CHECK: vqsub.u64 d16, d16, d17 @ encoding: [0xb1,0x02,0x70,0xf3]
+ vqsub.u64 d16, d16, d17
+@ CHECK: vqsub.s8 q8, q8, q9 @ encoding: [0xf2,0x02,0x40,0xf2]
+ vqsub.s8 q8, q8, q9
+@ CHECK: vqsub.s16 q8, q8, q9 @ encoding: [0xf2,0x02,0x50,0xf2]
+ vqsub.s16 q8, q8, q9
+@ CHECK: vqsub.s32 q8, q8, q9 @ encoding: [0xf2,0x02,0x60,0xf2]
+ vqsub.s32 q8, q8, q9
+@ CHECK: vqsub.s64 q8, q8, q9 @ encoding: [0xf2,0x02,0x70,0xf2]
+ vqsub.s64 q8, q8, q9
+@ CHECK: vqsub.u8 q8, q8, q9 @ encoding: [0xf2,0x02,0x40,0xf3]
+ vqsub.u8 q8, q8, q9
+@ CHECK: vqsub.u16 q8, q8, q9 @ encoding: [0xf2,0x02,0x50,0xf3]
+ vqsub.u16 q8, q8, q9
+@ CHECK: vqsub.u32 q8, q8, q9 @ encoding: [0xf2,0x02,0x60,0xf3]
+ vqsub.u32 q8, q8, q9
+@ CHECK: vqsub.u64 q8, q8, q9 @ encoding: [0xf2,0x02,0x70,0xf3]
+ vqsub.u64 q8, q8, q9
+@ CHECK: vsubhn.i16 d16, q8, q9 @ encoding: [0xa2,0x06,0xc0,0xf2]
+ vsubhn.i16 d16, q8, q9
+@ CHECK: vsubhn.i32 d16, q8, q9 @ encoding: [0xa2,0x06,0xd0,0xf2]
+ vsubhn.i32 d16, q8, q9
+@ CHECK: vsubhn.i64 d16, q8, q9 @ encoding: [0xa2,0x06,0xe0,0xf2]
+ vsubhn.i64 d16, q8, q9
+@ CHECK: vrsubhn.i16 d16, q8, q9 @ encoding: [0xa2,0x06,0xc0,0xf3]
+ vrsubhn.i16 d16, q8, q9
+@ CHECK: vrsubhn.i32 d16, q8, q9 @ encoding: [0xa2,0x06,0xd0,0xf3]
+ vrsubhn.i32 d16, q8, q9
+@ CHECK: vrsubhn.i64 d16, q8, q9 @ encoding: [0xa2,0x06,0xe0,0xf3]
+ vrsubhn.i64 d16, q8, q9
diff --git a/test/MC/ARM/neon-table-encoding.s b/test/MC/ARM/neon-table-encoding.s
new file mode 100644
index 0000000..7bf47c7
--- /dev/null
+++ b/test/MC/ARM/neon-table-encoding.s
@@ -0,0 +1,19 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vtbl.8 d16, {d17}, d16 @ encoding: [0xa0,0x08,0xf1,0xf3]
+ vtbl.8 d16, {d17}, d16
+@ CHECK: vtbl.8 d16, {d16, d17}, d18 @ encoding: [0xa2,0x09,0xf0,0xf3]
+ vtbl.8 d16, {d16, d17}, d18
+@ CHECK: vtbl.8 d16, {d16, d17, d18}, d20 @ encoding: [0xa4,0x0a,0xf0,0xf3]
+ vtbl.8 d16, {d16, d17, d18}, d20
+@ CHECK: vtbl.8 d16, {d16, d17, d18, d19}, d20 @ encoding: [0xa4,0x0b,0xf0,0xf3]
+ vtbl.8 d16, {d16, d17, d18, d19}, d20
+@ CHECK: vtbx.8 d18, {d16}, d17 @ encoding: [0xe1,0x28,0xf0,0xf3]
+ vtbx.8 d18, {d16}, d17
+@ CHECK: vtbx.8 d19, {d16, d17}, d18 @ encoding: [0xe2,0x39,0xf0,0xf3]
+ vtbx.8 d19, {d16, d17}, d18
+@ CHECK: vtbx.8 d20, {d16, d17, d18}, d21 @ encoding: [0xe5,0x4a,0xf0,0xf3]
+ vtbx.8 d20, {d16, d17, d18}, d21
+@ CHECK: vtbx.8 d20, {d16, d17, d18, d19}, d21 @ encoding: [0xe5,0x4b,0xf0,0xf3]
+ vtbx.8 d20, {d16, d17, d18, d19}, d21
diff --git a/test/MC/ARM/neon-vld-encoding.s b/test/MC/ARM/neon-vld-encoding.s
new file mode 100644
index 0000000..be55f47
--- /dev/null
+++ b/test/MC/ARM/neon-vld-encoding.s
@@ -0,0 +1,110 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vld1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x60,0xf4]
+ vld1.8 {d16}, [r0, :64]
+@ CHECK: vld1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x60,0xf4]
+ vld1.16 {d16}, [r0]
+@ CHECK: vld1.32 {d16}, [r0] @ encoding: [0x8f,0x07,0x60,0xf4]
+ vld1.32 {d16}, [r0]
+@ CHECK: vld1.64 {d16}, [r0] @ encoding: [0xcf,0x07,0x60,0xf4]
+ vld1.64 {d16}, [r0]
+@ CHECK: vld1.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x0a,0x60,0xf4]
+ vld1.8 {d16, d17}, [r0, :64]
+@ CHECK: vld1.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x0a,0x60,0xf4]
+ vld1.16 {d16, d17}, [r0, :128]
+@ CHECK: vld1.32 {d16, d17}, [r0] @ encoding: [0x8f,0x0a,0x60,0xf4]
+ vld1.32 {d16, d17}, [r0]
+@ CHECK: vld1.64 {d16, d17}, [r0] @ encoding: [0xcf,0x0a,0x60,0xf4]
+ vld1.64 {d16, d17}, [r0]
+
+@ CHECK: vld2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x60,0xf4]
+ vld2.8 {d16, d17}, [r0, :64]
+@ CHECK: vld2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x60,0xf4]
+ vld2.16 {d16, d17}, [r0, :128]
+@ CHECK: vld2.32 {d16, d17}, [r0] @ encoding: [0x8f,0x08,0x60,0xf4]
+ vld2.32 {d16, d17}, [r0]
+@ CHECK: vld2.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x60,0xf4]
+ vld2.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vld2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x60,0xf4]
+ vld2.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vld2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x60,0xf4]
+ vld2.32 {d16, d17, d18, d19}, [r0, :256]
+
+@ CHECK: vld3.8 {d16, d17, d18}, [r0, :64] @ encoding: [0x1f,0x04,0x60,0xf4]
+ vld3.8 {d16, d17, d18}, [r0, :64]
+@ CHECK: vld3.16 {d16, d17, d18}, [r0] @ encoding: [0x4f,0x04,0x60,0xf4]
+ vld3.16 {d16, d17, d18}, [r0]
+@ CHECK: vld3.32 {d16, d17, d18}, [r0] @ encoding: [0x8f,0x04,0x60,0xf4]
+ vld3.32 {d16, d17, d18}, [r0]
+@ CHECK: vld3.8 {d16, d18, d20}, [r0, :64]! @ encoding: [0x1d,0x05,0x60,0xf4]
+ vld3.8 {d16, d18, d20}, [r0, :64]!
+@ CHECK: vld3.8 {d17, d19, d21}, [r0, :64]! @ encoding: [0x1d,0x15,0x60,0xf4]
+ vld3.8 {d17, d19, d21}, [r0, :64]!
+@ CHECK: vld3.16 {d16, d18, d20}, [r0]! @ encoding: [0x4d,0x05,0x60,0xf4]
+ vld3.16 {d16, d18, d20}, [r0]!
+@ CHECK: vld3.16 {d17, d19, d21}, [r0]! @ encoding: [0x4d,0x15,0x60,0xf4]
+ vld3.16 {d17, d19, d21}, [r0]!
+@ CHECK: vld3.32 {d16, d18, d20}, [r0]! @ encoding: [0x8d,0x05,0x60,0xf4]
+ vld3.32 {d16, d18, d20}, [r0]!
+@ CHECK: vld3.32 {d17, d19, d21}, [r0]! @ encoding: [0x8d,0x15,0x60,0xf4]
+ vld3.32 {d17, d19, d21}, [r0]!
+
+@ CHECK: vld4.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x00,0x60,0xf4]
+ vld4.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vld4.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x00,0x60,0xf4]
+ vld4.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vld4.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x00,0x60,0xf4]
+ vld4.32 {d16, d17, d18, d19}, [r0, :256]
+@ CHECK: vld4.8 {d16, d18, d20, d22}, [r0, :256]! @ encoding: [0x3d,0x01,0x60,0xf4]
+ vld4.8 {d16, d18, d20, d22}, [r0, :256]!
+@ CHECK: vld4.8 {d17, d19, d21, d23}, [r0, :256]! @ encoding: [0x3d,0x11,0x60,0xf4]
+ vld4.8 {d17, d19, d21, d23}, [r0, :256]!
+@ CHECK: vld4.16 {d16, d18, d20, d22}, [r0]! @ encoding: [0x4d,0x01,0x60,0xf4]
+ vld4.16 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vld4.16 {d17, d19, d21, d23}, [r0]! @ encoding: [0x4d,0x11,0x60,0xf4]
+ vld4.16 {d17, d19, d21, d23}, [r0]!
+@ CHECK: vld4.32 {d16, d18, d20, d22}, [r0]! @ encoding: [0x8d,0x01,0x60,0xf4]
+ vld4.32 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vld4.32 {d17, d19, d21, d23}, [r0]! @ encoding: [0x8d,0x11,0x60,0xf4]
+ vld4.32 {d17, d19, d21, d23}, [r0]!
+
+@ CHECK: vld1.8 {d16[3]}, [r0] @ encoding: [0x6f,0x00,0xe0,0xf4]
+ vld1.8 {d16[3]}, [r0]
+@ CHECK: vld1.16 {d16[2]}, [r0, :16] @ encoding: [0x9f,0x04,0xe0,0xf4]
+ vld1.16 {d16[2]}, [r0, :16]
+@ CHECK: vld1.32 {d16[1]}, [r0, :32] @ encoding: [0xbf,0x08,0xe0,0xf4]
+ vld1.32 {d16[1]}, [r0, :32]
+
+@ CHECK: vld2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xe0,0xf4]
+ vld2.8 {d16[1], d17[1]}, [r0, :16]
+@ CHECK: vld2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xe0,0xf4]
+ vld2.16 {d16[1], d17[1]}, [r0, :32]
+@ CHECK: vld2.32 {d16[1], d17[1]}, [r0] @ encoding: [0x8f,0x09,0xe0,0xf4]
+ vld2.32 {d16[1], d17[1]}, [r0]
+@ CHECK: vld2.16 {d17[1], d19[1]}, [r0] @ encoding: [0x6f,0x15,0xe0,0xf4]
+ vld2.16 {d17[1], d19[1]}, [r0]
+@ CHECK: vld2.32 {d17[0], d19[0]}, [r0, :64] @ encoding: [0x5f,0x19,0xe0,0xf4]
+ vld2.32 {d17[0], d19[0]}, [r0, :64]
+
+@ CHECK: vld3.8 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x2f,0x02,0xe0,0xf4]
+ vld3.8 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vld3.16 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x4f,0x06,0xe0,0xf4]
+ vld3.16 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vld3.32 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x8f,0x0a,0xe0,0xf4]
+ vld3.32 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vld3.16 {d16[1], d18[1], d20[1]}, [r0] @ encoding: [0x6f,0x06,0xe0,0xf4]
+ vld3.16 {d16[1], d18[1], d20[1]}, [r0]
+@ CHECK: vld3.32 {d17[1], d19[1], d21[1]}, [r0] @ encoding: [0xcf,0x1a,0xe0,0xf4]
+ vld3.32 {d17[1], d19[1], d21[1]}, [r0]
+
+@ CHECK: vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32] @ encoding: [0x3f,0x03,0xe0,0xf4]
+ vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32]
+@ CHECK: vld4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0] @ encoding: [0x4f,0x07,0xe0,0xf4]
+ vld4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0]
+@ CHECK: vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128] @ encoding: [0xaf,0x0b,0xe0,0xf4]
+ vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128]
+@ CHECK: vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0, :64] @ encoding: [0x7f,0x07,0xe0,0xf4]
+ vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0, :64]
+@ CHECK: vld4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0] @ encoding: [0x4f,0x1b,0xe0,0xf4]
+ vld4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0]
diff --git a/test/MC/ARM/neon-vst-encoding.s b/test/MC/ARM/neon-vst-encoding.s
new file mode 100644
index 0000000..c595aa2
--- /dev/null
+++ b/test/MC/ARM/neon-vst-encoding.s
@@ -0,0 +1,101 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+@ CHECK: vst1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x40,0xf4]
+ vst1.8 {d16}, [r0, :64]
+@ CHECK: vst1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x40,0xf4]
+ vst1.16 {d16}, [r0]
+@ CHECK: vst1.32 {d16}, [r0] @ encoding: [0x8f,0x07,0x40,0xf4]
+ vst1.32 {d16}, [r0]
+@ CHECK: vst1.64 {d16}, [r0] @ encoding: [0xcf,0x07,0x40,0xf4]
+ vst1.64 {d16}, [r0]
+@ CHECK: vst1.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x0a,0x40,0xf4]
+ vst1.8 {d16, d17}, [r0, :64]
+@ CHECK: vst1.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x0a,0x40,0xf4]
+ vst1.16 {d16, d17}, [r0, :128]
+@ CHECK: vst1.32 {d16, d17}, [r0] @ encoding: [0x8f,0x0a,0x40,0xf4]
+ vst1.32 {d16, d17}, [r0]
+@ CHECK: vst1.64 {d16, d17}, [r0] @ encoding: [0xcf,0x0a,0x40,0xf4]
+ vst1.64 {d16, d17}, [r0]
+
+@ CHECK: vst2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x40,0xf4]
+ vst2.8 {d16, d17}, [r0, :64]
+@ CHECK: vst2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x40,0xf4]
+ vst2.16 {d16, d17}, [r0, :128]
+@ CHECK: vst2.32 {d16, d17}, [r0] @ encoding: [0x8f,0x08,0x40,0xf4]
+ vst2.32 {d16, d17}, [r0]
+@ CHECK: vst2.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x40,0xf4]
+ vst2.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vst2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x40,0xf4]
+ vst2.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vst2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x40,0xf4]
+ vst2.32 {d16, d17, d18, d19}, [r0, :256]
+
+@ CHECK: vst3.8 {d16, d17, d18}, [r0, :64] @ encoding: [0x1f,0x04,0x40,0xf4]
+ vst3.8 {d16, d17, d18}, [r0, :64]
+@ CHECK: vst3.16 {d16, d17, d18}, [r0] @ encoding: [0x4f,0x04,0x40,0xf4]
+ vst3.16 {d16, d17, d18}, [r0]
+@ CHECK: vst3.32 {d16, d17, d18}, [r0] @ encoding: [0x8f,0x04,0x40,0xf4]
+ vst3.32 {d16, d17, d18}, [r0]
+@ CHECK: vst3.8 {d16, d18, d20}, [r0, :64]! @ encoding: [0x1d,0x05,0x40,0xf4]
+ vst3.8 {d16, d18, d20}, [r0, :64]!
+@ CHECK: vst3.8 {d17, d19, d21}, [r0, :64]! @ encoding: [0x1d,0x15,0x40,0xf4]
+ vst3.8 {d17, d19, d21}, [r0, :64]!
+@ CHECK: vst3.16 {d16, d18, d20}, [r0]! @ encoding: [0x4d,0x05,0x40,0xf4]
+ vst3.16 {d16, d18, d20}, [r0]!
+@ CHECK: vst3.16 {d17, d19, d21}, [r0]! @ encoding: [0x4d,0x15,0x40,0xf4]
+ vst3.16 {d17, d19, d21}, [r0]!
+@ CHECK: vst3.32 {d16, d18, d20}, [r0]! @ encoding: [0x8d,0x05,0x40,0xf4]
+ vst3.32 {d16, d18, d20}, [r0]!
+@ CHECK: vst3.32 {d17, d19, d21}, [r0]! @ encoding: [0x8d,0x15,0x40,0xf4]
+ vst3.32 {d17, d19, d21}, [r0]!
+
+@ CHECK: vst4.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x00,0x40,0xf4]
+ vst4.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vst4.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x00,0x40,0xf4]
+ vst4.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vst4.8 {d16, d18, d20, d22}, [r0, :256]! @ encoding: [0x3d,0x01,0x40,0xf4]
+ vst4.8 {d16, d18, d20, d22}, [r0, :256]!
+@ CHECK: vst4.8 {d17, d19, d21, d23}, [r0, :256]! @ encoding: [0x3d,0x11,0x40,0xf4]
+ vst4.8 {d17, d19, d21, d23}, [r0, :256]!
+@ CHECK: vst4.16 {d16, d18, d20, d22}, [r0]! @ encoding: [0x4d,0x01,0x40,0xf4]
+ vst4.16 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vst4.16 {d17, d19, d21, d23}, [r0]! @ encoding: [0x4d,0x11,0x40,0xf4]
+ vst4.16 {d17, d19, d21, d23}, [r0]!
+@ CHECK: vst4.32 {d16, d18, d20, d22}, [r0]! @ encoding: [0x8d,0x01,0x40,0xf4]
+ vst4.32 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vst4.32 {d17, d19, d21, d23}, [r0]! @ encoding: [0x8d,0x11,0x40,0xf4]
+ vst4.32 {d17, d19, d21, d23}, [r0]!
+
+@ CHECK: vst2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xc0,0xf4]
+ vst2.8 {d16[1], d17[1]}, [r0, :16]
+@ CHECK: vst2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xc0,0xf4]
+ vst2.16 {d16[1], d17[1]}, [r0, :32]
+@ CHECK: vst2.32 {d16[1], d17[1]}, [r0] @ encoding: [0x8f,0x09,0xc0,0xf4]
+ vst2.32 {d16[1], d17[1]}, [r0]
+@ CHECK: vst2.16 {d17[1], d19[1]}, [r0] @ encoding: [0x6f,0x15,0xc0,0xf4]
+ vst2.16 {d17[1], d19[1]}, [r0]
+@ CHECK: vst2.32 {d17[0], d19[0]}, [r0, :64] @ encoding: [0x5f,0x19,0xc0,0xf4]
+ vst2.32 {d17[0], d19[0]}, [r0, :64]
+
+@ CHECK: vst3.8 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x2f,0x02,0xc0,0xf4]
+ vst3.8 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vst3.16 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x4f,0x06,0xc0,0xf4]
+ vst3.16 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vst3.32 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x8f,0x0a,0xc0,0xf4]
+ vst3.32 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vst3.16 {d17[2], d19[2], d21[2]}, [r0] @ encoding: [0xaf,0x16,0xc0,0xf4]
+ vst3.16 {d17[2], d19[2], d21[2]}, [r0]
+@ CHECK: vst3.32 {d16[0], d18[0], d20[0]}, [r0] @ encoding: [0x4f,0x0a,0xc0,0xf4]
+ vst3.32 {d16[0], d18[0], d20[0]}, [r0]
+
+@ CHECK: vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32] @ encoding: [0x3f,0x03,0xc0,0xf4]
+ vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32]
+@ CHECK: vst4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0] @ encoding: [0x4f,0x07,0xc0,0xf4]
+ vst4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0]
+@ CHECK: vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128] @ encoding: [0xaf,0x0b,0xc0,0xf4]
+ vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128]
+@ CHECK: vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0, :64] @ encoding: [0xff,0x17,0xc0,0xf4]
+ vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0, :64]
+@ CHECK: vst4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0] @ encoding: [0x4f,0x1b,0xc0,0xf4]
+ vst4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0]
diff --git a/test/MC/ARM/neont2-abs-encoding.s b/test/MC/ARM/neont2-abs-encoding.s
new file mode 100644
index 0000000..5c8bc33
--- /dev/null
+++ b/test/MC/ARM/neont2-abs-encoding.s
@@ -0,0 +1,33 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vabs.s8 d16, d16 @ encoding: [0xf1,0xff,0x20,0x03]
+ vabs.s8 d16, d16
+@ CHECK: vabs.s16 d16, d16 @ encoding: [0xf5,0xff,0x20,0x03]
+ vabs.s16 d16, d16
+@ CHECK: vabs.s32 d16, d16 @ encoding: [0xf9,0xff,0x20,0x03]
+ vabs.s32 d16, d16
+@ CHECK: vabs.f32 d16, d16 @ encoding: [0xf9,0xff,0x20,0x07]
+ vabs.f32 d16, d16
+@ CHECK: vabs.s8 q8, q8 @ encoding: [0xf1,0xff,0x60,0x03]
+ vabs.s8 q8, q8
+@ CHECK: vabs.s16 q8, q8 @ encoding: [0xf5,0xff,0x60,0x03]
+ vabs.s16 q8, q8
+@ CHECK: vabs.s32 q8, q8 @ encoding: [0xf9,0xff,0x60,0x03]
+ vabs.s32 q8, q8
+@ CHECK: vabs.f32 q8, q8 @ encoding: [0xf9,0xff,0x60,0x07]
+ vabs.f32 q8, q8
+
+@ CHECK: vqabs.s8 d16, d16 @ encoding: [0xf0,0xff,0x20,0x07]
+ vqabs.s8 d16, d16
+@ CHECK: vqabs.s16 d16, d16 @ encoding: [0xf4,0xff,0x20,0x07]
+ vqabs.s16 d16, d16
+@ CHECK: vqabs.s32 d16, d16 @ encoding: [0xf8,0xff,0x20,0x07]
+ vqabs.s32 d16, d16
+@ CHECK: vqabs.s8 q8, q8 @ encoding: [0xf0,0xff,0x60,0x07]
+ vqabs.s8 q8, q8
+@ CHECK: vqabs.s16 q8, q8 @ encoding: [0xf4,0xff,0x60,0x07]
+ vqabs.s16 q8, q8
+@ CHECK: vqabs.s32 q8, q8 @ encoding: [0xf8,0xff,0x60,0x07]
+ vqabs.s32 q8, q8
diff --git a/test/MC/ARM/neont2-absdiff-encoding.s b/test/MC/ARM/neont2-absdiff-encoding.s
new file mode 100644
index 0000000..2096357
--- /dev/null
+++ b/test/MC/ARM/neont2-absdiff-encoding.s
@@ -0,0 +1,86 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+@ NOTE: This currently fails because the ASM parser doesn't parse vabal.
+
+.code 16
+
+@ CHECK: vabd.s8 d16, d16, d17 @ encoding: [0xa1,0x07,0x40,0xef]
+ vabd.s8 d16, d16, d17
+@ CHECK: vabd.s16 d16, d16, d17 @ encoding: [0xa1,0x07,0x50,0xef]
+ vabd.s16 d16, d16, d17
+@ CHECK: vabd.s32 d16, d16, d17 @ encoding: [0xa1,0x07,0x60,0xef]
+ vabd.s32 d16, d16, d17
+@ CHECK: vabd.u8 d16, d16, d17 @ encoding: [0xa1,0x07,0x40,0xff]
+ vabd.u8 d16, d16, d17
+@ CHECK: vabd.u16 d16, d16, d17 @ encoding: [0xa1,0x07,0x50,0xff]
+ vabd.u16 d16, d16, d17
+ @ CHECK: vabd.u32 d16, d16, d17 @ encoding: [0xa1,0x07,0x60,0xff]
+ vabd.u32 d16, d16, d17
+@ CHECK: vabd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x60,0xff]
+ vabd.f32 d16, d16, d17
+@ CHECK: vabd.s8 q8, q8, q9 @ encoding: [0xe2,0x07,0x40,0xef]
+ vabd.s8 q8, q8, q9
+@ CHECK: vabd.s16 q8, q8, q9 @ encoding: [0xe2,0x07,0x50,0xef]
+ vabd.s16 q8, q8, q9
+@ CHECK: vabd.s32 q8, q8, q9 @ encoding: [0xe2,0x07,0x60,0xef]
+ vabd.s32 q8, q8, q9
+@ CHECK: vabd.u8 q8, q8, q9 @ encoding: [0xe2,0x07,0x40,0xff]
+ vabd.u8 q8, q8, q9
+@ CHECK: vabd.u16 q8, q8, q9 @ encoding: [0xe2,0x07,0x50,0xff]
+ vabd.u16 q8, q8, q9
+@ CHECK: vabd.u32 q8, q8, q9 @ encoding: [0xe2,0x07,0x60,0xff]
+ vabd.u32 q8, q8, q9
+@ CHECK: vabd.f32 q8, q8, q9 @ encoding: [0xe2,0x0d,0x60,0xff]
+ vabd.f32 q8, q8, q9
+
+@ CHECK: vabdl.s8 q8, d16, d17 @ encoding: [0xa1,0x07,0xc0,0xef]
+ vabdl.s8 q8, d16, d17
+@ CHECK: vabdl.s16 q8, d16, d17 @ encoding: [0xa1,0x07,0xd0,0xef]
+ vabdl.s16 q8, d16, d17
+@ CHECK: vabdl.s32 q8, d16, d17 @ encoding: [0xa1,0x07,0xe0,0xef]
+ vabdl.s32 q8, d16, d17
+@ CHECK: vabdl.u8 q8, d16, d17 @ encoding: [0xa1,0x07,0xc0,0xff]
+ vabdl.u8 q8, d16, d17
+@ CHECK: vabdl.u16 q8, d16, d17 @ encoding: [0xa1,0x07,0xd0,0xff]
+ vabdl.u16 q8, d16, d17
+@ CHECK: vabdl.u32 q8, d16, d17 @ encoding: [0xa1,0x07,0xe0,0xff]
+ vabdl.u32 q8, d16, d17
+
+@ CHECK: vaba.s8 d16, d18, d17 @ encoding: [0xb1,0x07,0x42,0xef]
+ vaba.s8 d16, d18, d17
+@ CHECK: vaba.s16 d16, d18, d17 @ encoding: [0xb1,0x07,0x52,0xef]
+ vaba.s16 d16, d18, d17
+@ CHECK: vaba.s32 d16, d18, d17 @ encoding: [0xb1,0x07,0x62,0xef]
+ vaba.s32 d16, d18, d17
+@ CHECK: vaba.u8 d16, d18, d17 @ encoding: [0xb1,0x07,0x42,0xff]
+ vaba.u8 d16, d18, d17
+@ CHECK: vaba.u16 d16, d18, d17 @ encoding: [0xb1,0x07,0x52,0xff]
+ vaba.u16 d16, d18, d17
+@ CHECK: vaba.u32 d16, d18, d17 @ encoding: [0xb1,0x07,0x62,0xff]
+ vaba.u32 d16, d18, d17
+@ CHECK: vaba.s8 q9, q8, q10 @ encoding: [0xf4,0x27,0x40,0xef]
+ vaba.s8 q9, q8, q10
+@ CHECK: vaba.s16 q9, q8, q10 @ encoding: [0xf4,0x27,0x50,0xef]
+ vaba.s16 q9, q8, q10
+@ CHECK: vaba.s32 q9, q8, q10 @ encoding: [0xf4,0x27,0x60,0xef]
+ vaba.s32 q9, q8, q10
+@ CHECK: vaba.u8 q9, q8, q10 @ encoding: [0xf4,0x27,0x40,0xff]
+ vaba.u8 q9, q8, q10
+@ CHECK: vaba.u16 q9, q8, q10 @ encoding: [0xf4,0x27,0x50,0xff]
+ vaba.u16 q9, q8, q10
+@ CHECK: vaba.u32 q9, q8, q10 @ encoding: [0xf4,0x27,0x60,0xff]
+ vaba.u32 q9, q8, q10
+
+@ CHECK: vabal.s8 q8, d19, d18 @ encoding: [0xa2,0x05,0xc3,0xef]
+ vabal.s8 q8, d19, d18
+@ CHECK: vabal.s16 q8, d19, d18 @ encoding: [0xa2,0x05,0xd3,0xef]
+ vabal.s16 q8, d19, d18
+@ CHECK: vabal.s32 q8, d19, d18 @ encoding: [0xa2,0x05,0xe3,0xef]
+ vabal.s32 q8, d19, d18
+@ CHECK: vabal.u8 q8, d19, d18 @ encoding: [0xa2,0x05,0xc3,0xff]
+ vabal.u8 q8, d19, d18
+@ CHECK: vabal.u16 q8, d19, d18 @ encoding: [0xa2,0x05,0xd3,0xff]
+ vabal.u16 q8, d19, d18
+@ CHECK: vabal.u32 q8, d19, d18 @ encoding: [0xa2,0x05,0xe3,0xff]
+ vabal.u32 q8, d19, d18
+
diff --git a/test/MC/ARM/neont2-add-encoding.s b/test/MC/ARM/neont2-add-encoding.s
new file mode 100644
index 0000000..c384d76
--- /dev/null
+++ b/test/MC/ARM/neont2-add-encoding.s
@@ -0,0 +1,138 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vadd.i8 d16, d17, d16 @ encoding: [0x41,0xef,0xa0,0x08]
+ vadd.i8 d16, d17, d16
+@ CHECK: vadd.i16 d16, d17, d16 @ encoding: [0x51,0xef,0xa0,0x08]
+ vadd.i16 d16, d17, d16
+@ CHECK: vadd.i64 d16, d17, d16 @ encoding: [0x71,0xef,0xa0,0x08]
+ vadd.i64 d16, d17, d16
+@ CHECK: vadd.i32 d16, d17, d16 @ encoding: [0x61,0xef,0xa0,0x08]
+ vadd.i32 d16, d17, d16
+@ CHECK: vadd.f32 d16, d16, d17 @ encoding: [0x40,0xef,0xa1,0x0d]
+ vadd.f32 d16, d16, d17
+@ CHECK: vadd.f32 q8, q8, q9 @ encoding: [0x40,0xef,0xe2,0x0d]
+ vadd.f32 q8, q8, q9
+
+@ CHECK: vaddl.s8 q8, d17, d16 @ encoding: [0xc1,0xef,0xa0,0x00]
+ vaddl.s8 q8, d17, d16
+@ CHECK: vaddl.s16 q8, d17, d16 @ encoding: [0xd1,0xef,0xa0,0x00]
+ vaddl.s16 q8, d17, d16
+@ CHECK: vaddl.s32 q8, d17, d16 @ encoding: [0xe1,0xef,0xa0,0x00]
+ vaddl.s32 q8, d17, d16
+@ CHECK: vaddl.u8 q8, d17, d16 @ encoding: [0xc1,0xff,0xa0,0x00]
+ vaddl.u8 q8, d17, d16
+@ CHECK: vaddl.u16 q8, d17, d16 @ encoding: [0xd1,0xff,0xa0,0x00]
+ vaddl.u16 q8, d17, d16
+@ CHECK: vaddl.u32 q8, d17, d16 @ encoding: [0xe1,0xff,0xa0,0x00]
+ vaddl.u32 q8, d17, d16
+
+@ CHECK: vaddw.s8 q8, q8, d18 @ encoding: [0xc0,0xef,0xa2,0x01]
+ vaddw.s8 q8, q8, d18
+@ CHECK: vaddw.s16 q8, q8, d18 @ encoding: [0xd0,0xef,0xa2,0x01]
+ vaddw.s16 q8, q8, d18
+@ CHECK: vaddw.s32 q8, q8, d18 @ encoding: [0xe0,0xef,0xa2,0x01]
+ vaddw.s32 q8, q8, d18
+@ CHECK: vaddw.u8 q8, q8, d18 @ encoding: [0xc0,0xff,0xa2,0x01]
+ vaddw.u8 q8, q8, d18
+@ CHECK: vaddw.u16 q8, q8, d18 @ encoding: [0xd0,0xff,0xa2,0x01]
+ vaddw.u16 q8, q8, d18
+@ CHECK: vaddw.u32 q8, q8, d18 @ encoding: [0xe0,0xff,0xa2,0x01]
+ vaddw.u32 q8, q8, d18
+
+@ CHECK: vhadd.s8 d16, d16, d17 @ encoding: [0x40,0xef,0xa1,0x00]
+ vhadd.s8 d16, d16, d17
+@ CHECK: vhadd.s16 d16, d16, d17 @ encoding: [0x50,0xef,0xa1,0x00]
+ vhadd.s16 d16, d16, d17
+@ CHECK: vhadd.s32 d16, d16, d17 @ encoding: [0x60,0xef,0xa1,0x00]
+ vhadd.s32 d16, d16, d17
+@ CHECK: vhadd.u8 d16, d16, d17 @ encoding: [0x40,0xff,0xa1,0x00]
+ vhadd.u8 d16, d16, d17
+@ CHECK: vhadd.u16 d16, d16, d17 @ encoding: [0x50,0xff,0xa1,0x00]
+ vhadd.u16 d16, d16, d17
+@ CHECK: vhadd.u32 d16, d16, d17 @ encoding: [0x60,0xff,0xa1,0x00]
+ vhadd.u32 d16, d16, d17
+@ CHECK: vhadd.s8 q8, q8, q9 @ encoding: [0x40,0xef,0xe2,0x00]
+ vhadd.s8 q8, q8, q9
+@ CHECK: vhadd.s16 q8, q8, q9 @ encoding: [0x50,0xef,0xe2,0x00]
+ vhadd.s16 q8, q8, q9
+@ CHECK: vhadd.s32 q8, q8, q9 @ encoding: [0x60,0xef,0xe2,0x00]
+ vhadd.s32 q8, q8, q9
+ @ CHECK: vhadd.u8 q8, q8, q9 @ encoding: [0x40,0xff,0xe2,0x00]
+ vhadd.u8 q8, q8, q9
+@ CHECK: vhadd.u16 q8, q8, q9 @ encoding: [0x50,0xff,0xe2,0x00]
+ vhadd.u16 q8, q8, q9
+@ CHECK: vhadd.u32 q8, q8, q9 @ encoding: [0x60,0xff,0xe2,0x00]
+ vhadd.u32 q8, q8, q9
+
+@ CHECK: vrhadd.s8 d16, d16, d17 @ encoding: [0x40,0xef,0xa1,0x01]
+ vrhadd.s8 d16, d16, d17
+@ CHECK: vrhadd.s16 d16, d16, d17 @ encoding: [0x50,0xef,0xa1,0x01]
+ vrhadd.s16 d16, d16, d17
+@ CHECK: vrhadd.s32 d16, d16, d17 @ encoding: [0x60,0xef,0xa1,0x01]
+ vrhadd.s32 d16, d16, d17
+@ CHECK: vrhadd.u8 d16, d16, d17 @ encoding: [0x40,0xff,0xa1,0x01]
+ vrhadd.u8 d16, d16, d17
+@ CHECK: vrhadd.u16 d16, d16, d17 @ encoding: [0x50,0xff,0xa1,0x01]
+ vrhadd.u16 d16, d16, d17
+@ CHECK: vrhadd.u32 d16, d16, d17 @ encoding: [0x60,0xff,0xa1,0x01]
+ vrhadd.u32 d16, d16, d17
+@ CHECK: vrhadd.s8 q8, q8, q9 @ encoding: [0x40,0xef,0xe2,0x01]
+ vrhadd.s8 q8, q8, q9
+@ CHECK: vrhadd.s16 q8, q8, q9 @ encoding: [0x50,0xef,0xe2,0x01]
+ vrhadd.s16 q8, q8, q9
+@ CHECK: vrhadd.s32 q8, q8, q9 @ encoding: [0x60,0xef,0xe2,0x01]
+ vrhadd.s32 q8, q8, q9
+@ CHECK: vrhadd.u8 q8, q8, q9 @ encoding: [0x40,0xff,0xe2,0x01]
+ vrhadd.u8 q8, q8, q9
+@ CHECK: vrhadd.u16 q8, q8, q9 @ encoding: [0x50,0xff,0xe2,0x01]
+ vrhadd.u16 q8, q8, q9
+@ CHECK: vrhadd.u32 q8, q8, q9 @ encoding: [0x60,0xff,0xe2,0x01]
+ vrhadd.u32 q8, q8, q9
+
+@ CHECK: vqadd.s8 d16, d16, d17 @ encoding: [0x40,0xef,0xb1,0x00]
+ vqadd.s8 d16, d16, d17
+@ CHECK: vqadd.s16 d16, d16, d17 @ encoding: [0x50,0xef,0xb1,0x00]
+ vqadd.s16 d16, d16, d17
+@ CHECK: vqadd.s32 d16, d16, d17 @ encoding: [0x60,0xef,0xb1,0x00]
+ vqadd.s32 d16, d16, d17
+@ CHECK: vqadd.s64 d16, d16, d17 @ encoding: [0x70,0xef,0xb1,0x00]
+ vqadd.s64 d16, d16, d17
+@ CHECK: vqadd.u8 d16, d16, d17 @ encoding: [0x40,0xff,0xb1,0x00]
+ vqadd.u8 d16, d16, d17
+@ CHECK: vqadd.u16 d16, d16, d17 @ encoding: [0x50,0xff,0xb1,0x00]
+ vqadd.u16 d16, d16, d17
+@ CHECK: vqadd.u32 d16, d16, d17 @ encoding: [0x60,0xff,0xb1,0x00]
+ vqadd.u32 d16, d16, d17
+@ CHECK: vqadd.u64 d16, d16, d17 @ encoding: [0x70,0xff,0xb1,0x00]
+ vqadd.u64 d16, d16, d17
+@ CHECK: vqadd.s8 q8, q8, q9 @ encoding: [0x40,0xef,0xf2,0x00]
+ vqadd.s8 q8, q8, q9
+@ CHECK: vqadd.s16 q8, q8, q9 @ encoding: [0x50,0xef,0xf2,0x00]
+ vqadd.s16 q8, q8, q9
+@ CHECK: vqadd.s32 q8, q8, q9 @ encoding: [0x60,0xef,0xf2,0x00]
+ vqadd.s32 q8, q8, q9
+@ CHECK: vqadd.s64 q8, q8, q9 @ encoding: [0x70,0xef,0xf2,0x00]
+ vqadd.s64 q8, q8, q9
+@ CHECK: vqadd.u8 q8, q8, q9 @ encoding: [0x40,0xff,0xf2,0x00]
+ vqadd.u8 q8, q8, q9
+@ CHECK: vqadd.u16 q8, q8, q9 @ encoding: [0x50,0xff,0xf2,0x00]
+ vqadd.u16 q8, q8, q9
+@ CHECK: vqadd.u32 q8, q8, q9 @ encoding: [0x60,0xff,0xf2,0x00]
+ vqadd.u32 q8, q8, q9
+@ CHECK: vqadd.u64 q8, q8, q9 @ encoding: [0x70,0xff,0xf2,0x00]
+ vqadd.u64 q8, q8, q9
+
+@ CHECK: vaddhn.i16 d16, q8, q9 @ encoding: [0xc0,0xef,0xa2,0x04]
+ vaddhn.i16 d16, q8, q9
+@ CHECK: vaddhn.i32 d16, q8, q9 @ encoding: [0xd0,0xef,0xa2,0x04]
+ vaddhn.i32 d16, q8, q9
+@ CHECK: vaddhn.i64 d16, q8, q9 @ encoding: [0xe0,0xef,0xa2,0x04]
+ vaddhn.i64 d16, q8, q9
+@ CHECK: vraddhn.i16 d16, q8, q9 @ encoding: [0xc0,0xff,0xa2,0x04]
+ vraddhn.i16 d16, q8, q9
+@ CHECK: vraddhn.i32 d16, q8, q9 @ encoding: [0xd0,0xff,0xa2,0x04]
+ vraddhn.i32 d16, q8, q9
+@ CHECK: vraddhn.i64 d16, q8, q9 @ encoding: [0xe0,0xff,0xa2,0x04]
+ vraddhn.i64 d16, q8, q9
diff --git a/test/MC/ARM/neont2-bitcount-encoding.s b/test/MC/ARM/neont2-bitcount-encoding.s
new file mode 100644
index 0000000..4280cbd
--- /dev/null
+++ b/test/MC/ARM/neont2-bitcount-encoding.s
@@ -0,0 +1,34 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vcnt.8 d16, d16 @ encoding: [0x20,0x05,0xf0,0xff]
+ vcnt.8 d16, d16
+@ CHECK: vcnt.8 q8, q8 @ encoding: [0x60,0x05,0xf0,0xff]
+ vcnt.8 q8, q8
+@ CHECK: vclz.i8 d16, d16 @ encoding: [0xa0,0x04,0xf0,0xff]
+ vclz.i8 d16, d16
+@ CHECK: vclz.i16 d16, d16 @ encoding: [0xa0,0x04,0xf4,0xff]
+ vclz.i16 d16, d16
+@ CHECK: vclz.i32 d16, d16 @ encoding: [0xa0,0x04,0xf8,0xff]
+ vclz.i32 d16, d16
+@ CHECK: vclz.i8 q8, q8 @ encoding: [0xe0,0x04,0xf0,0xff]
+ vclz.i8 q8, q8
+@ CHECK: vclz.i16 q8, q8 @ encoding: [0xe0,0x04,0xf4,0xff]
+ vclz.i16 q8, q8
+@ CHECK: vclz.i32 q8, q8 @ encoding: [0xe0,0x04,0xf8,0xff]
+ vclz.i32 q8, q8
+@ CHECK: vcls.s8 d16, d16 @ encoding: [0x20,0x04,0xf0,0xff]
+ vcls.s8 d16, d16
+@ CHECK: vcls.s16 d16, d16 @ encoding: [0x20,0x04,0xf4,0xff]
+ vcls.s16 d16, d16
+@ CHECK: vcls.s32 d16, d16 @ encoding: [0x20,0x04,0xf8,0xff]
+ vcls.s32 d16, d16
+@ CHECK: vcls.s8 q8, q8 @ encoding: [0x60,0x04,0xf0,0xff]
+ vcls.s8 q8, q8
+@ CHECK: vcls.s16 q8, q8 @ encoding: [0x60,0x04,0xf4,0xff]
+ vcls.s16 q8, q8
+@ CHECK: vcls.s32 q8, q8 @ encoding: [0x60,0x04,0xf8,0xff]
+ vcls.s32 q8, q8
+
diff --git a/test/MC/ARM/neont2-bitwise-encoding.s b/test/MC/ARM/neont2-bitwise-encoding.s
new file mode 100644
index 0000000..3acd7a8
--- /dev/null
+++ b/test/MC/ARM/neont2-bitwise-encoding.s
@@ -0,0 +1,49 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vand d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xef]
+ vand d16, d17, d16
+@ CHECK: vand q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xef]
+ vand q8, q8, q9
+
+@ CHECK: veor d16, d17, d16 @ encoding: [0xb0,0x01,0x41,0xff]
+ veor d16, d17, d16
+@ CHECK: veor q8, q8, q9 @ encoding: [0xf2,0x01,0x40,0xff]
+ veor q8, q8, q9
+
+@ CHECK: vorr d16, d17, d16 @ encoding: [0xb0,0x01,0x61,0xef]
+ vorr d16, d17, d16
+@ CHECK: vorr q8, q8, q9 @ encoding: [0xf2,0x01,0x60,0xef]
+ vorr q8, q8, q9
+@ CHECK: vorr.i32 d16, #0x1000000 @ encoding: [0x11,0x07,0xc0,0xef]
+ vorr.i32 d16, #0x1000000
+@ CHECK: vorr.i32 q8, #0x1000000 @ encoding: [0x51,0x07,0xc0,0xef]
+ vorr.i32 q8, #0x1000000
+@ CHECK: vorr.i32 q8, #0x0 @ encoding: [0x50,0x01,0xc0,0xef]
+ vorr.i32 q8, #0x0
+
+@ CHECK: vbic d16, d17, d16 @ encoding: [0xb0,0x01,0x51,0xef]
+ vbic d16, d17, d16
+@ CHECK: vbic q8, q8, q9 @ encoding: [0xf2,0x01,0x50,0xef]
+ vbic q8, q8, q9
+@ CHECK: vbic.i32 d16, #0xFF000000 @ encoding: [0x3f,0x07,0xc7,0xff]
+ vbic.i32 d16, #0xFF000000
+@ CHECK: vbic.i32 q8, #0xFF000000 @ encoding: [0x7f,0x07,0xc7,0xff]
+ vbic.i32 q8, #0xFF000000
+
+@ CHECK: vorn d16, d17, d16 @ encoding: [0xb0,0x01,0x71,0xef]
+ vorn d16, d17, d16
+@ CHECK: vorn q8, q8, q9 @ encoding: [0xf2,0x01,0x70,0xef]
+ vorn q8, q8, q9
+
+@ CHECK: vmvn d16, d16 @ encoding: [0xa0,0x05,0xf0,0xff]
+ vmvn d16, d16
+@ CHECK: vmvn q8, q8 @ encoding: [0xe0,0x05,0xf0,0xff]
+ vmvn q8, q8
+
+@ CHECK: vbsl d18, d17, d16 @ encoding: [0xb0,0x21,0x51,0xff]
+ vbsl d18, d17, d16
+@ CHECK: vbsl q8, q10, q9 @ encoding: [0xf2,0x01,0x54,0xff]
+ vbsl q8, q10, q9
diff --git a/test/MC/ARM/neont2-cmp-encoding.s b/test/MC/ARM/neont2-cmp-encoding.s
new file mode 100644
index 0000000..1dbd42a
--- /dev/null
+++ b/test/MC/ARM/neont2-cmp-encoding.s
@@ -0,0 +1,36 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vcvt.s32.f32 d16, d16 @ encoding: [0xfb,0xff,0x20,0x07]
+ vcvt.s32.f32 d16, d16
+@ CHECK: vcvt.u32.f32 d16, d16 @ encoding: [0xfb,0xff,0xa0,0x07]
+ vcvt.u32.f32 d16, d16
+@ CHECK: vcvt.f32.s32 d16, d16 @ encoding: [0xfb,0xff,0x20,0x06]
+ vcvt.f32.s32 d16, d16
+@ CHECK: vcvt.f32.u32 d16, d16 @ encoding: [0xfb,0xff,0xa0,0x06]
+ vcvt.f32.u32 d16, d16
+@ CHECK: vcvt.s32.f32 q8, q8 @ encoding: [0xfb,0xff,0x60,0x07]
+ vcvt.s32.f32 q8, q8
+@ CHECK: vcvt.u32.f32 q8, q8 @ encoding: [0xfb,0xff,0xe0,0x07]
+ vcvt.u32.f32 q8, q8
+@ CHECK: vcvt.f32.s32 q8, q8 @ encoding: [0xfb,0xff,0x60,0x06]
+ vcvt.f32.s32 q8, q8
+@ CHECK: vcvt.f32.u32 q8, q8 @ encoding: [0xfb,0xff,0xe0,0x06]
+ vcvt.f32.u32 q8, q8
+@ CHECK: vcvt.s32.f32 d16, d16, #1 @ encoding: [0xff,0xef,0x30,0x0f]
+ vcvt.s32.f32 d16, d16, #1
+@ CHECK: vcvt.u32.f32 d16, d16, #1 @ encoding: [0xff,0xff,0x30,0x0f]
+ vcvt.u32.f32 d16, d16, #1
+@ CHECK: vcvt.f32.s32 d16, d16, #1 @ encoding: [0xff,0xef,0x30,0x0e]
+ vcvt.f32.s32 d16, d16, #1
+@ CHECK: vcvt.f32.u32 d16, d16, #1 @ encoding: [0xff,0xff,0x30,0x0e]
+ vcvt.f32.u32 d16, d16, #1
+@ CHECK: vcvt.s32.f32 q8, q8, #1 @ encoding: [0xff,0xef,0x70,0x0f]
+ vcvt.s32.f32 q8, q8, #1
+@ CHECK: vcvt.u32.f32 q8, q8, #1 @ encoding: [0xff,0xff,0x70,0x0f]
+ vcvt.u32.f32 q8, q8, #1
+@ CHECK: vcvt.f32.s32 q8, q8, #1 @ encoding: [0xff,0xef,0x70,0x0e]
+ vcvt.f32.s32 q8, q8, #1
+@ CHECK: vcvt.f32.u32 q8, q8, #1 @ encoding: [0xff,0xff,0x70,0x0e]
+ vcvt.f32.u32 q8, q8, #1
diff --git a/test/MC/ARM/neont2-convert-encoding.s b/test/MC/ARM/neont2-convert-encoding.s
new file mode 100644
index 0000000..1df3b43
--- /dev/null
+++ b/test/MC/ARM/neont2-convert-encoding.s
@@ -0,0 +1,40 @@
+@ RUN: llvm-mc -mcpu=cortex-a9 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vcvt.s32.f32 d16, d16 @ encoding: [0xfb,0xff,0x20,0x07]
+ vcvt.s32.f32 d16, d16
+@ CHECK: vcvt.u32.f32 d16, d16 @ encoding: [0xfb,0xff,0xa0,0x07]
+ vcvt.u32.f32 d16, d16
+@ CHECK: vcvt.f32.s32 d16, d16 @ encoding: [0xfb,0xff,0x20,0x06]
+ vcvt.f32.s32 d16, d16
+@ CHECK: vcvt.f32.u32 d16, d16 @ encoding: [0xfb,0xff,0xa0,0x06]
+ vcvt.f32.u32 d16, d16
+@ CHECK: vcvt.s32.f32 q8, q8 @ encoding: [0xfb,0xff,0x60,0x07]
+ vcvt.s32.f32 q8, q8
+@ CHECK: vcvt.u32.f32 q8, q8 @ encoding: [0xfb,0xff,0xe0,0x07]
+ vcvt.u32.f32 q8, q8
+@ CHECK: vcvt.f32.s32 q8, q8 @ encoding: [0xfb,0xff,0x60,0x06]
+ vcvt.f32.s32 q8, q8
+@ CHECK: vcvt.f32.u32 q8, q8 @ encoding: [0xfb,0xff,0xe0,0x06]
+ vcvt.f32.u32 q8, q8
+@ CHECK: vcvt.s32.f32 d16, d16, #1 @ encoding: [0xff,0xef,0x30,0x0f]
+ vcvt.s32.f32 d16, d16, #1
+@ CHECK: vcvt.u32.f32 d16, d16, #1 @ encoding: [0xff,0xff,0x30,0x0f]
+ vcvt.u32.f32 d16, d16, #1
+@ CHECK: vcvt.f32.s32 d16, d16, #1 @ encoding: [0xff,0xef,0x30,0x0e]
+ vcvt.f32.s32 d16, d16, #1
+@ CHECK: vcvt.f32.u32 d16, d16, #1 @ encoding: [0xff,0xff,0x30,0x0e]
+ vcvt.f32.u32 d16, d16, #1
+@ CHECK: vcvt.s32.f32 q8, q8, #1 @ encoding: [0xff,0xef,0x70,0x0f]
+ vcvt.s32.f32 q8, q8, #1
+@ CHECK: vcvt.u32.f32 q8, q8, #1 @ encoding: [0xff,0xff,0x70,0x0f]
+ vcvt.u32.f32 q8, q8, #1
+@ CHECK: vcvt.f32.s32 q8, q8, #1 @ encoding: [0xff,0xef,0x70,0x0e]
+ vcvt.f32.s32 q8, q8, #1
+@ CHECK: vcvt.f32.u32 q8, q8, #1 @ encoding: [0xff,0xff,0x70,0x0e]
+ vcvt.f32.u32 q8, q8, #1
+@ CHECK: vcvt.f32.f16 q8, d16 @ encoding: [0xf6,0xff,0x20,0x07]
+ vcvt.f32.f16 q8, d16
+@ CHECK: vcvt.f16.f32 d16, q8 @ encoding: [0xf6,0xff,0x20,0x06]
+ vcvt.f16.f32 d16, q8
diff --git a/test/MC/ARM/neont2-dup-encoding.s b/test/MC/ARM/neont2-dup-encoding.s
new file mode 100644
index 0000000..da6e78f
--- /dev/null
+++ b/test/MC/ARM/neont2-dup-encoding.s
@@ -0,0 +1,29 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vdup.8 d16, r0 @ encoding: [0x90,0x0b,0xc0,0xee]
+ vdup.8 d16, r0
+@ CHECK: vdup.16 d16, r0 @ encoding: [0xb0,0x0b,0x80,0xee]
+ vdup.16 d16, r0
+@ CHECK: vdup.32 d16, r0 @ encoding: [0x90,0x0b,0x80,0xee]
+ vdup.32 d16, r0
+@ CHECK: vdup.8 q8, r0 @ encoding: [0x90,0x0b,0xe0,0xee]
+ vdup.8 q8, r0
+@ CHECK: vdup.16 q8, r0 @ encoding: [0xb0,0x0b,0xa0,0xee]
+ vdup.16 q8, r0
+@ CHECK: vdup.32 q8, r0 @ encoding: [0x90,0x0b,0xa0,0xee]
+ vdup.32 q8, r0
+@ CHECK: vdup.8 d16, d16[1] @ encoding: [0x20,0x0c,0xf3,0xff]
+ vdup.8 d16, d16[1]
+@ CHECK: vdup.16 d16, d16[1] @ encoding: [0x20,0x0c,0xf6,0xff]
+ vdup.16 d16, d16[1]
+@ CHECK: vdup.32 d16, d16[1] @ encoding: [0x20,0x0c,0xfc,0xff]
+ vdup.32 d16, d16[1]
+@ CHECK: vdup.8 q8, d16[1] @ encoding: [0x60,0x0c,0xf3,0xff]
+ vdup.8 q8, d16[1]
+@ CHECK: vdup.16 q8, d16[1] @ encoding: [0x60,0x0c,0xf6,0xff]
+ vdup.16 q8, d16[1]
+@ CHECK: vdup.32 q8, d16[1] @ encoding: [0x60,0x0c,0xfc,0xff]
+ vdup.32 q8, d16[1]
diff --git a/test/MC/ARM/neont2-minmax-encoding.s b/test/MC/ARM/neont2-minmax-encoding.s
new file mode 100644
index 0000000..7e86d45
--- /dev/null
+++ b/test/MC/ARM/neont2-minmax-encoding.s
@@ -0,0 +1,60 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vmin.s8 d16, d16, d17 @ encoding: [0x40,0xef,0xb1,0x06]
+ vmin.s8 d16, d16, d17
+@ CHECK: vmin.s16 d16, d16, d17 @ encoding: [0x50,0xef,0xb1,0x06]
+ vmin.s16 d16, d16, d17
+@ CHECK: vmin.s32 d16, d16, d17 @ encoding: [0x60,0xef,0xb1,0x06]
+ vmin.s32 d16, d16, d17
+@ CHECK: vmin.u8 d16, d16, d17 @ encoding: [0x40,0xff,0xb1,0x06]
+ vmin.u8 d16, d16, d17
+@ CHECK: vmin.u16 d16, d16, d17 @ encoding: [0x50,0xff,0xb1,0x06]
+ vmin.u16 d16, d16, d17
+@ CHECK: vmin.u32 d16, d16, d17 @ encoding: [0x60,0xff,0xb1,0x06]
+ vmin.u32 d16, d16, d17
+@ CHECK: vmin.f32 d16, d16, d17 @ encoding: [0x60,0xef,0xa1,0x0f]
+ vmin.f32 d16, d16, d17
+@ CHECK: vmin.s8 q8, q8, q9 @ encoding: [0x40,0xef,0xf2,0x06]
+ vmin.s8 q8, q8, q9
+@ CHECK: vmin.s16 q8, q8, q9 @ encoding: [0x50,0xef,0xf2,0x06]
+ vmin.s16 q8, q8, q9
+@ CHECK: vmin.s32 q8, q8, q9 @ encoding: [0x60,0xef,0xf2,0x06]
+ vmin.s32 q8, q8, q9
+@ CHECK: vmin.u8 q8, q8, q9 @ encoding: [0x40,0xff,0xf2,0x06]
+ vmin.u8 q8, q8, q9
+@ CHECK: vmin.u16 q8, q8, q9 @ encoding: [0x50,0xff,0xf2,0x06]
+ vmin.u16 q8, q8, q9
+@ CHECK: vmin.u32 q8, q8, q9 @ encoding: [0x60,0xff,0xf2,0x06]
+ vmin.u32 q8, q8, q9
+@ CHECK: vmin.f32 q8, q8, q9 @ encoding: [0x60,0xef,0xe2,0x0f]
+ vmin.f32 q8, q8, q9
+@ CHECK: vmax.s8 d16, d16, d17 @ encoding: [0x40,0xef,0xa1,0x06]
+ vmax.s8 d16, d16, d17
+@ CHECK: vmax.s16 d16, d16, d17 @ encoding: [0x50,0xef,0xa1,0x06]
+ vmax.s16 d16, d16, d17
+@ CHECK: vmax.s32 d16, d16, d17 @ encoding: [0x60,0xef,0xa1,0x06]
+ vmax.s32 d16, d16, d17
+@ CHECK: vmax.u8 d16, d16, d17 @ encoding: [0x40,0xff,0xa1,0x06]
+ vmax.u8 d16, d16, d17
+@ CHECK: vmax.u16 d16, d16, d17 @ encoding: [0x50,0xff,0xa1,0x06]
+ vmax.u16 d16, d16, d17
+@ CHECK: vmax.u32 d16, d16, d17 @ encoding: [0x60,0xff,0xa1,0x06]
+ vmax.u32 d16, d16, d17
+@ CHECK: vmax.f32 d16, d16, d17 @ encoding: [0x40,0xef,0xa1,0x0f]
+ vmax.f32 d16, d16, d17
+@ CHECK: vmax.s8 q8, q8, q9 @ encoding: [0x40,0xef,0xe2,0x06]
+ vmax.s8 q8, q8, q9
+@ CHECK: vmax.s16 q8, q8, q9 @ encoding: [0x50,0xef,0xe2,0x06]
+ vmax.s16 q8, q8, q9
+@ CHECK: vmax.s32 q8, q8, q9 @ encoding: [0x60,0xef,0xe2,0x06]
+ vmax.s32 q8, q8, q9
+@ CHECK: vmax.u8 q8, q8, q9 @ encoding: [0x40,0xff,0xe2,0x06]
+ vmax.u8 q8, q8, q9
+@ CHECK: vmax.u16 q8, q8, q9 @ encoding: [0x50,0xff,0xe2,0x06]
+ vmax.u16 q8, q8, q9
+@ CHECK: vmax.u32 q8, q8, q9 @ encoding: [0x60,0xff,0xe2,0x06]
+ vmax.u32 q8, q8, q9
+@ CHECK: vmax.f32 q8, q8, q9 @ encoding: [0x40,0xef,0xe2,0x0f]
+ vmax.f32 q8, q8, q9
diff --git a/test/MC/ARM/neont2-mov-encoding.s b/test/MC/ARM/neont2-mov-encoding.s
new file mode 100644
index 0000000..ababbb7
--- /dev/null
+++ b/test/MC/ARM/neont2-mov-encoding.s
@@ -0,0 +1,119 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vmov.i8 d16, #0x8 @ encoding: [0x18,0x0e,0xc0,0xef]
+ vmov.i8 d16, #0x8
+@ CHECK: vmov.i16 d16, #0x10 @ encoding: [0x10,0x08,0xc1,0xef]
+ vmov.i16 d16, #0x10
+@ CHECK: vmov.i16 d16, #0x1000 @ encoding: [0x10,0x0a,0xc1,0xef]
+ vmov.i16 d16, #0x1000
+@ CHECK: vmov.i32 d16, #0x20 @ encoding: [0x10,0x00,0xc2,0xef]
+ vmov.i32 d16, #0x20
+@ CHECK: vmov.i32 d16, #0x2000 @ encoding: [0x10,0x02,0xc2,0xef]
+ vmov.i32 d16, #0x2000
+@ CHECK: vmov.i32 d16, #0x200000 @ encoding: [0x10,0x04,0xc2,0xef]
+ vmov.i32 d16, #0x200000
+@ CHECK: vmov.i32 d16, #0x20000000 @ encoding: [0x10,0x06,0xc2,0xef]
+ vmov.i32 d16, #0x20000000
+@ CHECK: vmov.i32 d16, #0x20FF @ encoding: [0x10,0x0c,0xc2,0xef]
+ vmov.i32 d16, #0x20FF
+@ CHECK: vmov.i32 d16, #0x20FFFF @ encoding: [0x10,0x0d,0xc2,0xef]
+ vmov.i32 d16, #0x20FFFF
+@ CHECK: vmov.i64 d16, #0xFF0000FF0000FFFF @ encoding: [0x33,0x0e,0xc1,0xff]
+ vmov.i64 d16, #0xFF0000FF0000FFFF
+@ CHECK: vmov.i8 q8, #0x8 @ encoding: [0x58,0x0e,0xc0,0xef]
+ vmov.i8 q8, #0x8
+@ CHECK: vmov.i16 q8, #0x10 @ encoding: [0x50,0x08,0xc1,0xef]
+ vmov.i16 q8, #0x10
+@ CHECK: vmov.i16 q8, #0x1000 @ encoding: [0x50,0x0a,0xc1,0xef]
+ vmov.i16 q8, #0x1000
+@ CHECK: vmov.i32 q8, #0x20 @ encoding: [0x50,0x00,0xc2,0xef]
+ vmov.i32 q8, #0x20
+@ CHECK: vmov.i32 q8, #0x2000 @ encoding: [0x50,0x02,0xc2,0xef]
+ vmov.i32 q8, #0x2000
+@ CHECK: vmov.i32 q8, #0x200000 @ encoding: [0x50,0x04,0xc2,0xef]
+ vmov.i32 q8, #0x200000
+@ CHECK: vmov.i32 q8, #0x20000000 @ encoding: [0x50,0x06,0xc2,0xef]
+ vmov.i32 q8, #0x20000000
+@ CHECK: vmov.i32 q8, #0x20FF @ encoding: [0x50,0x0c,0xc2,0xef]
+ vmov.i32 q8, #0x20FF
+@ CHECK: vmov.i32 q8, #0x20FFFF @ encoding: [0x50,0x0d,0xc2,0xef]
+ vmov.i32 q8, #0x20FFFF
+@ CHECK: vmov.i64 q8, #0xFF0000FF0000FFFF @ encoding: [0x73,0x0e,0xc1,0xff]
+ vmov.i64 q8, #0xFF0000FF0000FFFF
+@ CHECK: vmvn.i16 d16, #0x10 @ encoding: [0x30,0x08,0xc1,0xef]
+ vmvn.i16 d16, #0x10
+@ CHECK: vmvn.i16 d16, #0x1000 @ encoding: [0x30,0x0a,0xc1,0xef]
+ vmvn.i16 d16, #0x1000
+@ CHECK: vmvn.i32 d16, #0x20 @ encoding: [0x30,0x00,0xc2,0xef]
+ vmvn.i32 d16, #0x20
+@ CHECK: vmvn.i32 d16, #0x2000 @ encoding: [0x30,0x02,0xc2,0xef]
+ vmvn.i32 d16, #0x2000
+@ CHECK: vmvn.i32 d16, #0x200000 @ encoding: [0x30,0x04,0xc2,0xef]
+ vmvn.i32 d16, #0x200000
+@ CHECK: vmvn.i32 d16, #0x20000000 @ encoding: [0x30,0x06,0xc2,0xef]
+ vmvn.i32 d16, #0x20000000
+@ CHECK: vmvn.i32 d16, #0x20FF @ encoding: [0x30,0x0c,0xc2,0xef]
+ vmvn.i32 d16, #0x20FF
+@ CHECK: vmvn.i32 d16, #0x20FFFF @ encoding: [0x30,0x0d,0xc2,0xef]
+ vmvn.i32 d16, #0x20FFFF
+@ CHECK: vmovl.s8 q8, d16 @ encoding: [0x30,0x0a,0xc8,0xef]
+ vmovl.s8 q8, d16
+@ CHECK: vmovl.s16 q8, d16 @ encoding: [0x30,0x0a,0xd0,0xef]
+ vmovl.s16 q8, d16
+@ CHECK: vmovl.s32 q8, d16 @ encoding: [0x30,0x0a,0xe0,0xef]
+ vmovl.s32 q8, d16
+@ CHECK: vmovl.u8 q8, d16 @ encoding: [0x30,0x0a,0xc8,0xff]
+ vmovl.u8 q8, d16
+@ CHECK: vmovl.u16 q8, d16 @ encoding: [0x30,0x0a,0xd0,0xff]
+ vmovl.u16 q8, d16
+@ CHECK: vmovl.u32 q8, d16 @ encoding: [0x30,0x0a,0xe0,0xff]
+ vmovl.u32 q8, d16
+@ CHECK: vmovn.i16 d16, q8 @ encoding: [0x20,0x02,0xf2,0xff]
+ vmovn.i16 d16, q8
+@ CHECK: vmovn.i32 d16, q8 @ encoding: [0x20,0x02,0xf6,0xff]
+ vmovn.i32 d16, q8
+@ CHECK: vmovn.i64 d16, q8 @ encoding: [0x20,0x02,0xfa,0xff]
+ vmovn.i64 d16, q8
+@ CHECK: vqmovn.s16 d16, q8 @ encoding: [0xa0,0x02,0xf2,0xff]
+ vqmovn.s16 d16, q8
+@ CHECK: vqmovn.s32 d16, q8 @ encoding: [0xa0,0x02,0xf6,0xff]
+ vqmovn.s32 d16, q8
+@ CHECK: vqmovn.s64 d16, q8 @ encoding: [0xa0,0x02,0xfa,0xff]
+ vqmovn.s64 d16, q8
+@ CHECK: vqmovn.u16 d16, q8 @ encoding: [0xe0,0x02,0xf2,0xff]
+ vqmovn.u16 d16, q8
+@ CHECK: vqmovn.u32 d16, q8 @ encoding: [0xe0,0x02,0xf6,0xff]
+ vqmovn.u32 d16, q8
+@ CHECK: vqmovn.u64 d16, q8 @ encoding: [0xe0,0x02,0xfa,0xff]
+ vqmovn.u64 d16, q8
+@ CHECK: vqmovun.s16 d16, q8 @ encoding: [0x60,0x02,0xf2,0xff]
+ vqmovun.s16 d16, q8
+@ CHECK: vqmovun.s32 d16, q8 @ encoding: [0x60,0x02,0xf6,0xff]
+ vqmovun.s32 d16, q8
+@ CHECK: vqmovun.s64 d16, q8 @ encoding: [0x60,0x02,0xfa,0xff]
+ vqmovun.s64 d16, q8
+@ CHECK: vmov.s8 r0, d16[1] @ encoding: [0xb0,0x0b,0x50,0xee]
+ vmov.s8 r0, d16[1]
+@ CHECK: vmov.s16 r0, d16[1] @ encoding: [0xf0,0x0b,0x10,0xee]
+ vmov.s16 r0, d16[1]
+@ CHECK: vmov.u8 r0, d16[1] @ encoding: [0xb0,0x0b,0xd0,0xee]
+ vmov.u8 r0, d16[1]
+@ CHECK: vmov.u16 r0, d16[1] @ encoding: [0xf0,0x0b,0x90,0xee]
+ vmov.u16 r0, d16[1]
+@ CHECK: vmov.32 r0, d16[1] @ encoding: [0x90,0x0b,0x30,0xee]
+ vmov.32 r0, d16[1]
+@ CHECK: vmov.8 d16[1], r1 @ encoding: [0xb0,0x1b,0x40,0xee]
+ vmov.8 d16[1], r1
+@ CHECK: vmov.16 d16[1], r1 @ encoding: [0xf0,0x1b,0x00,0xee]
+ vmov.16 d16[1], r1
+@ CHECK: vmov.32 d16[1], r1 @ encoding: [0x90,0x1b,0x20,0xee]
+ vmov.32 d16[1], r1
+@ CHECK: vmov.8 d18[1], r1 @ encoding: [0xb0,0x1b,0x42,0xee]
+ vmov.8 d18[1], r1
+@ CHECK: vmov.16 d18[1], r1 @ encoding: [0xf0,0x1b,0x02,0xee]
+ vmov.16 d18[1], r1
+@ CHECK: vmov.32 d18[1], r1 @ encoding: [0x90,0x1b,0x22,0xee]
+ vmov.32 d18[1], r1
diff --git a/test/MC/ARM/neont2-mul-accum-encoding.s b/test/MC/ARM/neont2-mul-accum-encoding.s
new file mode 100644
index 0000000..e21c67d
--- /dev/null
+++ b/test/MC/ARM/neont2-mul-accum-encoding.s
@@ -0,0 +1,69 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vmla.i8 d16, d18, d17 @ encoding: [0xa1,0x09,0x42,0xef]
+ vmla.i8 d16, d18, d17
+@ CHECK: vmla.i16 d16, d18, d17 @ encoding: [0xa1,0x09,0x52,0xef]
+ vmla.i16 d16, d18, d17
+@ CHECK: vmla.i16 d16, d18, d17 @ encoding: [0xa1,0x09,0x52,0xef]
+ vmla.i32 d16, d18, d17
+@ CHECK: vmla.f32 d16, d18, d17 @ encoding: [0xb1,0x0d,0x42,0xef]
+ vmla.f32 d16, d18, d17
+@ CHECK: vmla.i8 q9, q8, q10 @ encoding: [0xe4,0x29,0x40,0xef]
+ vmla.i8 q9, q8, q10
+@ CHECK: vmla.i16 q9, q8, q10 @ encoding: [0xe4,0x29,0x50,0xef]
+ vmla.i16 q9, q8, q10
+@ CHECK: vmla.i32 q9, q8, q10 @ encoding: [0xe4,0x29,0x60,0xef]
+ vmla.i32 q9, q8, q10
+@ CHECK: vmla.f32 q9, q8, q10 @ encoding: [0xf4,0x2d,0x40,0xef]
+ vmla.f32 q9, q8, q10
+@ CHECK: vmlal.s8 q8, d19, d18 @ encoding: [0xa2,0x08,0xc3,0xef]
+ vmlal.s8 q8, d19, d18
+@ CHECK: vmlal.s16 q8, d19, d18 @ encoding: [0xa2,0x08,0xd3,0xef]
+ vmlal.s16 q8, d19, d18
+@ CHECK: vmlal.s32 q8, d19, d18 @ encoding: [0xa2,0x08,0xe3,0xef]
+ vmlal.s32 q8, d19, d18
+@ CHECK: vmlal.u8 q8, d19, d18 @ encoding: [0xa2,0x08,0xc3,0xff]
+ vmlal.u8 q8, d19, d18
+@ CHECK: vmlal.u16 q8, d19, d18 @ encoding: [0xa2,0x08,0xd3,0xff]
+ vmlal.u16 q8, d19, d18
+@ CHECK: vmlal.u32 q8, d19, d18 @ encoding: [0xa2,0x08,0xe3,0xff]
+ vmlal.u32 q8, d19, d18
+@ CHECK: vqdmlal.s16 q8, d19, d18 @ encoding: [0xa2,0x09,0xd3,0xef]
+ vqdmlal.s16 q8, d19, d18
+@ CHECK: vqdmlal.s32 q8, d19, d18 @ encoding: [0xa2,0x09,0xe3,0xef]
+ vqdmlal.s32 q8, d19, d18
+@ CHECK: vmls.i8 d16, d18, d17 @ encoding: [0xa1,0x09,0x42,0xff]
+ vmls.i8 d16, d18, d17
+@ CHECK: vmls.i16 d16, d18, d17 @ encoding: [0xa1,0x09,0x52,0xff]
+ vmls.i16 d16, d18, d17
+@ CHECK: vmls.i32 d16, d18, d17 @ encoding: [0xa1,0x09,0x62,0xff]
+ vmls.i32 d16, d18, d17
+@ CHECK: vmls.f32 d16, d18, d17 @ encoding: [0xb1,0x0d,0x62,0xef]
+ vmls.f32 d16, d18, d17
+@ CHECK: vmls.i8 q9, q8, q10 @ encoding: [0xe4,0x29,0x40,0xff]
+ vmls.i8 q9, q8, q10
+@ CHECK: vmls.i16 q9, q8, q10 @ encoding: [0xe4,0x29,0x50,0xff]
+ vmls.i16 q9, q8, q10
+@ CHECK: vmls.i32 q9, q8, q10 @ encoding: [0xe4,0x29,0x60,0xff]
+ vmls.i32 q9, q8, q10
+@ CHECK: vmls.f32 q9, q8, q10 @ encoding: [0xf4,0x2d,0x60,0xef]
+ vmls.f32 q9, q8, q10
+@ CHECK: vmlsl.s8 q8, d19, d18 @ encoding: [0xa2,0x0a,0xc3,0xef]
+ vmlsl.s8 q8, d19, d18
+@ CHECK: vmlsl.s16 q8, d19, d18 @ encoding: [0xa2,0x0a,0xd3,0xef]
+ vmlsl.s16 q8, d19, d18
+@ CHECK: vmlsl.s32 q8, d19, d18 @ encoding: [0xa2,0x0a,0xe3,0xef]
+ vmlsl.s32 q8, d19, d18
+@ CHECK: vmlsl.u8 q8, d19, d18 @ encoding: [0xa2,0x0a,0xc3,0xff]
+ vmlsl.u8 q8, d19, d18
+@ CHECK: vmlsl.u16 q8, d19, d18 @ encoding: [0xa2,0x0a,0xd3,0xff]
+ vmlsl.u16 q8, d19, d18
+@ CHECK: vmlsl.u32 q8, d19, d18 @ encoding: [0xa2,0x0a,0xe3,0xff]
+ vmlsl.u32 q8, d19, d18
+@ CHECK: vqdmlsl.s16 q8, d19, d18 @ encoding: [0xa2,0x0b,0xd3,0xef]
+ vqdmlsl.s16 q8, d19, d18
+@ CHECK: vqdmlsl.s32 q8, d19, d18 @ encoding: [0xa2,0x0b,0xe3,0xef]
+ vqdmlsl.s32 q8, d19, d18
diff --git a/test/MC/ARM/neont2-mul-encoding.s b/test/MC/ARM/neont2-mul-encoding.s
new file mode 100644
index 0000000..93ecabb
--- /dev/null
+++ b/test/MC/ARM/neont2-mul-encoding.s
@@ -0,0 +1,58 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vmul.i8 d16, d16, d17 @ encoding: [0x40,0xef,0xb1,0x09]
+ vmul.i8 d16, d16, d17
+@ CHECK: vmul.i16 d16, d16, d17 @ encoding: [0x50,0xef,0xb1,0x09]
+ vmul.i16 d16, d16, d17
+@ CHECK: vmul.i32 d16, d16, d17 @ encoding: [0x60,0xef,0xb1,0x09]
+ vmul.i32 d16, d16, d17
+@ CHECK: vmul.f32 d16, d16, d17 @ encoding: [0x40,0xff,0xb1,0x0d]
+ vmul.f32 d16, d16, d17
+@ CHECK: vmul.i8 q8, q8, q9 @ encoding: [0x40,0xef,0xf2,0x09]
+ vmul.i8 q8, q8, q9
+@ CHECK: vmul.i16 q8, q8, q9 @ encoding: [0x50,0xef,0xf2,0x09]
+ vmul.i16 q8, q8, q9
+@ CHECK: vmul.i32 q8, q8, q9 @ encoding: [0x60,0xef,0xf2,0x09]
+ vmul.i32 q8, q8, q9
+@ CHECK: vmul.f32 q8, q8, q9 @ encoding: [0x40,0xff,0xf2,0x0d]
+ vmul.f32 q8, q8, q9
+@ CHECK: vmul.p8 d16, d16, d17 @ encoding: [0x40,0xff,0xb1,0x09]
+ vmul.p8 d16, d16, d17
+@ CHECK: vmul.p8 q8, q8, q9 @ encoding: [0x40,0xff,0xf2,0x09]
+ vmul.p8 q8, q8, q9
+@ CHECK: vqdmulh.s16 d16, d16, d17 @ encoding: [0x50,0xef,0xa1,0x0b]
+ vqdmulh.s16 d16, d16, d17
+@ CHECK: vqdmulh.s32 d16, d16, d17 @ encoding: [0x60,0xef,0xa1,0x0b]
+ vqdmulh.s32 d16, d16, d17
+@ CHECK: vqdmulh.s16 q8, q8, q9 @ encoding: [0x50,0xef,0xe2,0x0b]
+ vqdmulh.s16 q8, q8, q9
+@ CHECK: vqdmulh.s32 q8, q8, q9 @ encoding: [0x60,0xef,0xe2,0x0b]
+ vqdmulh.s32 q8, q8, q9
+@ CHECK: vqrdmulh.s16 d16, d16, d17 @ encoding: [0x50,0xff,0xa1,0x0b]
+ vqrdmulh.s16 d16, d16, d17
+@ CHECK: vqrdmulh.s32 d16, d16, d17 @ encoding: [0x60,0xff,0xa1,0x0b]
+ vqrdmulh.s32 d16, d16, d17
+@ CHECK: vqrdmulh.s16 q8, q8, q9 @ encoding: [0x50,0xff,0xe2,0x0b]
+ vqrdmulh.s16 q8, q8, q9
+@ CHECK: vqrdmulh.s32 q8, q8, q9 @ encoding: [0x60,0xff,0xe2,0x0b]
+ vqrdmulh.s32 q8, q8, q9
+@ CHECK: vmull.s8 q8, d16, d17 @ encoding: [0xc0,0xef,0xa1,0x0c]
+ vmull.s8 q8, d16, d17
+@ CHECK: vmull.s16 q8, d16, d17 @ encoding: [0xd0,0xef,0xa1,0x0c]
+ vmull.s16 q8, d16, d17
+@ CHECK: vmull.s32 q8, d16, d17 @ encoding: [0xe0,0xef,0xa1,0x0c]
+ vmull.s32 q8, d16, d17
+@ CHECK: vmull.u8 q8, d16, d17 @ encoding: [0xc0,0xff,0xa1,0x0c]
+ vmull.u8 q8, d16, d17
+@ CHECK: vmull.u16 q8, d16, d17 @ encoding: [0xd0,0xff,0xa1,0x0c]
+ vmull.u16 q8, d16, d17
+@ CHECK: vmull.u32 q8, d16, d17 @ encoding: [0xe0,0xff,0xa1,0x0c]
+ vmull.u32 q8, d16, d17
+@ CHECK: vmull.p8 q8, d16, d17 @ encoding: [0xc0,0xef,0xa1,0x0e]
+ vmull.p8 q8, d16, d17
+@ CHECK: vqdmull.s16 q8, d16, d17 @ encoding: [0xd0,0xef,0xa1,0x0d]
+ vqdmull.s16 q8, d16, d17
+@ CHECK: vqdmull.s32 q8, d16, d17 @ encoding: [0xe0,0xef,0xa1,0x0d]
+ vqdmull.s32 q8, d16, d17
diff --git a/test/MC/ARM/neont2-neg-encoding.s b/test/MC/ARM/neont2-neg-encoding.s
new file mode 100644
index 0000000..21dab65
--- /dev/null
+++ b/test/MC/ARM/neont2-neg-encoding.s
@@ -0,0 +1,32 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vneg.s8 d16, d16 @ encoding: [0xf1,0xff,0xa0,0x03]
+ vneg.s8 d16, d16
+@ CHECK: vneg.s16 d16, d16 @ encoding: [0xf5,0xff,0xa0,0x03]
+ vneg.s16 d16, d16
+@ CHECK: vneg.s32 d16, d16 @ encoding: [0xf9,0xff,0xa0,0x03]
+ vneg.s32 d16, d16
+@ CHECK: vneg.f32 d16, d16 @ encoding: [0xf9,0xff,0xa0,0x07]
+ vneg.f32 d16, d16
+@ CHECK: vneg.s8 q8, q8 @ encoding: [0xf1,0xff,0xe0,0x03]
+ vneg.s8 q8, q8
+@ CHECK: vneg.s16 q8, q8 @ encoding: [0xf5,0xff,0xe0,0x03]
+ vneg.s16 q8, q8
+@ CHECK: vneg.s32 q8, q8 @ encoding: [0xf9,0xff,0xe0,0x03]
+ vneg.s32 q8, q8
+@ CHECK: vneg.f32 q8, q8 @ encoding: [0xf9,0xff,0xe0,0x07]
+ vneg.f32 q8, q8
+@ CHECK: vqneg.s8 d16, d16 @ encoding: [0xf0,0xff,0xa0,0x07]
+ vqneg.s8 d16, d16
+@ CHECK: vqneg.s16 d16, d16 @ encoding: [0xf4,0xff,0xa0,0x07]
+ vqneg.s16 d16, d16
+@ CHECK: vqneg.s32 d16, d16 @ encoding: [0xf8,0xff,0xa0,0x07]
+ vqneg.s32 d16, d16
+@ CHECK: vqneg.s8 q8, q8 @ encoding: [0xf0,0xff,0xe0,0x07]
+ vqneg.s8 q8, q8
+@ CHECK: vqneg.s16 q8, q8 @ encoding: [0xf4,0xff,0xe0,0x07]
+ vqneg.s16 q8, q8
+@ CHECK: vqneg.s32 q8, q8 @ encoding: [0xf8,0xff,0xe0,0x07]
+ vqneg.s32 q8, q8
diff --git a/test/MC/ARM/neont2-pairwise-encoding.s b/test/MC/ARM/neont2-pairwise-encoding.s
new file mode 100644
index 0000000..ef90922
--- /dev/null
+++ b/test/MC/ARM/neont2-pairwise-encoding.s
@@ -0,0 +1,89 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vpadd.i8 d16, d17, d16 @ encoding: [0xb0,0x0b,0x41,0xef]
+ vpadd.i8 d16, d17, d16
+@ CHECK: vpadd.i16 d16, d17, d16 @ encoding: [0xb0,0x0b,0x51,0xef]
+ vpadd.i16 d16, d17, d16
+@ CHECK: vpadd.i32 d16, d17, d16 @ encoding: [0xb0,0x0b,0x61,0xef]
+ vpadd.i32 d16, d17, d16
+@ CHECK: vpadd.f32 d16, d16, d17 @ encoding: [0xa1,0x0d,0x40,0xff]
+ vpadd.f32 d16, d16, d17
+@ CHECK: vpaddl.s8 d16, d16 @ encoding: [0x20,0x02,0xf0,0xff]
+ vpaddl.s8 d16, d16
+@ CHECK: vpaddl.s16 d16, d16 @ encoding: [0x20,0x02,0xf4,0xff]
+ vpaddl.s16 d16, d16
+@ CHECK: vpaddl.s32 d16, d16 @ encoding: [0x20,0x02,0xf8,0xff]
+ vpaddl.s32 d16, d16
+@ CHECK: vpaddl.u8 d16, d16 @ encoding: [0xa0,0x02,0xf0,0xff]
+ vpaddl.u8 d16, d16
+@ CHECK: vpaddl.u16 d16, d16 @ encoding: [0xa0,0x02,0xf4,0xff]
+ vpaddl.u16 d16, d16
+@ CHECK: vpaddl.u32 d16, d16 @ encoding: [0xa0,0x02,0xf8,0xff]
+ vpaddl.u32 d16, d16
+@ CHECK: vpaddl.s8 q8, q8 @ encoding: [0x60,0x02,0xf0,0xff]
+ vpaddl.s8 q8, q8
+@ CHECK: vpaddl.s16 q8, q8 @ encoding: [0x60,0x02,0xf4,0xff]
+ vpaddl.s16 q8, q8
+@ CHECK: vpaddl.s32 q8, q8 @ encoding: [0x60,0x02,0xf8,0xff]
+ vpaddl.s32 q8, q8
+@ CHECK: vpaddl.u8 q8, q8 @ encoding: [0xe0,0x02,0xf0,0xff]
+ vpaddl.u8 q8, q8
+@ CHECK: vpaddl.u16 q8, q8 @ encoding: [0xe0,0x02,0xf4,0xff]
+ vpaddl.u16 q8, q8
+@ CHECK: vpaddl.u32 q8, q8 @ encoding: [0xe0,0x02,0xf8,0xff]
+ vpaddl.u32 q8, q8
+@ CHECK: vpadal.s8 d16, d17 @ encoding: [0x21,0x06,0xf0,0xff]
+ vpadal.s8 d16, d17
+@ CHECK: vpadal.s16 d16, d17 @ encoding: [0x21,0x06,0xf4,0xff]
+ vpadal.s16 d16, d17
+@ CHECK: vpadal.s32 d16, d17 @ encoding: [0x21,0x06,0xf8,0xff]
+ vpadal.s32 d16, d17
+@ CHECK: vpadal.u8 d16, d17 @ encoding: [0xa1,0x06,0xf0,0xff]
+ vpadal.u8 d16, d17
+@ CHECK: vpadal.u16 d16, d17 @ encoding: [0xa1,0x06,0xf4,0xff]
+ vpadal.u16 d16, d17
+@ CHECK: vpadal.u32 d16, d17 @ encoding: [0xa1,0x06,0xf8,0xff]
+ vpadal.u32 d16, d17
+@ CHECK: vpadal.s8 q9, q8 @ encoding: [0x60,0x26,0xf0,0xff]
+ vpadal.s8 q9, q8
+@ CHECK: vpadal.s16 q9, q8 @ encoding: [0x60,0x26,0xf4,0xff]
+ vpadal.s16 q9, q8
+@ CHECK: vpadal.s32 q9, q8 @ encoding: [0x60,0x26,0xf8,0xff]
+ vpadal.s32 q9, q8
+@ CHECK: vpadal.u8 q9, q8 @ encoding: [0xe0,0x26,0xf0,0xff]
+ vpadal.u8 q9, q8
+@ CHECK: vpadal.u16 q9, q8 @ encoding: [0xe0,0x26,0xf4,0xff]
+ vpadal.u16 q9, q8
+@ CHECK: vpadal.u32 q9, q8 @ encoding: [0xe0,0x26,0xf8,0xff]
+ vpadal.u32 q9, q8
+@ CHECK: vpmin.s8 d16, d16, d17 @ encoding: [0xb1,0x0a,0x40,0xef]
+ vpmin.s8 d16, d16, d17
+@ CHECK: vpmin.s16 d16, d16, d17 @ encoding: [0xb1,0x0a,0x50,0xef]
+ vpmin.s16 d16, d16, d17
+@ CHECK: vpmin.s32 d16, d16, d17 @ encoding: [0xb1,0x0a,0x60,0xef]
+ vpmin.s32 d16, d16, d17
+@ CHECK: vpmin.u8 d16, d16, d17 @ encoding: [0xb1,0x0a,0x40,0xff]
+ vpmin.u8 d16, d16, d17
+@ CHECK: vpmin.u16 d16, d16, d17 @ encoding: [0xb1,0x0a,0x50,0xff]
+ vpmin.u16 d16, d16, d17
+@ CHECK: vpmin.u32 d16, d16, d17 @ encoding: [0xb1,0x0a,0x60,0xff]
+ vpmin.u32 d16, d16, d17
+@ CHECK: vpmin.f32 d16, d16, d17 @ encoding: [0xa1,0x0f,0x60,0xff]
+ vpmin.f32 d16, d16, d17
+@ CHECK: vpmax.s8 d16, d16, d17 @ encoding: [0xa1,0x0a,0x40,0xef]
+ vpmax.s8 d16, d16, d17
+@ CHECK: vpmax.s16 d16, d16, d17 @ encoding: [0xa1,0x0a,0x50,0xef]
+ vpmax.s16 d16, d16, d17
+@ CHECK: vpmax.s32 d16, d16, d17 @ encoding: [0xa1,0x0a,0x60,0xef]
+ vpmax.s32 d16, d16, d17
+@ CHECK: vpmax.u8 d16, d16, d17 @ encoding: [0xa1,0x0a,0x40,0xff]
+ vpmax.u8 d16, d16, d17
+@ CHECK: vpmax.u16 d16, d16, d17 @ encoding: [0xa1,0x0a,0x50,0xff]
+ vpmax.u16 d16, d16, d17
+@ CHECK: vpmax.u32 d16, d16, d17 @ encoding: [0xa1,0x0a,0x60,0xff]
+ vpmax.u32 d16, d16, d17
+@ CHECK: vpmax.f32 d16, d16, d17 @ encoding: [0xa1,0x0f,0x40,0xff]
+ vpmax.f32 d16, d16, d17
diff --git a/test/MC/ARM/neont2-reciprocal-encoding.s b/test/MC/ARM/neont2-reciprocal-encoding.s
new file mode 100644
index 0000000..8ea77d7
--- /dev/null
+++ b/test/MC/ARM/neont2-reciprocal-encoding.s
@@ -0,0 +1,28 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vrecpe.u32 d16, d16 @ encoding: [0xfb,0xff,0x20,0x04]
+ vrecpe.u32 d16, d16
+@ CHECK: vrecpe.u32 q8, q8 @ encoding: [0xfb,0xff,0x60,0x04]
+ vrecpe.u32 q8, q8
+@ CHECK: vrecpe.f32 d16, d16 @ encoding: [0xfb,0xff,0x20,0x05]
+ vrecpe.f32 d16, d16
+@ CHECK: vrecpe.f32 q8, q8 @ encoding: [0xfb,0xff,0x60,0x05]
+ vrecpe.f32 q8, q8
+@ CHECK: vrecps.f32 d16, d16, d17 @ encoding: [0x40,0xef,0xb1,0x0f]
+ vrecps.f32 d16, d16, d17
+@ CHECK: vrecps.f32 q8, q8, q9 @ encoding: [0x40,0xef,0xf2,0x0f]
+ vrecps.f32 q8, q8, q9
+@ CHECK: vrsqrte.u32 d16, d16 @ encoding: [0xfb,0xff,0xa0,0x04]
+ vrsqrte.u32 d16, d16
+@ CHECK: vrsqrte.u32 q8, q8 @ encoding: [0xfb,0xff,0xe0,0x04]
+ vrsqrte.u32 q8, q8
+@ CHECK: vrsqrte.f32 d16, d16 @ encoding: [0xfb,0xff,0xa0,0x05]
+ vrsqrte.f32 d16, d16
+@ CHECK: vrsqrte.f32 q8, q8 @ encoding: [0xfb,0xff,0xe0,0x05]
+ vrsqrte.f32 q8, q8
+@ CHECK: vrsqrts.f32 d16, d16, d17 @ encoding: [0x60,0xef,0xb1,0x0f]
+ vrsqrts.f32 d16, d16, d17
+@ CHECK: vrsqrts.f32 q8, q8, q9 @ encoding: [0x60,0xef,0xf2,0x0f]
+ vrsqrts.f32 q8, q8, q9
diff --git a/test/MC/ARM/neont2-reverse-encoding.s b/test/MC/ARM/neont2-reverse-encoding.s
new file mode 100644
index 0000000..f37d72d
--- /dev/null
+++ b/test/MC/ARM/neont2-reverse-encoding.s
@@ -0,0 +1,26 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vrev64.8 d16, d16 @ encoding: [0xf0,0xff,0x20,0x00]
+ vrev64.8 d16, d16
+@ CHECK: vrev64.16 d16, d16 @ encoding: [0xf4,0xff,0x20,0x00]
+ vrev64.16 d16, d16
+@ CHECK: vrev64.32 d16, d16 @ encoding: [0xf8,0xff,0x20,0x00]
+ vrev64.32 d16, d16
+@ CHECK: vrev64.8 q8, q8 @ encoding: [0xf0,0xff,0x60,0x00]
+ vrev64.8 q8, q8
+@ CHECK: vrev64.16 q8, q8 @ encoding: [0xf4,0xff,0x60,0x00]
+ vrev64.16 q8, q8
+@ CHECK: vrev64.32 q8, q8 @ encoding: [0xf8,0xff,0x60,0x00]
+ vrev64.32 q8, q8
+@ CHECK: vrev32.8 d16, d16 @ encoding: [0xf0,0xff,0xa0,0x00]
+ vrev32.8 d16, d16
+@ CHECK: vrev32.16 d16, d16 @ encoding: [0xf4,0xff,0xa0,0x00]
+ vrev32.16 d16, d16
+@ CHECK: vrev32.8 q8, q8 @ encoding: [0xf0,0xff,0xe0,0x00]
+ vrev32.8 q8, q8
+@ CHECK: vrev32.16 q8, q8 @ encoding: [0xf4,0xff,0xe0,0x00]
+ vrev32.16 q8, q8
+@ CHECK: vrev16.8 d16, d16 @ encoding: [0xf0,0xff,0x20,0x01]
+ vrev16.8 d16, d16
+@ CHECK: vrev16.8 q8, q8 @ encoding: [0xf0,0xff,0x60,0x01]
+ vrev16.8 q8, q8
diff --git a/test/MC/ARM/neont2-satshift-encoding.s b/test/MC/ARM/neont2-satshift-encoding.s
new file mode 100644
index 0000000..34e50f1
--- /dev/null
+++ b/test/MC/ARM/neont2-satshift-encoding.s
@@ -0,0 +1,152 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vqshl.s8 d16, d16, d17 @ encoding: [0x41,0xef,0xb0,0x04]
+ vqshl.s8 d16, d16, d17
+@ CHECK: vqshl.s16 d16, d16, d17 @ encoding: [0x51,0xef,0xb0,0x04]
+ vqshl.s16 d16, d16, d17
+@ CHECK: vqshl.s32 d16, d16, d17 @ encoding: [0x61,0xef,0xb0,0x04]
+ vqshl.s32 d16, d16, d17
+@ CHECK: vqshl.s64 d16, d16, d17 @ encoding: [0x71,0xef,0xb0,0x04]
+ vqshl.s64 d16, d16, d17
+@ CHECK: vqshl.u8 d16, d16, d17 @ encoding: [0x41,0xff,0xb0,0x04]
+ vqshl.u8 d16, d16, d17
+@ CHECK: vqshl.u16 d16, d16, d17 @ encoding: [0x51,0xff,0xb0,0x04]
+ vqshl.u16 d16, d16, d17
+@ CHECK: vqshl.u32 d16, d16, d17 @ encoding: [0x61,0xff,0xb0,0x04]
+ vqshl.u32 d16, d16, d17
+@ CHECK: vqshl.u64 d16, d16, d17 @ encoding: [0x71,0xff,0xb0,0x04]
+ vqshl.u64 d16, d16, d17
+@ CHECK: vqshl.s8 q8, q8, q9 @ encoding: [0x42,0xef,0xf0,0x04]
+ vqshl.s8 q8, q8, q9
+@ CHECK: vqshl.s16 q8, q8, q9 @ encoding: [0x52,0xef,0xf0,0x04]
+ vqshl.s16 q8, q8, q9
+@ CHECK: vqshl.s32 q8, q8, q9 @ encoding: [0x62,0xef,0xf0,0x04]
+ vqshl.s32 q8, q8, q9
+@ CHECK: vqshl.s64 q8, q8, q9 @ encoding: [0x72,0xef,0xf0,0x04]
+ vqshl.s64 q8, q8, q9
+@ CHECK: vqshl.u8 q8, q8, q9 @ encoding: [0x42,0xff,0xf0,0x04]
+ vqshl.u8 q8, q8, q9
+@ CHECK: vqshl.u16 q8, q8, q9 @ encoding: [0x52,0xff,0xf0,0x04]
+ vqshl.u16 q8, q8, q9
+@ CHECK: vqshl.u32 q8, q8, q9 @ encoding: [0x62,0xff,0xf0,0x04]
+ vqshl.u32 q8, q8, q9
+@ CHECK: vqshl.u64 q8, q8, q9 @ encoding: [0x72,0xff,0xf0,0x04]
+ vqshl.u64 q8, q8, q9
+@ CHECK: vqshl.s8 d16, d16, #7 @ encoding: [0xcf,0xef,0x30,0x07]
+ vqshl.s8 d16, d16, #7
+@ CHECK: vqshl.s16 d16, d16, #15 @ encoding: [0xdf,0xef,0x30,0x07]
+ vqshl.s16 d16, d16, #15
+@ CHECK: vqshl.s32 d16, d16, #31 @ encoding: [0xff,0xef,0x30,0x07]
+ vqshl.s32 d16, d16, #31
+@ CHECK: vqshl.s64 d16, d16, #63 @ encoding: [0xff,0xef,0xb0,0x07]
+ vqshl.s64 d16, d16, #63
+@ CHECK: vqshl.u8 d16, d16, #7 @ encoding: [0xcf,0xff,0x30,0x07]
+ vqshl.u8 d16, d16, #7
+@ CHECK: vqshl.u16 d16, d16, #15 @ encoding: [0xdf,0xff,0x30,0x07]
+ vqshl.u16 d16, d16, #15
+@ CHECK: vqshl.u32 d16, d16, #31 @ encoding: [0xff,0xff,0x30,0x07]
+ vqshl.u32 d16, d16, #31
+@ CHECK: vqshl.u64 d16, d16, #63 @ encoding: [0xff,0xff,0xb0,0x07]
+ vqshl.u64 d16, d16, #63
+@ CHECK: vqshlu.s8 d16, d16, #7 @ encoding: [0xcf,0xff,0x30,0x06]
+ vqshlu.s8 d16, d16, #7
+@ CHECK: vqshlu.s16 d16, d16, #15 @ encoding: [0xdf,0xff,0x30,0x06]
+ vqshlu.s16 d16, d16, #15
+@ CHECK: vqshlu.s32 d16, d16, #31 @ encoding: [0xff,0xff,0x30,0x06]
+ vqshlu.s32 d16, d16, #31
+@ CHECK: vqshlu.s64 d16, d16, #63 @ encoding: [0xff,0xff,0xb0,0x06]
+ vqshlu.s64 d16, d16, #63
+@ CHECK: vqshl.s8 q8, q8, #7 @ encoding: [0xcf,0xef,0x70,0x07]
+ vqshl.s8 q8, q8, #7
+@ CHECK: vqshl.s16 q8, q8, #15 @ encoding: [0xdf,0xef,0x70,0x07]
+ vqshl.s16 q8, q8, #15
+@ CHECK: vqshl.s32 q8, q8, #31 @ encoding: [0xff,0xef,0x70,0x07]
+ vqshl.s32 q8, q8, #31
+@ CHECK: vqshl.s64 q8, q8, #63 @ encoding: [0xff,0xef,0xf0,0x07]
+ vqshl.s64 q8, q8, #63
+@ CHECK: vqshl.u8 q8, q8, #7 @ encoding: [0xcf,0xff,0x70,0x07]
+ vqshl.u8 q8, q8, #7
+@ CHECK: vqshl.u16 q8, q8, #15 @ encoding: [0xdf,0xff,0x70,0x07]
+ vqshl.u16 q8, q8, #15
+@ CHECK: vqshl.u32 q8, q8, #31 @ encoding: [0xff,0xff,0x70,0x07]
+ vqshl.u32 q8, q8, #31
+@ CHECK: vqshl.u64 q8, q8, #63 @ encoding: [0xff,0xff,0xf0,0x07]
+ vqshl.u64 q8, q8, #63
+@ CHECK: vqshlu.s8 q8, q8, #7 @ encoding: [0xcf,0xff,0x70,0x06]
+ vqshlu.s8 q8, q8, #7
+@ CHECK: vqshlu.s16 q8, q8, #15 @ encoding: [0xdf,0xff,0x70,0x06]
+ vqshlu.s16 q8, q8, #15
+@ CHECK: vqshlu.s32 q8, q8, #31 @ encoding: [0xff,0xff,0x70,0x06]
+ vqshlu.s32 q8, q8, #31
+@ CHECK: vqshlu.s64 q8, q8, #63 @ encoding: [0xff,0xff,0xf0,0x06]
+ vqshlu.s64 q8, q8, #63
+@ CHECK: vqrshl.s8 d16, d16, d17 @ encoding: [0x41,0xef,0xb0,0x05]
+ vqrshl.s8 d16, d16, d17
+@ CHECK: vqrshl.s16 d16, d16, d17 @ encoding: [0x51,0xef,0xb0,0x05]
+ vqrshl.s16 d16, d16, d17
+@ CHECK: vqrshl.s32 d16, d16, d17 @ encoding: [0x61,0xef,0xb0,0x05]
+ vqrshl.s32 d16, d16, d17
+@ CHECK: vqrshl.s64 d16, d16, d17 @ encoding: [0x71,0xef,0xb0,0x05]
+ vqrshl.s64 d16, d16, d17
+@ CHECK: vqrshl.u8 d16, d16, d17 @ encoding: [0x41,0xff,0xb0,0x05]
+ vqrshl.u8 d16, d16, d17
+@ CHECK: vqrshl.u16 d16, d16, d17 @ encoding: [0x51,0xff,0xb0,0x05]
+ vqrshl.u16 d16, d16, d17
+@ CHECK: vqrshl.u32 d16, d16, d17 @ encoding: [0x61,0xff,0xb0,0x05]
+ vqrshl.u32 d16, d16, d17
+@ CHECK: vqrshl.u64 d16, d16, d17 @ encoding: [0x71,0xff,0xb0,0x05]
+ vqrshl.u64 d16, d16, d17
+@ CHECK: vqrshl.s8 q8, q8, q9 @ encoding: [0x42,0xef,0xf0,0x05]
+ vqrshl.s8 q8, q8, q9
+@ CHECK: vqrshl.s16 q8, q8, q9 @ encoding: [0x52,0xef,0xf0,0x05]
+ vqrshl.s16 q8, q8, q9
+@ CHECK: vqrshl.s32 q8, q8, q9 @ encoding: [0x62,0xef,0xf0,0x05]
+ vqrshl.s32 q8, q8, q9
+@ CHECK: vqrshl.s64 q8, q8, q9 @ encoding: [0x72,0xef,0xf0,0x05]
+ vqrshl.s64 q8, q8, q9
+@ CHECK: vqrshl.u8 q8, q8, q9 @ encoding: [0x42,0xff,0xf0,0x05]
+ vqrshl.u8 q8, q8, q9
+@ CHECK: vqrshl.u16 q8, q8, q9 @ encoding: [0x52,0xff,0xf0,0x05]
+ vqrshl.u16 q8, q8, q9
+@ CHECK: vqrshl.u32 q8, q8, q9 @ encoding: [0x62,0xff,0xf0,0x05]
+ vqrshl.u32 q8, q8, q9
+@ CHECK: vqrshl.u64 q8, q8, q9 @ encoding: [0x72,0xff,0xf0,0x05]
+ vqrshl.u64 q8, q8, q9
+@ CHECK: vqshrn.s16 d16, q8, #8 @ encoding: [0xc8,0xef,0x30,0x09]
+ vqshrn.s16 d16, q8, #8
+@ CHECK: vqshrn.s32 d16, q8, #16 @ encoding: [0xd0,0xef,0x30,0x09]
+ vqshrn.s32 d16, q8, #16
+@ CHECK: vqshrn.s64 d16, q8, #32 @ encoding: [0xe0,0xef,0x30,0x09]
+ vqshrn.s64 d16, q8, #32
+@ CHECK: vqshrn.u16 d16, q8, #8 @ encoding: [0xc8,0xff,0x30,0x09]
+ vqshrn.u16 d16, q8, #8
+@ CHECK: vqshrn.u32 d16, q8, #16 @ encoding: [0xd0,0xff,0x30,0x09]
+ vqshrn.u32 d16, q8, #16
+@ CHECK: vqshrn.u64 d16, q8, #32 @ encoding: [0xe0,0xff,0x30,0x09]
+ vqshrn.u64 d16, q8, #32
+@ CHECK: vqshrun.s16 d16, q8, #8 @ encoding: [0xc8,0xff,0x30,0x08]
+ vqshrun.s16 d16, q8, #8
+@ CHECK: vqshrun.s32 d16, q8, #16 @ encoding: [0xd0,0xff,0x30,0x08]
+ vqshrun.s32 d16, q8, #16
+@ CHECK: vqshrun.s64 d16, q8, #32 @ encoding: [0xe0,0xff,0x30,0x08]
+ vqshrun.s64 d16, q8, #32
+@ CHECK: vqrshrn.s16 d16, q8, #8 @ encoding: [0xc8,0xef,0x70,0x09]
+ vqrshrn.s16 d16, q8, #8
+@ CHECK: vqrshrn.s32 d16, q8, #16 @ encoding: [0xd0,0xef,0x70,0x09]
+ vqrshrn.s32 d16, q8, #16
+@ CHECK: vqrshrn.s64 d16, q8, #32 @ encoding: [0xe0,0xef,0x70,0x09]
+ vqrshrn.s64 d16, q8, #32
+@ CHECK: vqrshrn.u16 d16, q8, #8 @ encoding: [0xc8,0xff,0x70,0x09]
+ vqrshrn.u16 d16, q8, #8
+@ CHECK: vqrshrn.u32 d16, q8, #16 @ encoding: [0xd0,0xff,0x70,0x09]
+ vqrshrn.u32 d16, q8, #16
+@ CHECK: vqrshrn.u64 d16, q8, #32 @ encoding: [0xe0,0xff,0x70,0x09]
+ vqrshrn.u64 d16, q8, #32
+@ CHECK: vqrshrun.s16 d16, q8, #8 @ encoding: [0xc8,0xff,0x70,0x08]
+ vqrshrun.s16 d16, q8, #8
+@ CHECK: vqrshrun.s32 d16, q8, #16 @ encoding: [0xd0,0xff,0x70,0x08]
+ vqrshrun.s32 d16, q8, #16
+@ CHECK: vqrshrun.s64 d16, q8, #32 @ encoding: [0xe0,0xff,0x70,0x08]
+ vqrshrun.s64 d16, q8, #32
diff --git a/test/MC/ARM/neont2-shift-encoding.s b/test/MC/ARM/neont2-shift-encoding.s
new file mode 100644
index 0000000..d098f54
--- /dev/null
+++ b/test/MC/ARM/neont2-shift-encoding.s
@@ -0,0 +1,162 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vshl.u8 d16, d17, d16 @ encoding: [0x40,0xff,0xa1,0x04]
+ vshl.u8 d16, d17, d16
+@ CHECK: vshl.u16 d16, d17, d16 @ encoding: [0x50,0xff,0xa1,0x04]
+ vshl.u16 d16, d17, d16
+@ CHECK: vshl.u32 d16, d17, d16 @ encoding: [0x60,0xff,0xa1,0x04]
+ vshl.u32 d16, d17, d16
+@ CHECK: vshl.u64 d16, d17, d16 @ encoding: [0x70,0xff,0xa1,0x04]
+ vshl.u64 d16, d17, d16
+@ CHECK: vshl.i8 d16, d16, #7 @ encoding: [0xcf,0xef,0x30,0x05]
+ vshl.i8 d16, d16, #7
+@ CHECK: vshl.i16 d16, d16, #15 @ encoding: [0xdf,0xef,0x30,0x05]
+ vshl.i16 d16, d16, #15
+@ CHECK: vshl.i32 d16, d16, #31 @ encoding: [0xff,0xef,0x30,0x05]
+ vshl.i32 d16, d16, #31
+@ CHECK: vshl.i64 d16, d16, #63 @ encoding: [0xff,0xef,0xb0,0x05]
+ vshl.i64 d16, d16, #63
+@ CHECK: vshl.u8 q8, q9, q8 @ encoding: [0x40,0xff,0xe2,0x04]
+ vshl.u8 q8, q9, q8
+@ CHECK: vshl.u16 q8, q9, q8 @ encoding: [0x50,0xff,0xe2,0x04]
+ vshl.u16 q8, q9, q8
+@ CHECK: vshl.u32 q8, q9, q8 @ encoding: [0x60,0xff,0xe2,0x04]
+ vshl.u32 q8, q9, q8
+@ CHECK: vshl.u64 q8, q9, q8 @ encoding: [0x70,0xff,0xe2,0x04]
+ vshl.u64 q8, q9, q8
+@ CHECK: vshl.i8 q8, q8, #7 @ encoding: [0xcf,0xef,0x70,0x05]
+ vshl.i8 q8, q8, #7
+@ CHECK: vshl.i16 q8, q8, #15 @ encoding: [0xdf,0xef,0x70,0x05]
+ vshl.i16 q8, q8, #15
+@ CHECK: vshl.i32 q8, q8, #31 @ encoding: [0xff,0xef,0x70,0x05]
+ vshl.i32 q8, q8, #31
+@ CHECK: vshl.i64 q8, q8, #63 @ encoding: [0xff,0xef,0xf0,0x05]
+ vshl.i64 q8, q8, #63
+@ CHECK: vshr.u8 d16, d16, #8 @ encoding: [0xc8,0xff,0x30,0x00]
+ vshr.u8 d16, d16, #8
+@ CHECK: vshr.u16 d16, d16, #16 @ encoding: [0xd0,0xff,0x30,0x00]
+ vshr.u16 d16, d16, #16
+@ CHECK: vshr.u32 d16, d16, #32 @ encoding: [0xe0,0xff,0x30,0x00]
+ vshr.u32 d16, d16, #32
+@ CHECK: vshr.u64 d16, d16, #64 @ encoding: [0xc0,0xff,0xb0,0x00]
+ vshr.u64 d16, d16, #64
+@ CHECK: vshr.u8 q8, q8, #8 @ encoding: [0xc8,0xff,0x70,0x00]
+ vshr.u8 q8, q8, #8
+@ CHECK: vshr.u16 q8, q8, #16 @ encoding: [0xd0,0xff,0x70,0x00]
+ vshr.u16 q8, q8, #16
+@ CHECK: vshr.u32 q8, q8, #32 @ encoding: [0xe0,0xff,0x70,0x00]
+ vshr.u32 q8, q8, #32
+@ CHECK: vshr.u64 q8, q8, #64 @ encoding: [0xc0,0xff,0xf0,0x00]
+ vshr.u64 q8, q8, #64
+@ CHECK: vshr.s8 d16, d16, #8 @ encoding: [0xc8,0xef,0x30,0x00]
+ vshr.s8 d16, d16, #8
+@ CHECK: vshr.s16 d16, d16, #16 @ encoding: [0xd0,0xef,0x30,0x00]
+ vshr.s16 d16, d16, #16
+@ CHECK: vshr.s32 d16, d16, #32 @ encoding: [0xe0,0xef,0x30,0x00]
+ vshr.s32 d16, d16, #32
+@ CHECK: vshr.s64 d16, d16, #64 @ encoding: [0xc0,0xef,0xb0,0x00]
+ vshr.s64 d16, d16, #64
+@ CHECK: vshr.s8 q8, q8, #8 @ encoding: [0xc8,0xef,0x70,0x00]
+ vshr.s8 q8, q8, #8
+@ CHECK: vshr.s16 q8, q8, #16 @ encoding: [0xd0,0xef,0x70,0x00]
+ vshr.s16 q8, q8, #16
+@ CHECK: vshr.s32 q8, q8, #32 @ encoding: [0xe0,0xef,0x70,0x00]
+ vshr.s32 q8, q8, #32
+@ CHECK: vshr.s64 q8, q8, #64 @ encoding: [0xc0,0xef,0xf0,0x00]
+ vshr.s64 q8, q8, #64
+@ CHECK: vshll.s8 q8, d16, #7 @ encoding: [0xcf,0xef,0x30,0x0a]
+ vshll.s8 q8, d16, #7
+@ CHECK: vshll.s16 q8, d16, #15 @ encoding: [0xdf,0xef,0x30,0x0a]
+ vshll.s16 q8, d16, #15
+@ CHECK: vshll.s32 q8, d16, #31 @ encoding: [0xff,0xef,0x30,0x0a]
+ vshll.s32 q8, d16, #31
+@ CHECK: vshll.u8 q8, d16, #7 @ encoding: [0xcf,0xff,0x30,0x0a]
+ vshll.u8 q8, d16, #7
+@ CHECK: vshll.u16 q8, d16, #15 @ encoding: [0xdf,0xff,0x30,0x0a]
+ vshll.u16 q8, d16, #15
+@ CHECK: vshll.u32 q8, d16, #31 @ encoding: [0xff,0xff,0x30,0x0a]
+ vshll.u32 q8, d16, #31
+@ CHECK: vshll.i8 q8, d16, #8 @ encoding: [0xf2,0xff,0x20,0x03]
+ vshll.i8 q8, d16, #8
+@ CHECK: vshll.i16 q8, d16, #16 @ encoding: [0xf6,0xff,0x20,0x03]
+ vshll.i16 q8, d16, #16
+@ CHECK: vshll.i32 q8, d16, #32 @ encoding: [0xfa,0xff,0x20,0x03]
+ vshll.i32 q8, d16, #32
+@ CHECK: vshrn.i16 d16, q8, #8 @ encoding: [0xc8,0xef,0x30,0x08]
+ vshrn.i16 d16, q8, #8
+@ CHECK: vshrn.i32 d16, q8, #16 @ encoding: [0xd0,0xef,0x30,0x08]
+ vshrn.i32 d16, q8, #16
+@ CHECK: vshrn.i64 d16, q8, #32 @ encoding: [0xe0,0xef,0x30,0x08]
+ vshrn.i64 d16, q8, #32
+@ CHECK: vrshl.s8 d16, d17, d16 @ encoding: [0x40,0xef,0xa1,0x05]
+ vrshl.s8 d16, d17, d16
+@ CHECK: vrshl.s16 d16, d17, d16 @ encoding: [0x50,0xef,0xa1,0x05]
+ vrshl.s16 d16, d17, d16
+@ CHECK: vrshl.s32 d16, d17, d16 @ encoding: [0x60,0xef,0xa1,0x05]
+ vrshl.s32 d16, d17, d16
+@ CHECK: vrshl.s64 d16, d17, d16 @ encoding: [0x70,0xef,0xa1,0x05]
+ vrshl.s64 d16, d17, d16
+@ CHECK: vrshl.u8 d16, d17, d16 @ encoding: [0x40,0xff,0xa1,0x05]
+ vrshl.u8 d16, d17, d16
+@ CHECK: vrshl.u16 d16, d17, d16 @ encoding: [0x50,0xff,0xa1,0x05]
+ vrshl.u16 d16, d17, d16
+@ CHECK: vrshl.u32 d16, d17, d16 @ encoding: [0x60,0xff,0xa1,0x05]
+ vrshl.u32 d16, d17, d16
+@ CHECK: vrshl.u64 d16, d17, d16 @ encoding: [0x70,0xff,0xa1,0x05]
+ vrshl.u64 d16, d17, d16
+@ CHECK: vrshl.s8 q8, q9, q8 @ encoding: [0x40,0xef,0xe2,0x05]
+ vrshl.s8 q8, q9, q8
+@ CHECK: vrshl.s16 q8, q9, q8 @ encoding: [0x50,0xef,0xe2,0x05]
+ vrshl.s16 q8, q9, q8
+@ CHECK: vrshl.s32 q8, q9, q8 @ encoding: [0x60,0xef,0xe2,0x05]
+ vrshl.s32 q8, q9, q8
+@ CHECK: vrshl.s64 q8, q9, q8 @ encoding: [0x70,0xef,0xe2,0x05]
+ vrshl.s64 q8, q9, q8
+@ CHECK: vrshl.u8 q8, q9, q8 @ encoding: [0x40,0xff,0xe2,0x05]
+ vrshl.u8 q8, q9, q8
+@ CHECK: vrshl.u16 q8, q9, q8 @ encoding: [0x50,0xff,0xe2,0x05]
+ vrshl.u16 q8, q9, q8
+@ CHECK: vrshl.u32 q8, q9, q8 @ encoding: [0x60,0xff,0xe2,0x05]
+ vrshl.u32 q8, q9, q8
+@ CHECK: vrshl.u64 q8, q9, q8 @ encoding: [0x70,0xff,0xe2,0x05]
+ vrshl.u64 q8, q9, q8
+@ CHECK: vrshr.s8 d16, d16, #8 @ encoding: [0xc8,0xef,0x30,0x02]
+ vrshr.s8 d16, d16, #8
+@ CHECK: vrshr.s16 d16, d16, #16 @ encoding: [0xd0,0xef,0x30,0x02]
+ vrshr.s16 d16, d16, #16
+@ CHECK: vrshr.s32 d16, d16, #32 @ encoding: [0xe0,0xef,0x30,0x02]
+ vrshr.s32 d16, d16, #32
+@ CHECK: vrshr.s64 d16, d16, #64 @ encoding: [0xc0,0xef,0xb0,0x02]
+ vrshr.s64 d16, d16, #64
+@ CHECK: vrshr.u8 d16, d16, #8 @ encoding: [0xc8,0xff,0x30,0x02]
+ vrshr.u8 d16, d16, #8
+@ CHECK: vrshr.u16 d16, d16, #16 @ encoding: [0xd0,0xff,0x30,0x02]
+ vrshr.u16 d16, d16, #16
+@ CHECK: vrshr.u32 d16, d16, #32 @ encoding: [0xe0,0xff,0x30,0x02]
+ vrshr.u32 d16, d16, #32
+@ CHECK: vrshr.u64 d16, d16, #64 @ encoding: [0xc0,0xff,0xb0,0x02]
+ vrshr.u64 d16, d16, #64
+@ CHECK: vrshr.s8 q8, q8, #8 @ encoding: [0xc8,0xef,0x70,0x02]
+ vrshr.s8 q8, q8, #8
+@ CHECK: vrshr.s16 q8, q8, #16 @ encoding: [0xd0,0xef,0x70,0x02]
+ vrshr.s16 q8, q8, #16
+@ CHECK: vrshr.s32 q8, q8, #32 @ encoding: [0xe0,0xef,0x70,0x02]
+ vrshr.s32 q8, q8, #32
+@ CHECK: vrshr.s64 q8, q8, #64 @ encoding: [0xc0,0xef,0xf0,0x02]
+ vrshr.s64 q8, q8, #64
+@ CHECK: vrshr.u8 q8, q8, #8 @ encoding: [0xc8,0xff,0x70,0x02]
+ vrshr.u8 q8, q8, #8
+@ CHECK: vrshr.u16 q8, q8, #16 @ encoding: [0xd0,0xff,0x70,0x02]
+ vrshr.u16 q8, q8, #16
+@ CHECK: vrshr.u32 q8, q8, #32 @ encoding: [0xe0,0xff,0x70,0x02]
+ vrshr.u32 q8, q8, #32
+@ CHECK: vrshr.u64 q8, q8, #64 @ encoding: [0xc0,0xff,0xf0,0x02]
+ vrshr.u64 q8, q8, #64
+@ CHECK: vrshrn.i16 d16, q8, #8 @ encoding: [0xc8,0xef,0x70,0x08]
+ vrshrn.i16 d16, q8, #8
+@ CHECK: vrshrn.i32 d16, q8, #16 @ encoding: [0xd0,0xef,0x70,0x08]
+ vrshrn.i32 d16, q8, #16
+@ CHECK: vrshrn.i64 d16, q8, #32 @ encoding: [0xe0,0xef,0x70,0x08]
+ vrshrn.i64 d16, q8, #32
diff --git a/test/MC/ARM/neont2-shiftaccum-encoding.s b/test/MC/ARM/neont2-shiftaccum-encoding.s
new file mode 100644
index 0000000..a3a18fc
--- /dev/null
+++ b/test/MC/ARM/neont2-shiftaccum-encoding.s
@@ -0,0 +1,100 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vsra.s8 d17, d16, #8 @ encoding: [0xc8,0xef,0x30,0x11]
+ vsra.s8 d17, d16, #8
+@ CHECK: vsra.s16 d17, d16, #16 @ encoding: [0xd0,0xef,0x30,0x11]
+ vsra.s16 d17, d16, #16
+@ CHECK: vsra.s32 d17, d16, #32 @ encoding: [0xe0,0xef,0x30,0x11]
+ vsra.s32 d17, d16, #32
+@ CHECK: vsra.s64 d17, d16, #64 @ encoding: [0xc0,0xef,0xb0,0x11]
+ vsra.s64 d17, d16, #64
+@ CHECK: vsra.s8 q8, q9, #8 @ encoding: [0xc8,0xef,0x72,0x01]
+ vsra.s8 q8, q9, #8
+@ CHECK: vsra.s16 q8, q9, #16 @ encoding: [0xd0,0xef,0x72,0x01]
+ vsra.s16 q8, q9, #16
+@ CHECK: vsra.s32 q8, q9, #32 @ encoding: [0xe0,0xef,0x72,0x01]
+ vsra.s32 q8, q9, #32
+@ CHECK: vsra.s64 q8, q9, #64 @ encoding: [0xc0,0xef,0xf2,0x01]
+ vsra.s64 q8, q9, #64
+@ CHECK: vsra.u8 d17, d16, #8 @ encoding: [0xc8,0xff,0x30,0x11]
+ vsra.u8 d17, d16, #8
+@ CHECK: vsra.u16 d17, d16, #16 @ encoding: [0xd0,0xff,0x30,0x11]
+ vsra.u16 d17, d16, #16
+@ CHECK: vsra.u32 d17, d16, #32 @ encoding: [0xe0,0xff,0x30,0x11]
+ vsra.u32 d17, d16, #32
+@ CHECK: vsra.u64 d17, d16, #64 @ encoding: [0xc0,0xff,0xb0,0x11]
+ vsra.u64 d17, d16, #64
+@ CHECK: vsra.u8 q8, q9, #8 @ encoding: [0xc8,0xff,0x72,0x01]
+ vsra.u8 q8, q9, #8
+@ CHECK: vsra.u16 q8, q9, #16 @ encoding: [0xd0,0xff,0x72,0x01]
+ vsra.u16 q8, q9, #16
+@ CHECK: vsra.u32 q8, q9, #32 @ encoding: [0xe0,0xff,0x72,0x01]
+ vsra.u32 q8, q9, #32
+@ CHECK: vsra.u64 q8, q9, #64 @ encoding: [0xc0,0xff,0xf2,0x01]
+ vsra.u64 q8, q9, #64
+@ CHECK: vrsra.s8 d17, d16, #8 @ encoding: [0xc8,0xef,0x30,0x13]
+ vrsra.s8 d17, d16, #8
+@ CHECK: vrsra.s16 d17, d16, #16 @ encoding: [0xd0,0xef,0x30,0x13]
+ vrsra.s16 d17, d16, #16
+@ CHECK: vrsra.s32 d17, d16, #32 @ encoding: [0xe0,0xef,0x30,0x13]
+ vrsra.s32 d17, d16, #32
+@ CHECK: vrsra.s64 d17, d16, #64 @ encoding: [0xc0,0xef,0xb0,0x13]
+ vrsra.s64 d17, d16, #64
+@ CHECK: vrsra.u8 d17, d16, #8 @ encoding: [0xc8,0xff,0x30,0x13]
+ vrsra.u8 d17, d16, #8
+@ CHECK: vrsra.u16 d17, d16, #16 @ encoding: [0xd0,0xff,0x30,0x13]
+ vrsra.u16 d17, d16, #16
+@ CHECK: vrsra.u32 d17, d16, #32 @ encoding: [0xe0,0xff,0x30,0x13]
+ vrsra.u32 d17, d16, #32
+@ CHECK: vrsra.u64 d17, d16, #64 @ encoding: [0xc0,0xff,0xb0,0x13]
+ vrsra.u64 d17, d16, #64
+@ CHECK: vrsra.s8 q8, q9, #8 @ encoding: [0xc8,0xef,0x72,0x03]
+ vrsra.s8 q8, q9, #8
+@ CHECK: vrsra.s16 q8, q9, #16 @ encoding: [0xd0,0xef,0x72,0x03]
+ vrsra.s16 q8, q9, #16
+@ CHECK: vrsra.s32 q8, q9, #32 @ encoding: [0xe0,0xef,0x72,0x03]
+ vrsra.s32 q8, q9, #32
+@ CHECK: vrsra.s64 q8, q9, #64 @ encoding: [0xc0,0xef,0xf2,0x03]
+ vrsra.s64 q8, q9, #64
+@ CHECK: vrsra.u8 q8, q9, #8 @ encoding: [0xc8,0xff,0x72,0x03]
+ vrsra.u8 q8, q9, #8
+@ CHECK: vrsra.u16 q8, q9, #16 @ encoding: [0xd0,0xff,0x72,0x03]
+ vrsra.u16 q8, q9, #16
+@ CHECK: vrsra.u32 q8, q9, #32 @ encoding: [0xe0,0xff,0x72,0x03]
+ vrsra.u32 q8, q9, #32
+@ CHECK: vrsra.u64 q8, q9, #64 @ encoding: [0xc0,0xff,0xf2,0x03]
+ vrsra.u64 q8, q9, #64
+@ CHECK: vsli.8 d17, d16, #7 @ encoding: [0xcf,0xff,0x30,0x15]
+ vsli.8 d17, d16, #7
+@ CHECK: vsli.16 d17, d16, #15 @ encoding: [0xdf,0xff,0x30,0x15]
+ vsli.16 d17, d16, #15
+@ CHECK: vsli.32 d17, d16, #31 @ encoding: [0xff,0xff,0x30,0x15]
+ vsli.32 d17, d16, #31
+@ CHECK: vsli.64 d17, d16, #63 @ encoding: [0xff,0xff,0xb0,0x15]
+ vsli.64 d17, d16, #63
+@ CHECK: vsli.8 q9, q8, #7 @ encoding: [0xcf,0xff,0x70,0x25]
+ vsli.8 q9, q8, #7
+@ CHECK: vsli.16 q9, q8, #15 @ encoding: [0xdf,0xff,0x70,0x25]
+ vsli.16 q9, q8, #15
+@ CHECK: vsli.32 q9, q8, #31 @ encoding: [0xff,0xff,0x70,0x25]
+ vsli.32 q9, q8, #31
+@ CHECK: vsli.64 q9, q8, #63 @ encoding: [0xff,0xff,0xf0,0x25]
+ vsli.64 q9, q8, #63
+@ CHECK: vsri.8 d17, d16, #8 @ encoding: [0xc8,0xff,0x30,0x14]
+ vsri.8 d17, d16, #8
+@ CHECK: vsri.16 d17, d16, #16 @ encoding: [0xd0,0xff,0x30,0x14]
+ vsri.16 d17, d16, #16
+@ CHECK: vsri.32 d17, d16, #32 @ encoding: [0xe0,0xff,0x30,0x14]
+ vsri.32 d17, d16, #32
+@ CHECK: vsri.64 d17, d16, #64 @ encoding: [0xc0,0xff,0xb0,0x14]
+ vsri.64 d17, d16, #64
+@ CHECK: vsri.8 q9, q8, #8 @ encoding: [0xc8,0xff,0x70,0x24]
+ vsri.8 q9, q8, #8
+@ CHECK: vsri.16 q9, q8, #16 @ encoding: [0xd0,0xff,0x70,0x24]
+ vsri.16 q9, q8, #16
+@ CHECK: vsri.32 q9, q8, #32 @ encoding: [0xe0,0xff,0x70,0x24]
+ vsri.32 q9, q8, #32
+@ CHECK: vsri.64 q9, q8, #64 @ encoding: [0xc0,0xff,0xf0,0x24]
+ vsri.64 q9, q8, #64
diff --git a/test/MC/ARM/neont2-shuffle-encoding.s b/test/MC/ARM/neont2-shuffle-encoding.s
new file mode 100644
index 0000000..f471a2b
--- /dev/null
+++ b/test/MC/ARM/neont2-shuffle-encoding.s
@@ -0,0 +1,48 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+.code 16
+
+@ CHECK: vext.8 d16, d17, d16, #3 @ encoding: [0xf1,0xef,0xa0,0x03]
+ vext.8 d16, d17, d16, #3
+@ CHECK: vext.8 d16, d17, d16, #5 @ encoding: [0xf1,0xef,0xa0,0x05]
+ vext.8 d16, d17, d16, #5
+@ CHECK: vext.8 q8, q9, q8, #3 @ encoding: [0xf2,0xef,0xe0,0x03]
+ vext.8 q8, q9, q8, #3
+@ CHECK: vext.8 q8, q9, q8, #7 @ encoding: [0xf2,0xef,0xe0,0x07]
+ vext.8 q8, q9, q8, #7
+@ CHECK: vext.16 d16, d17, d16, #3 @ encoding: [0xf1,0xef,0xa0,0x06]
+ vext.16 d16, d17, d16, #3
+@ CHECK: vext.32 q8, q9, q8, #3 @ encoding: [0xf2,0xef,0xe0,0x0c]
+ vext.32 q8, q9, q8, #3
+@ CHECK: vtrn.8 d17, d16 @ encoding: [0xf2,0xff,0xa0,0x10]
+ vtrn.8 d17, d16
+@ CHECK: vtrn.16 d17, d16 @ encoding: [0xf6,0xff,0xa0,0x10]
+ vtrn.16 d17, d16
+@ CHECK: vtrn.32 d17, d16 @ encoding: [0xfa,0xff,0xa0,0x10]
+ vtrn.32 d17, d16
+@ CHECK: vtrn.8 q9, q8 @ encoding: [0xf2,0xff,0xe0,0x20]
+ vtrn.8 q9, q8
+@ CHECK: vtrn.16 q9, q8 @ encoding: [0xf6,0xff,0xe0,0x20]
+ vtrn.16 q9, q8
+@ CHECK: vtrn.32 q9, q8 @ encoding: [0xfa,0xff,0xe0,0x20]
+ vtrn.32 q9, q8
+@ CHECK: vuzp.8 d17, d16 @ encoding: [0xf2,0xff,0x20,0x11]
+ vuzp.8 d17, d16
+@ CHECK: vuzp.16 d17, d16 @ encoding: [0xf6,0xff,0x20,0x11]
+ vuzp.16 d17, d16
+@ CHECK: vuzp.8 q9, q8 @ encoding: [0xf2,0xff,0x60,0x21]
+ vuzp.8 q9, q8
+@ CHECK: vuzp.16 q9, q8 @ encoding: [0xf6,0xff,0x60,0x21]
+ vuzp.16 q9, q8
+@ CHECK: vuzp.32 q9, q8 @ encoding: [0xfa,0xff,0x60,0x21]
+ vuzp.32 q9, q8
+@ CHECK: vzip.8 d17, d16 @ encoding: [0xf2,0xff,0xa0,0x11]
+ vzip.8 d17, d16
+@ CHECK: vzip.16 d17, d16 @ encoding: [0xf6,0xff,0xa0,0x11]
+ vzip.16 d17, d16
+@ CHECK: vzip.8 q9, q8 @ encoding: [0xf2,0xff,0xe0,0x21]
+ vzip.8 q9, q8
+@ CHECK: vzip.16 q9, q8 @ encoding: [0xf6,0xff,0xe0,0x21]
+ vzip.16 q9, q8
+@ CHECK: vzip.32 q9, q8 @ encoding: [0xfa,0xff,0xe0,0x21]
+ vzip.32 q9, q8
diff --git a/test/MC/ARM/neont2-sub-encoding.s b/test/MC/ARM/neont2-sub-encoding.s
new file mode 100644
index 0000000..fa9d145
--- /dev/null
+++ b/test/MC/ARM/neont2-sub-encoding.s
@@ -0,0 +1,46 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+
+@ CHECK: vext.8 d16, d17, d16, #3 @ encoding: [0xf1,0xef,0xa0,0x03]
+ vext.8 d16, d17, d16, #3
+@ CHECK: vext.8 d16, d17, d16, #5 @ encoding: [0xf1,0xef,0xa0,0x05]
+ vext.8 d16, d17, d16, #5
+@ CHECK: vext.8 q8, q9, q8, #3 @ encoding: [0xf2,0xef,0xe0,0x03]
+ vext.8 q8, q9, q8, #3
+@ CHECK: vext.8 q8, q9, q8, #7 @ encoding: [0xf2,0xef,0xe0,0x07]
+ vext.8 q8, q9, q8, #7
+@ CHECK: vext.16 d16, d17, d16, #3 @ encoding: [0xf1,0xef,0xa0,0x06]
+ vext.16 d16, d17, d16, #3
+@ CHECK: vext.32 q8, q9, q8, #3 @ encoding: [0xf2,0xef,0xe0,0x0c]
+ vext.32 q8, q9, q8, #3
+@ CHECK: vtrn.8 d17, d16 @ encoding: [0xf2,0xff,0xa0,0x10]
+ vtrn.8 d17, d16
+@ CHECK: vtrn.16 d17, d16 @ encoding: [0xf6,0xff,0xa0,0x10]
+ vtrn.16 d17, d16
+@ CHECK: vtrn.32 d17, d16 @ encoding: [0xfa,0xff,0xa0,0x10]
+ vtrn.32 d17, d16
+@ CHECK: vtrn.8 q9, q8 @ encoding: [0xf2,0xff,0xe0,0x20]
+ vtrn.8 q9, q8
+@ CHECK: vtrn.16 q9, q8 @ encoding: [0xf6,0xff,0xe0,0x20]
+ vtrn.16 q9, q8
+@ CHECK: vtrn.32 q9, q8 @ encoding: [0xfa,0xff,0xe0,0x20]
+ vtrn.32 q9, q8
+@ CHECK: vuzp.8 d17, d16 @ encoding: [0xf2,0xff,0x20,0x11]
+ vuzp.8 d17, d16
+@ CHECK: vuzp.16 d17, d16 @ encoding: [0xf6,0xff,0x20,0x11]
+ vuzp.16 d17, d16
+@ CHECK: vuzp.8 q9, q8 @ encoding: [0xf2,0xff,0x60,0x21]
+ vuzp.8 q9, q8
+@ CHECK: vuzp.16 q9, q8 @ encoding: [0xf6,0xff,0x60,0x21]
+ vuzp.16 q9, q8
+@ CHECK: vuzp.32 q9, q8 @ encoding: [0xfa,0xff,0x60,0x21]
+ vuzp.32 q9, q8
+@ CHECK: vzip.8 d17, d16 @ encoding: [0xf2,0xff,0xa0,0x11]
+ vzip.8 d17, d16
+@ CHECK: vzip.16 d17, d16 @ encoding: [0xf6,0xff,0xa0,0x11]
+ vzip.16 d17, d16
+@ CHECK: vzip.8 q9, q8 @ encoding: [0xf2,0xff,0xe0,0x21]
+ vzip.8 q9, q8
+@ CHECK: vzip.16 q9, q8 @ encoding: [0xf6,0xff,0xe0,0x21]
+ vzip.16 q9, q8
+@ CHECK: vzip.32 q9, q8 @ encoding: [0xfa,0xff,0xe0,0x21]
+ vzip.32 q9, q8
diff --git a/test/MC/ARM/neont2-table-encoding.s b/test/MC/ARM/neont2-table-encoding.s
new file mode 100644
index 0000000..46fb934
--- /dev/null
+++ b/test/MC/ARM/neont2-table-encoding.s
@@ -0,0 +1,21 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vtbl.8 d16, {d17}, d16 @ encoding: [0xa0,0x08,0xf1,0xff]
+ vtbl.8 d16, {d17}, d16
+@ CHECK: vtbl.8 d16, {d16, d17}, d18 @ encoding: [0xa2,0x09,0xf0,0xff]
+ vtbl.8 d16, {d16, d17}, d18
+@ CHECK: vtbl.8 d16, {d16, d17, d18}, d20 @ encoding: [0xa4,0x0a,0xf0,0xff]
+ vtbl.8 d16, {d16, d17, d18}, d20
+@ CHECK: vtbl.8 d16, {d16, d17, d18, d19}, d20 @ encoding: [0xa4,0x0b,0xf0,0xff]
+ vtbl.8 d16, {d16, d17, d18, d19}, d20
+@ CHECK: vtbx.8 d18, {d16}, d17 @ encoding: [0xe1,0x28,0xf0,0xff]
+ vtbx.8 d18, {d16}, d17
+@ CHECK: vtbx.8 d19, {d16, d17}, d18 @ encoding: [0xe2,0x39,0xf0,0xff]
+ vtbx.8 d19, {d16, d17}, d18
+@ CHECK: vtbx.8 d20, {d16, d17, d18}, d21 @ encoding: [0xe5,0x4a,0xf0,0xff]
+ vtbx.8 d20, {d16, d17, d18}, d21
+@ CHECK: vtbx.8 d20, {d16, d17, d18, d19}, d21 @ encoding: [0xe5,0x4b,0xf0,0xff]
+ vtbx.8 d20, {d16, d17, d18, d19}, d21
diff --git a/test/MC/ARM/neont2-vld-encoding.s b/test/MC/ARM/neont2-vld-encoding.s
new file mode 100644
index 0000000..031205a
--- /dev/null
+++ b/test/MC/ARM/neont2-vld-encoding.s
@@ -0,0 +1,112 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vld1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x60,0xf9]
+ vld1.8 {d16}, [r0, :64]
+@ CHECK: vld1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x60,0xf9]
+ vld1.16 {d16}, [r0]
+@ CHECK: vld1.32 {d16}, [r0] @ encoding: [0x8f,0x07,0x60,0xf9]
+ vld1.32 {d16}, [r0]
+@ CHECK: vld1.64 {d16}, [r0] @ encoding: [0xcf,0x07,0x60,0xf9]
+ vld1.64 {d16}, [r0]
+@ CHECK: vld1.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x0a,0x60,0xf9]
+ vld1.8 {d16, d17}, [r0, :64]
+@ CHECK: vld1.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x0a,0x60,0xf9]
+ vld1.16 {d16, d17}, [r0, :128]
+@ CHECK: vld1.32 {d16, d17}, [r0] @ encoding: [0x8f,0x0a,0x60,0xf9]
+ vld1.32 {d16, d17}, [r0]
+@ CHECK: vld1.64 {d16, d17}, [r0] @ encoding: [0xcf,0x0a,0x60,0xf9]
+ vld1.64 {d16, d17}, [r0]
+
+@ CHECK: vld2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x60,0xf9]
+ vld2.8 {d16, d17}, [r0, :64]
+@ CHECK: vld2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x60,0xf9]
+ vld2.16 {d16, d17}, [r0, :128]
+@ CHECK: vld2.32 {d16, d17}, [r0] @ encoding: [0x8f,0x08,0x60,0xf9]
+ vld2.32 {d16, d17}, [r0]
+@ CHECK: vld2.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x60,0xf9]
+ vld2.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vld2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x60,0xf9]
+ vld2.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vld2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x60,0xf9]
+ vld2.32 {d16, d17, d18, d19}, [r0, :256]
+
+@ CHECK: vld3.8 {d16, d17, d18}, [r0, :64] @ encoding: [0x1f,0x04,0x60,0xf9]
+ vld3.8 {d16, d17, d18}, [r0, :64]
+@ CHECK: vld3.16 {d16, d17, d18}, [r0] @ encoding: [0x4f,0x04,0x60,0xf9]
+ vld3.16 {d16, d17, d18}, [r0]
+@ CHECK: vld3.32 {d16, d17, d18}, [r0] @ encoding: [0x8f,0x04,0x60,0xf9]
+ vld3.32 {d16, d17, d18}, [r0]
+@ CHECK: vld3.8 {d16, d18, d20}, [r0, :64]! @ encoding: [0x1d,0x05,0x60,0xf9]
+ vld3.8 {d16, d18, d20}, [r0, :64]!
+@ CHECK: vld3.8 {d17, d19, d21}, [r0, :64]! @ encoding: [0x1d,0x15,0x60,0xf9]
+ vld3.8 {d17, d19, d21}, [r0, :64]!
+@ CHECK: vld3.16 {d16, d18, d20}, [r0]! @ encoding: [0x4d,0x05,0x60,0xf9]
+ vld3.16 {d16, d18, d20}, [r0]!
+@ CHECK: vld3.16 {d17, d19, d21}, [r0]! @ encoding: [0x4d,0x15,0x60,0xf9]
+ vld3.16 {d17, d19, d21}, [r0]!
+@ CHECK: vld3.32 {d16, d18, d20}, [r0]! @ encoding: [0x8d,0x05,0x60,0xf9]
+ vld3.32 {d16, d18, d20}, [r0]!
+@ CHECK: vld3.32 {d17, d19, d21}, [r0]! @ encoding: [0x8d,0x15,0x60,0xf9]
+ vld3.32 {d17, d19, d21}, [r0]!
+
+@ CHECK: vld4.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x00,0x60,0xf9]
+ vld4.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vld4.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x00,0x60,0xf9]
+ vld4.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vld4.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x00,0x60,0xf9]
+ vld4.32 {d16, d17, d18, d19}, [r0, :256]
+@ CHECK: vld4.8 {d16, d18, d20, d22}, [r0, :256]! @ encoding: [0x3d,0x01,0x60,0xf9]
+ vld4.8 {d16, d18, d20, d22}, [r0, :256]!
+@ CHECK: vld4.8 {d17, d19, d21, d23}, [r0, :256]! @ encoding: [0x3d,0x11,0x60,0xf9]
+ vld4.8 {d17, d19, d21, d23}, [r0, :256]!
+@ CHECK: vld4.16 {d16, d18, d20, d22}, [r0]! @ encoding: [0x4d,0x01,0x60,0xf9]
+ vld4.16 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vld4.16 {d17, d19, d21, d23}, [r0]! @ encoding: [0x4d,0x11,0x60,0xf9]
+ vld4.16 {d17, d19, d21, d23}, [r0]!
+@ CHECK: vld4.32 {d16, d18, d20, d22}, [r0]! @ encoding: [0x8d,0x01,0x60,0xf9]
+ vld4.32 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vld4.32 {d17, d19, d21, d23}, [r0]! @ encoding: [0x8d,0x11,0x60,0xf9]
+ vld4.32 {d17, d19, d21, d23}, [r0]!
+
+@ CHECK: vld1.8 {d16[3]}, [r0] @ encoding: [0x6f,0x00,0xe0,0xf9]
+ vld1.8 {d16[3]}, [r0]
+@ CHECK: vld1.16 {d16[2]}, [r0, :16] @ encoding: [0x9f,0x04,0xe0,0xf9]
+ vld1.16 {d16[2]}, [r0, :16]
+@ CHECK: vld1.32 {d16[1]}, [r0, :32] @ encoding: [0xbf,0x08,0xe0,0xf9]
+ vld1.32 {d16[1]}, [r0, :32]
+
+@ CHECK: vld2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xe0,0xf9]
+ vld2.8 {d16[1], d17[1]}, [r0, :16]
+@ CHECK: vld2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xe0,0xf9]
+ vld2.16 {d16[1], d17[1]}, [r0, :32]
+@ CHECK: vld2.32 {d16[1], d17[1]}, [r0] @ encoding: [0x8f,0x09,0xe0,0xf9]
+ vld2.32 {d16[1], d17[1]}, [r0]
+@ CHECK: vld2.16 {d17[1], d19[1]}, [r0] @ encoding: [0x6f,0x15,0xe0,0xf9]
+ vld2.16 {d17[1], d19[1]}, [r0]
+@ CHECK: vld2.32 {d17[0], d19[0]}, [r0, :64] @ encoding: [0x5f,0x19,0xe0,0xf9]
+ vld2.32 {d17[0], d19[0]}, [r0, :64]
+
+@ CHECK: vld3.8 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x2f,0x02,0xe0,0xf9]
+ vld3.8 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vld3.16 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x4f,0x06,0xe0,0xf9]
+ vld3.16 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vld3.32 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x8f,0x0a,0xe0,0xf9]
+ vld3.32 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vld3.16 {d16[1], d18[1], d20[1]}, [r0] @ encoding: [0x6f,0x06,0xe0,0xf9]
+ vld3.16 {d16[1], d18[1], d20[1]}, [r0]
+@ CHECK: vld3.32 {d17[1], d19[1], d21[1]}, [r0] @ encoding: [0xcf,0x1a,0xe0,0xf9]
+ vld3.32 {d17[1], d19[1], d21[1]}, [r0]
+
+@ CHECK: vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32] @ encoding: [0x3f,0x03,0xe0,0xf9]
+ vld4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32]
+@ CHECK: vld4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0] @ encoding: [0x4f,0x07,0xe0,0xf9]
+ vld4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0]
+@ CHECK: vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128] @ encoding: [0xaf,0x0b,0xe0,0xf9]
+ vld4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128]
+@ CHECK: vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0, :64] @ encoding: [0x7f,0x07,0xe0,0xf9]
+ vld4.16 {d16[1], d18[1], d20[1], d22[1]}, [r0, :64]
+@ CHECK: vld4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0] @ encoding: [0x4f,0x1b,0xe0,0xf9]
+ vld4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0]
diff --git a/test/MC/ARM/neont2-vst-encoding.s b/test/MC/ARM/neont2-vst-encoding.s
new file mode 100644
index 0000000..1722f12
--- /dev/null
+++ b/test/MC/ARM/neont2-vst-encoding.s
@@ -0,0 +1,103 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+
+.code 16
+
+@ CHECK: vst1.8 {d16}, [r0, :64] @ encoding: [0x1f,0x07,0x40,0xf9]
+ vst1.8 {d16}, [r0, :64]
+@ CHECK: vst1.16 {d16}, [r0] @ encoding: [0x4f,0x07,0x40,0xf9]
+ vst1.16 {d16}, [r0]
+@ CHECK: vst1.32 {d16}, [r0] @ encoding: [0x8f,0x07,0x40,0xf9]
+ vst1.32 {d16}, [r0]
+@ CHECK: vst1.64 {d16}, [r0] @ encoding: [0xcf,0x07,0x40,0xf9]
+ vst1.64 {d16}, [r0]
+@ CHECK: vst1.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x0a,0x40,0xf9]
+ vst1.8 {d16, d17}, [r0, :64]
+@ CHECK: vst1.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x0a,0x40,0xf9]
+ vst1.16 {d16, d17}, [r0, :128]
+@ CHECK: vst1.32 {d16, d17}, [r0] @ encoding: [0x8f,0x0a,0x40,0xf9]
+ vst1.32 {d16, d17}, [r0]
+@ CHECK: vst1.64 {d16, d17}, [r0] @ encoding: [0xcf,0x0a,0x40,0xf9]
+ vst1.64 {d16, d17}, [r0]
+
+@ CHECK: vst2.8 {d16, d17}, [r0, :64] @ encoding: [0x1f,0x08,0x40,0xf9]
+ vst2.8 {d16, d17}, [r0, :64]
+@ CHECK: vst2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x40,0xf9]
+ vst2.16 {d16, d17}, [r0, :128]
+@ CHECK: vst2.32 {d16, d17}, [r0] @ encoding: [0x8f,0x08,0x40,0xf9]
+ vst2.32 {d16, d17}, [r0]
+@ CHECK: vst2.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x40,0xf9]
+ vst2.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vst2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x40,0xf9]
+ vst2.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vst2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x40,0xf9]
+ vst2.32 {d16, d17, d18, d19}, [r0, :256]
+
+@ CHECK: vst3.8 {d16, d17, d18}, [r0, :64] @ encoding: [0x1f,0x04,0x40,0xf9]
+ vst3.8 {d16, d17, d18}, [r0, :64]
+@ CHECK: vst3.16 {d16, d17, d18}, [r0] @ encoding: [0x4f,0x04,0x40,0xf9]
+ vst3.16 {d16, d17, d18}, [r0]
+@ CHECK: vst3.32 {d16, d17, d18}, [r0] @ encoding: [0x8f,0x04,0x40,0xf9]
+ vst3.32 {d16, d17, d18}, [r0]
+@ CHECK: vst3.8 {d16, d18, d20}, [r0, :64]! @ encoding: [0x1d,0x05,0x40,0xf9]
+ vst3.8 {d16, d18, d20}, [r0, :64]!
+@ CHECK: vst3.8 {d17, d19, d21}, [r0, :64]! @ encoding: [0x1d,0x15,0x40,0xf9]
+ vst3.8 {d17, d19, d21}, [r0, :64]!
+@ CHECK: vst3.16 {d16, d18, d20}, [r0]! @ encoding: [0x4d,0x05,0x40,0xf9]
+ vst3.16 {d16, d18, d20}, [r0]!
+@ CHECK: vst3.16 {d17, d19, d21}, [r0]! @ encoding: [0x4d,0x15,0x40,0xf9]
+ vst3.16 {d17, d19, d21}, [r0]!
+@ CHECK: vst3.32 {d16, d18, d20}, [r0]! @ encoding: [0x8d,0x05,0x40,0xf9]
+ vst3.32 {d16, d18, d20}, [r0]!
+@ CHECK: vst3.32 {d17, d19, d21}, [r0]! @ encoding: [0x8d,0x15,0x40,0xf9]
+ vst3.32 {d17, d19, d21}, [r0]!
+
+@ CHECK: vst4.8 {d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x00,0x40,0xf9]
+ vst4.8 {d16, d17, d18, d19}, [r0, :64]
+@ CHECK: vst4.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x00,0x40,0xf9]
+ vst4.16 {d16, d17, d18, d19}, [r0, :128]
+@ CHECK: vst4.8 {d16, d18, d20, d22}, [r0, :256]! @ encoding: [0x3d,0x01,0x40,0xf9]
+ vst4.8 {d16, d18, d20, d22}, [r0, :256]!
+@ CHECK: vst4.8 {d17, d19, d21, d23}, [r0, :256]! @ encoding: [0x3d,0x11,0x40,0xf9]
+ vst4.8 {d17, d19, d21, d23}, [r0, :256]!
+@ CHECK: vst4.16 {d16, d18, d20, d22}, [r0]! @ encoding: [0x4d,0x01,0x40,0xf9]
+ vst4.16 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vst4.16 {d17, d19, d21, d23}, [r0]! @ encoding: [0x4d,0x11,0x40,0xf9]
+ vst4.16 {d17, d19, d21, d23}, [r0]!
+@ CHECK: vst4.32 {d16, d18, d20, d22}, [r0]! @ encoding: [0x8d,0x01,0x40,0xf9]
+ vst4.32 {d16, d18, d20, d22}, [r0]!
+@ CHECK: vst4.32 {d17, d19, d21, d23}, [r0]! @ encoding: [0x8d,0x11,0x40,0xf9]
+ vst4.32 {d17, d19, d21, d23}, [r0]!
+
+@ CHECK: vst2.8 {d16[1], d17[1]}, [r0, :16] @ encoding: [0x3f,0x01,0xc0,0xf9]
+ vst2.8 {d16[1], d17[1]}, [r0, :16]
+@ CHECK: vst2.16 {d16[1], d17[1]}, [r0, :32] @ encoding: [0x5f,0x05,0xc0,0xf9]
+ vst2.16 {d16[1], d17[1]}, [r0, :32]
+@ CHECK: vst2.32 {d16[1], d17[1]}, [r0] @ encoding: [0x8f,0x09,0xc0,0xf9]
+ vst2.32 {d16[1], d17[1]}, [r0]
+@ CHECK: vst2.16 {d17[1], d19[1]}, [r0] @ encoding: [0x6f,0x15,0xc0,0xf9]
+ vst2.16 {d17[1], d19[1]}, [r0]
+@ CHECK: vst2.32 {d17[0], d19[0]}, [r0, :64] @ encoding: [0x5f,0x19,0xc0,0xf9]
+ vst2.32 {d17[0], d19[0]}, [r0, :64]
+
+@ CHECK: vst3.8 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x2f,0x02,0xc0,0xf9]
+ vst3.8 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vst3.16 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x4f,0x06,0xc0,0xf9]
+ vst3.16 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vst3.32 {d16[1], d17[1], d18[1]}, [r0] @ encoding: [0x8f,0x0a,0xc0,0xf9]
+ vst3.32 {d16[1], d17[1], d18[1]}, [r0]
+@ CHECK: vst3.16 {d17[2], d19[2], d21[2]}, [r0] @ encoding: [0xaf,0x16,0xc0,0xf9]
+ vst3.16 {d17[2], d19[2], d21[2]}, [r0]
+@ CHECK: vst3.32 {d16[0], d18[0], d20[0]}, [r0] @ encoding: [0x4f,0x0a,0xc0,0xf9]
+ vst3.32 {d16[0], d18[0], d20[0]}, [r0]
+
+@ CHECK: vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32] @ encoding: [0x3f,0x03,0xc0,0xf9]
+ vst4.8 {d16[1], d17[1], d18[1], d19[1]}, [r0, :32]
+@ CHECK: vst4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0] @ encoding: [0x4f,0x07,0xc0,0xf9]
+ vst4.16 {d16[1], d17[1], d18[1], d19[1]}, [r0]
+@ CHECK: vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128] @ encoding: [0xaf,0x0b,0xc0,0xf9]
+ vst4.32 {d16[1], d17[1], d18[1], d19[1]}, [r0, :128]
+@ CHECK: vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0, :64] @ encoding: [0xff,0x17,0xc0,0xf9]
+ vst4.16 {d17[3], d19[3], d21[3], d23[3]}, [r0, :64]
+@ CHECK: vst4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0] @ encoding: [0x4f,0x1b,0xc0,0xf9]
+ vst4.32 {d17[0], d19[0], d21[0], d23[0]}, [r0]
diff --git a/test/MC/ARM/prefetch.ll b/test/MC/ARM/prefetch.ll
new file mode 100644
index 0000000..674b8f3
--- /dev/null
+++ b/test/MC/ARM/prefetch.ll
@@ -0,0 +1,58 @@
+; RUN: llc < %s -mtriple=armv7-apple-darwin -mattr=+v7a,+mp -show-mc-encoding | FileCheck %s -check-prefix=ARM
+; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mattr=+v7a -show-mc-encoding | FileCheck %s -check-prefix=T2
+; rdar://8924681
+
+define void @t1(i8* %ptr) nounwind {
+entry:
+; ARM: t1:
+; ARM: pldw [r0] @ encoding: [0x00,0xf0,0x90,0xf5]
+; ARM: pld [r0] @ encoding: [0x00,0xf0,0xd0,0xf5]
+
+; T2: t1:
+; T2: pld [r0] @ encoding: [0x90,0xf8,0x00,0xf0]
+ tail call void @llvm.prefetch( i8* %ptr, i32 1, i32 3 )
+ tail call void @llvm.prefetch( i8* %ptr, i32 0, i32 3 )
+ ret void
+}
+
+define void @t2(i8* %ptr) nounwind {
+entry:
+; ARM: t2:
+; ARM: pld [r0, #1023] @ encoding: [0xff,0xf3,0xd0,0xf5]
+
+; T2: t2:
+; T2: pld [r0, #1023] @ encoding: [0x90,0xf8,0xff,0xf3]
+ %tmp = getelementptr i8* %ptr, i32 1023
+ tail call void @llvm.prefetch( i8* %tmp, i32 0, i32 3 )
+ ret void
+}
+
+define void @t3(i32 %base, i32 %offset) nounwind {
+entry:
+; ARM: t3:
+; ARM: pld [r0, r1, lsr #2] @ encoding: [0x21,0xf1,0xd0,0xf7]
+
+; T2: t3:
+; T2: pld [r0, r1] @ encoding: [0x10,0xf8,0x01,0xf0]
+ %tmp1 = lshr i32 %offset, 2
+ %tmp2 = add i32 %base, %tmp1
+ %tmp3 = inttoptr i32 %tmp2 to i8*
+ tail call void @llvm.prefetch( i8* %tmp3, i32 0, i32 3 )
+ ret void
+}
+
+define void @t4(i32 %base, i32 %offset) nounwind {
+entry:
+; ARM: t4:
+; ARM: pld [r0, r1, lsl #2] @ encoding: [0x01,0xf1,0xd0,0xf7]
+
+; T2: t4:
+; T2: pld [r0, r1, lsl #2] @ encoding: [0x10,0xf8,0x21,0xf0]
+ %tmp1 = shl i32 %offset, 2
+ %tmp2 = add i32 %base, %tmp1
+ %tmp3 = inttoptr i32 %tmp2 to i8*
+ tail call void @llvm.prefetch( i8* %tmp3, i32 0, i32 3 )
+ ret void
+}
+
+declare void @llvm.prefetch(i8*, i32, i32) nounwind
diff --git a/test/MC/ARM/reg-list.s b/test/MC/ARM/reg-list.s
new file mode 100644
index 0000000..4dd392e
--- /dev/null
+++ b/test/MC/ARM/reg-list.s
@@ -0,0 +1,8 @@
+@ RUN: llvm-mc -triple thumb-apple-darwin10 -show-encoding < %s 2> %t | FileCheck %s
+@ RUN: FileCheck --check-prefix=CHECK-WARNINGS < %t %s
+
+ push {r7, lr}
+@ CHECK-WARNINGS: register not in ascending order in register list
+
+ push {lr, r7}
+@ CHECK: push {lr, r7}
diff --git a/test/MC/ARM/simple-encoding.ll b/test/MC/ARM/simple-encoding.ll
new file mode 100644
index 0000000..0877e8e
--- /dev/null
+++ b/test/MC/ARM/simple-encoding.ll
@@ -0,0 +1,237 @@
+;RUN: llc -mtriple=armv7-apple-darwin -show-mc-encoding < %s | FileCheck %s
+
+
+;FIXME: Once the ARM integrated assembler is up and going, these sorts of tests
+; should run on .s source files rather than using llc to generate the
+; assembly. There's also a large number of instruction encodings the
+; compiler never generates, so we need the integrated assembler to be
+; able to test those at all.
+
+declare void @llvm.trap() nounwind
+declare i32 @llvm.ctlz.i32(i32)
+
+define i32 @foo(i32 %a, i32 %b) {
+; CHECK: foo
+; CHECK: trap @ encoding: [0xfe,0xde,0xff,0xe7]
+; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1]
+
+ tail call void @llvm.trap()
+ ret i32 undef
+}
+
+define i32 @f2(i32 %a, i32 %b) {
+; CHECK: f2
+; CHECK: add r0, r1, r0 @ encoding: [0x00,0x00,0x81,0xe0]
+; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1]
+ %add = add nsw i32 %b, %a
+ ret i32 %add
+}
+
+
+define i32 @f3(i32 %a, i32 %b) {
+; CHECK: f3
+; CHECK: add r0, r0, r1, lsl #3 @ encoding: [0x81,0x01,0x80,0xe0]
+; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1]
+ %mul = shl i32 %b, 3
+ %add = add nsw i32 %mul, %a
+ ret i32 %add
+}
+
+define i32 @f4(i32 %a, i32 %b) {
+; CHECK: f4
+; CHECK: add r0, r0, #254, 28 @ encoding: [0xfe,0x0e,0x80,0xe2]
+; CHECK: @ 4064
+; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1]
+ %add = add nsw i32 %a, 4064
+ ret i32 %add
+}
+
+define i32 @f5(i32 %a, i32 %b, i32 %c) {
+; CHECK: f5
+; CHECK: cmp r0, r1 @ encoding: [0x01,0x00,0x50,0xe1]
+; CHECK: mov r0, r2 @ encoding: [0x02,0x00,0xa0,0xe1]
+; CHECK: movgt r0, r1 @ encoding: [0x01,0x00,0xa0,0xc1]
+ %cmp = icmp sgt i32 %a, %b
+ %retval.0 = select i1 %cmp, i32 %b, i32 %c
+ ret i32 %retval.0
+}
+
+define i64 @f6(i64 %a, i64 %b, i64 %c) {
+; CHECK: f6
+; CHECK: adds r0, r2, r0 @ encoding: [0x00,0x00,0x92,0xe0]
+; CHECK: adc r1, r3, r1 @ encoding: [0x01,0x10,0xa3,0xe0]
+ %add = add nsw i64 %b, %a
+ ret i64 %add
+}
+
+define i32 @f7(i32 %a, i32 %b) {
+; CHECK: f7
+; CHECK: uxtab r0, r0, r1 @ encoding: [0x71,0x00,0xe0,0xe6]
+ %and = and i32 %b, 255
+ %add = add i32 %and, %a
+ ret i32 %add
+}
+
+define i32 @f8(i32 %a) {
+; CHECK: f8
+; CHECK: movt r0, #42405 @ encoding: [0xa5,0x05,0x4a,0xe3]
+ %and = and i32 %a, 65535
+ %or = or i32 %and, -1515913216
+ ret i32 %or
+}
+
+define i32 @f9() {
+; CHECK: f9
+; CHECK: movw r0, #42405 @ encoding: [0xa5,0x05,0x0a,0xe3]
+ ret i32 42405
+}
+
+define i64 @f10(i64 %a) {
+; CHECK: f10
+; CHECK: asrs r1, r1, #1 @ encoding: [0xc1,0x10,0xb0,0xe1]
+; CHECK: rrx r0, r0 @ encoding: [0x60,0x00,0xa0,0xe1]
+ %shr = ashr i64 %a, 1
+ ret i64 %shr
+}
+
+define i32 @f11([1 x i32] %A.coerce0, [1 x i32] %B.coerce0) {
+; CHECK: f11
+; CHECK: ubfx r1, r1, #8, #5 @ encoding: [0x51,0x14,0xe4,0xe7]
+; CHECK: sbfx r0, r0, #13, #7 @ encoding: [0xd0,0x06,0xa6,0xe7]
+ %tmp1 = extractvalue [1 x i32] %A.coerce0, 0
+ %tmp2 = extractvalue [1 x i32] %B.coerce0, 0
+ %tmp3 = shl i32 %tmp1, 12
+ %bf.val.sext = ashr i32 %tmp3, 25
+ %tmp4 = lshr i32 %tmp2, 8
+ %bf.clear2 = and i32 %tmp4, 31
+ %mul = mul nsw i32 %bf.val.sext, %bf.clear2
+ ret i32 %mul
+}
+
+define i32 @f12(i32 %a) {
+; CHECK: f12:
+; CHECK: bfc r0, #4, #20 @ encoding: [0x1f,0x02,0xd7,0xe7]
+ %tmp = and i32 %a, 4278190095
+ ret i32 %tmp
+}
+
+define i64 @f13() {
+; CHECK: f13:
+; CHECK: mvn r0, #0 @ encoding: [0x00,0x00,0xe0,0xe3]
+; CHECK: mvn r1, #2, 2 @ encoding: [0x02,0x11,0xe0,0xe3]
+ ret i64 9223372036854775807
+}
+
+define i32 @f14(i32 %x, i32 %y) {
+; CHECK: f14:
+; CHECK: smmul r0, r1, r0 @ encoding: [0x11,0xf0,0x50,0xe7]
+ %tmp = sext i32 %x to i64
+ %tmp1 = sext i32 %y to i64
+ %tmp2 = mul i64 %tmp1, %tmp
+ %tmp3 = lshr i64 %tmp2, 32
+ %tmp3.upgrd.1 = trunc i64 %tmp3 to i32
+ ret i32 %tmp3.upgrd.1
+}
+
+define i32 @f15(i32 %x, i32 %y) {
+; CHECK: f15:
+; CHECK: umull r1, r0, r1, r0 @ encoding: [0x91,0x10,0x80,0xe0]
+ %tmp = zext i32 %x to i64
+ %tmp1 = zext i32 %y to i64
+ %tmp2 = mul i64 %tmp1, %tmp
+ %tmp3 = lshr i64 %tmp2, 32
+ %tmp3.upgrd.2 = trunc i64 %tmp3 to i32
+ ret i32 %tmp3.upgrd.2
+}
+
+define i32 @f16(i16 %x, i32 %y) {
+; CHECK: f16:
+; CHECK: smulbt r0, r0, r1 @ encoding: [0xc0,0x01,0x60,0xe1]
+ %tmp1 = add i16 %x, 2
+ %tmp2 = sext i16 %tmp1 to i32
+ %tmp3 = ashr i32 %y, 16
+ %tmp4 = mul i32 %tmp2, %tmp3
+ ret i32 %tmp4
+}
+
+define i32 @f17(i32 %x, i32 %y) {
+; CHECK: f17:
+; CHECK: smultt r0, r1, r0 @ encoding: [0xe1,0x00,0x60,0xe1]
+ %tmp1 = ashr i32 %x, 16
+ %tmp3 = ashr i32 %y, 16
+ %tmp4 = mul i32 %tmp3, %tmp1
+ ret i32 %tmp4
+}
+
+define i32 @f18(i32 %a, i16 %x, i32 %y) {
+; CHECK: f18:
+; CHECK: smlabt r0, r1, r2, r0 @ encoding: [0xc1,0x02,0x00,0xe1]
+ %tmp = sext i16 %x to i32
+ %tmp2 = ashr i32 %y, 16
+ %tmp3 = mul i32 %tmp2, %tmp
+ %tmp5 = add i32 %tmp3, %a
+ ret i32 %tmp5
+}
+
+define i32 @f19(i32 %x) {
+; CHECK: f19
+; CHECK: clz r0, r0 @ encoding: [0x10,0x0f,0x6f,0xe1]
+ %tmp.1 = call i32 @llvm.ctlz.i32( i32 %x )
+ ret i32 %tmp.1
+}
+
+define i32 @f20(i32 %X) {
+; CHECK: f20
+; CHECK: rev16 r0, r0 @ encoding: [0xb0,0x0f,0xbf,0xe6]
+ %tmp1 = lshr i32 %X, 8
+ %X15 = bitcast i32 %X to i32
+ %tmp4 = shl i32 %X15, 8
+ %tmp2 = and i32 %tmp1, 16711680
+ %tmp5 = and i32 %tmp4, -16777216
+ %tmp9 = and i32 %tmp1, 255
+ %tmp13 = and i32 %tmp4, 65280
+ %tmp6 = or i32 %tmp5, %tmp2
+ %tmp10 = or i32 %tmp6, %tmp13
+ %tmp14 = or i32 %tmp10, %tmp9
+ ret i32 %tmp14
+}
+
+define i32 @f21(i32 %X) {
+; CHECK: f21
+; CHECK: revsh r0, r0 @ encoding: [0xb0,0x0f,0xff,0xe6]
+ %tmp1 = lshr i32 %X, 8
+ %tmp1.upgrd.1 = trunc i32 %tmp1 to i16
+ %tmp3 = trunc i32 %X to i16
+ %tmp2 = and i16 %tmp1.upgrd.1, 255
+ %tmp4 = shl i16 %tmp3, 8
+ %tmp5 = or i16 %tmp2, %tmp4
+ %tmp5.upgrd.2 = sext i16 %tmp5 to i32
+ ret i32 %tmp5.upgrd.2
+}
+
+define i32 @f22(i32 %X, i32 %Y) {
+; CHECK: f22
+; CHECK: pkhtb r0, r0, r1, asr #22 @ encoding: [0x51,0x0b,0x80,0xe6]
+ %tmp1 = and i32 %X, -65536
+ %tmp2 = lshr i32 %Y, 22
+ %tmp3 = or i32 %tmp2, %tmp1
+ ret i32 %tmp3
+}
+
+define i32 @f23(i32 %X, i32 %Y) {
+; CHECK: f23
+; CHECK: pkhbt r0, r0, r1, lsl #18 @ encoding: [0x11,0x09,0x80,0xe6]
+ %tmp1 = and i32 %X, 65535
+ %tmp2 = shl i32 %Y, 18
+ %tmp3 = or i32 %tmp1, %tmp2
+ ret i32 %tmp3
+}
+
+define void @f24(i32 %a) {
+; CHECK: f24
+; CHECK: cmp r0, #1, 16 @ encoding: [0x01,0x08,0x50,0xe3]
+ %b = icmp ugt i32 %a, 65536
+ br i1 %b, label %r, label %r
+r:
+ ret void
+}
diff --git a/test/MC/ARM/simple-fp-encoding.s b/test/MC/ARM/simple-fp-encoding.s
new file mode 100644
index 0000000..8917380
--- /dev/null
+++ b/test/MC/ARM/simple-fp-encoding.s
@@ -0,0 +1,236 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
+
+@ CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee]
+ vadd.f64 d16, d17, d16
+
+@ CHECK: vadd.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x30,0xee]
+ vadd.f32 s0, s1, s0
+
+@ CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee]
+ vsub.f64 d16, d17, d16
+
+@ CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee]
+ vsub.f32 s0, s1, s0
+
+@ CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee]
+ vdiv.f64 d16, d17, d16
+
+@ CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee]
+ vdiv.f32 s0, s1, s0
+
+@ CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee]
+ vmul.f64 d16, d17, d16
+
+@ CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee]
+ vmul.f32 s0, s1, s0
+
+@ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee]
+ vnmul.f64 d16, d17, d16
+
+@ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee]
+ vnmul.f32 s0, s1, s0
+
+@ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee]
+ vcmpe.f64 d17, d16
+
+@ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee]
+ vcmpe.f32 s1, s0
+
+@ FIXME: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee]
+@ vcmpe.f64 d16, #0
+
+@ FIXME: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee]
+@ vcmpe.f32 s0, #0
+
+@ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee]
+ vabs.f64 d16, d16
+
+@ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee]
+ vabs.f32 s0, s0
+
+@ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee]
+ vcvt.f32.f64 s0, d16
+
+@ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee]
+ vcvt.f64.f32 d16, s0
+
+@ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee]
+ vneg.f64 d16, d16
+
+@ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee]
+ vneg.f32 s0, s0
+
+@ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee]
+ vsqrt.f64 d16, d16
+
+@ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee]
+ vsqrt.f32 s0, s0
+
+@ CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee]
+ vcvt.f64.s32 d16, s0
+
+@ CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee]
+ vcvt.f32.s32 s0, s0
+
+@ CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee]
+ vcvt.f64.u32 d16, s0
+
+@ CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee]
+ vcvt.f32.u32 s0, s0
+
+@ CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee]
+ vcvt.s32.f64 s0, d16
+
+@ CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee]
+ vcvt.s32.f32 s0, s0
+
+@ CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee]
+ vcvt.u32.f64 s0, d16
+
+@ CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee]
+ vcvt.u32.f32 s0, s0
+
+@ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee]
+ vmla.f64 d16, d18, d17
+
+@ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee]
+ vmla.f32 s1, s2, s0
+
+@ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee]
+ vmls.f64 d16, d18, d17
+
+@ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee]
+ vmls.f32 s1, s2, s0
+
+@ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee]
+ vnmla.f64 d16, d18, d17
+
+@ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee]
+ vnmla.f32 s1, s2, s0
+
+@ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee]
+ vnmls.f64 d16, d18, d17
+
+@ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee]
+ vnmls.f32 s1, s2, s0
+
+@ FIXME: vmrs apsr_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
+@ vmrs apsr_nzcv, fpscr
+
+@ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e]
+ vnegne.f64 d16, d16
+
+@ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e]
+@ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e]
+ vmovne s0, r0
+ vmoveq s0, r1
+
+@ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee]
+ vmrs r0, fpscr
+@ CHECK: vmrs r0, fpexc @ encoding: [0x10,0x0a,0xf8,0xee]
+ vmrs r0, fpexc
+@ CHECK: vmrs r0, fpsid @ encoding: [0x10,0x0a,0xf0,0xee]
+ vmrs r0, fpsid
+
+@ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee]
+ vmsr fpscr, r0
+@ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee]
+ vmsr fpexc, r0
+@ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee]
+ vmsr fpsid, r0
+
+@ FIXME: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
+@ vmov.f64 d16, #3.000000e+00
+
+@ FIXME: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee]
+@ vmov.f32 s0, #3.000000e+00
+
+@ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee]
+@ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee]
+@ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee]
+@ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee]
+ vmov s0, r0
+ vmov s1, r1
+ vmov s2, r2
+ vmov s3, r3
+
+@ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee]
+@ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee]
+@ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee]
+@ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee]
+ vmov r0, s0
+ vmov r1, s1
+ vmov r2, s2
+ vmov r3, s3
+
+@ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]
+ vmov r0, r1, d16
+
+@ CHECK: vldr.64 d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed]
+ vldr.64 d17, [r0]
+
+@ CHECK: vldr.64 d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed]
+@ CHECK: vldr.64 d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed]
+ vldr.64 d1, [r2, #32]
+ vldr.64 d1, [r2, #-32]
+
+@ CHECK: vldr.64 d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed]
+ vldr.64 d2, [r3]
+
+@ CHECK: vldr.64 d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
+@ CHECK: vldr.64 d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
+@ CHECK: vldr.64 d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed]
+ vldr.64 d3, [pc]
+ vldr.64 d3, [pc,#0]
+ vldr.64 d3, [pc,#-0]
+
+@ CHECK: vldr.32 s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed]
+ vldr.32 s13, [r0]
+
+@ CHECK: vldr.32 s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed]
+@ CHECK: vldr.32 s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed]
+ vldr.32 s1, [r2, #32]
+ vldr.32 s1, [r2, #-32]
+
+@ CHECK: vldr.32 s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed]
+ vldr.32 s2, [r3]
+
+@ CHECK: vldr.32 s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
+@ CHECK: vldr.32 s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
+@ CHECK: vldr.32 s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed]
+ vldr.32 s5, [pc]
+ vldr.32 s5, [pc,#0]
+ vldr.32 s5, [pc,#-0]
+
+@ CHECK: vstr.64 d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed]
+@ CHECK: vstr.64 d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed]
+@ CHECK: vstr.64 d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed]
+ vstr.64 d4, [r1]
+ vstr.64 d4, [r1, #24]
+ vstr.64 d4, [r1, #-24]
+
+@ CHECK: vstr.32 s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed]
+@ CHECK: vstr.32 s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed]
+@ CHECK: vstr.32 s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed]
+ vstr.32 s4, [r1]
+ vstr.32 s4, [r1, #24]
+ vstr.32 s4, [r1, #-24]
+
+@ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec]
+@ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec]
+ vldmia r1, {d2,d3-d6,d7}
+ vldmia r1, {s2,s3-s6,s7}
+
+@ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec]
+@ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec]
+ vstmia r1, {d2,d3-d6,d7}
+ vstmia r1, {s2,s3-s6,s7}
+
+@ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee]
+@ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee]
+@ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee]
+@ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee]
+ vcvtr.s32.f64 s0, d0
+ vcvtr.s32.f32 s0, s1
+ vcvtr.u32.f64 s0, d0
+ vcvtr.u32.f32 s0, s1
diff --git a/test/MC/ARM/thumb.s b/test/MC/ARM/thumb.s
new file mode 100644
index 0000000..342a390
--- /dev/null
+++ b/test/MC/ARM/thumb.s
@@ -0,0 +1,70 @@
+@ RUN: llvm-mc -triple thumbv6-apple-darwin -show-encoding < %s | FileCheck %s
+ .code 16
+
+@ CHECK: cmp r1, r2 @ encoding: [0x91,0x42]
+ cmp r1, r2
+
+@ CHECK: pop {r1, r2, r4} @ encoding: [0x16,0xbc]
+ pop {r1, r2, r4}
+
+@ CHECK: trap @ encoding: [0xfe,0xde]
+ trap
+
+@ CHECK: blx r9 @ encoding: [0xc8,0x47]
+ blx r9
+
+@ CHECK: rev r2, r3 @ encoding: [0x1a,0xba]
+@ CHECK: rev16 r3, r4 @ encoding: [0x63,0xba]
+@ CHECK: revsh r5, r6 @ encoding: [0xf5,0xba]
+ rev r2, r3
+ rev16 r3, r4
+ revsh r5, r6
+
+@ CHECK: sxtb r2, r3 @ encoding: [0x5a,0xb2]
+@ CHECK: sxth r2, r3 @ encoding: [0x1a,0xb2]
+ sxtb r2, r3
+ sxth r2, r3
+
+@ CHECK: tst r4, r5 @ encoding: [0x2c,0x42]
+ tst r4, r5
+
+@ CHECK: uxtb r3, r6 @ encoding: [0xf3,0xb2]
+@ CHECK: uxth r3, r6 @ encoding: [0xb3,0xb2]
+ uxtb r3, r6
+ uxth r3, r6
+
+@ CHECK: ldr r3, [r1, r2] @ encoding: [0x8b,0x58]
+ ldr r3, [r1, r2]
+
+@ CHECK: bkpt #2 @ encoding: [0x02,0xbe]
+ bkpt #2
+
+@ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xee,0x91,0x57]
+ mcr p7, #1, r5, c1, c1, #4
+
+@ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e]
+ mrc p14, #0, r1, c1, c2, #4
+
+@ CHECK: mcrr p7, #1, r5, r4, c1 @ encoding: [0x44,0xec,0x11,0x57]
+ mcrr p7, #1, r5, r4, c1
+
+@ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x54,0xec,0x11,0x57]
+ mrrc p7, #1, r5, r4, c1
+
+@ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xee,0x81,0x17]
+ cdp p7, #1, c1, c1, c1, #4
+
+@ CHECK: nop @ encoding: [0x00,0xbf]
+ nop
+
+@ CHECK: yield @ encoding: [0x10,0xbf]
+ yield
+
+@ CHECK: wfe @ encoding: [0x20,0xbf]
+ wfe
+
+@ CHECK: wfi @ encoding: [0x30,0xbf]
+ wfi
+
+@ CHECK: cpsie aif @ encoding: [0x67,0xb6]
+ cpsie aif
diff --git a/test/MC/ARM/thumb2.s b/test/MC/ARM/thumb2.s
new file mode 100644
index 0000000..cd09311
--- /dev/null
+++ b/test/MC/ARM/thumb2.s
@@ -0,0 +1,286 @@
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
+@ XFAIL: *
+.code 16
+
+@ CHECK: adc r1, r1, #171 @ encoding: [0xab,0x01,0x41,0xf1]
+ adc r1, r1, #171
+@ CHECK: adc r1, r1, #1179666 @ encoding: [0x12,0x11,0x41,0xf1]
+ adc r1, r1, #1179666
+@ CHECK: adc r1, r1, #872428544 @ encoding: [0x34,0x21,0x41,0xf1]
+ adc r1, r1, #872428544
+@ CHECK: adc r1, r1, #1448498774 @ encoding: [0x56,0x31,0x41,0xf1]
+ adc r1, r1, #1448498774
+@ CHECK: adc r1, r1, #66846720 @ encoding: [0x7f,0x71,0x41,0xf1]
+ adc r1, r1, #66846720
+
+@ CHECK: mvn r0, #187 @ encoding: [0xbb,0x00,0x6f,0xf0]
+ mvn r0, #187
+@ CHECK: mvn r0, #11141290 @ encoding: [0xaa,0x10,0x6f,0xf0]
+ mvn r0, #11141290
+@ CHECK: mvn r0, #-872363008 @ encoding: [0xcc,0x20,0x6f,0xf0]
+ mvn r0, #-872363008
+@ CHECK: mvn r0, #1114112 @ encoding: [0x88,0x10,0x6f,0xf4]
+ mvn r0, #1114112
+
+@ CHECK: cmp.w r0, #11141290 @ encoding: [0xaa,0x1f,0xb0,0xf1]
+ cmp.w r0, #11141290
+@ CHECK: cmp.w r0, #-872363008 @ encoding: [0xcc,0x2f,0xb0,0xf1]
+ cmp.w r0, #-872363008
+@ CHECK: cmp.w r0, #-572662307 @ encoding: [0xdd,0x3f,0xb0,0xf1]
+ cmp.w r0, #-572662307
+@ CHECK: cmp.w r0, #1114112 @ encoding: [0x88,0x1f,0xb0,0xf5]
+ cmp.w r0, #1114112
+@ CHECK: cmp.w r0, r1, lsl #5 @ encoding: [0x41,0x1f,0xb0,0xeb]
+ cmp.w r0, r1, lsl #5
+
+@ CHECK: sxtab r0, r1, r0 @ encoding: [0x80,0xf0,0x41,0xfa]
+ sxtab r0, r1, r0 @ encoding: [0x80,0xf0,0x41,0xfa]
+
+@ CHECK: movw r0, #65535 @ encoding: [0xff,0x70,0x4f,0xf6]
+ movw r0, #65535
+@ CHECK: movw r1, #43777 @ encoding: [0x01,0x31,0x4a,0xf6]
+ movw r1, #43777
+@ CHECK: movt r1, #427 @ encoding: [0xab,0x11,0xc0,0xf2]
+ movt r1, #427
+@ CHECK: movw r1, #43792 @ encoding: [0x10,0x31,0x4a,0xf6]
+ movw r1, #43792
+@ CHECK: movt r1, #4267 @ encoding: [0xab,0x01,0xc0,0xf2]
+ movt r1, #4267
+@ CHECK: mov.w r0, #66846720 @ encoding: [0x7f,0x70,0x4f,0xf0]
+ mov.w r0, #66846720
+
+@ CHECK: rrx r0, r0 @ encoding: [0x30,0x00,0x4f,0xea]
+ rrx r0, r0
+
+@ CHECK: bfc r0, #4, #20 @ encoding: [0x17,0x10,0x6f,0xf3]
+ bfc r0, #4, #20
+@ CHECK: bfc r0, #0, #23 @ encoding: [0x16,0x00,0x6f,0xf3]
+ bfc r0, #0, #23
+@ CHECK: bfc r0, #12, #20 @ encoding: [0x1f,0x30,0x6f,0xf3]
+ bfc r0, #12, #20
+
+@ CHECK: sbfx r0, r0, #7, #11 @ encoding: [0xca,0x10,0x40,0xf3]
+ sbfx r0, r0, #7, #11
+@ CHECK: ubfx r0, r0, #7, #11 @ encoding: [0xca,0x10,0xc0,0xf3]
+ ubfx r0, r0, #7, #11
+
+@ CHECK: mla r0, r0, r1, r2 @ encoding: [0x01,0x20,0x00,0xfb]
+ mla r0, r0, r1, r2
+@ CHECK: mls r0, r0, r1, r2 @ encoding: [0x11,0x20,0x00,0xfb]
+ mls r0, r0, r1, r2
+
+@ CHECK: smlabt r0, r1, r2, r0 @ encoding: [0x12,0x00,0x11,0xfb]
+ smlabt r0, r1, r2, r0
+
+@ CHECK: clz r0, r0 @ encoding: [0x80,0xf0,0xb0,0xfa]
+ clz r0, r0
+
+@ CHECK: pkhbt r0, r0, r1, lsl #16 @ encoding: [0x01,0x40,0xc0,0xea]
+ pkhbt r0, r0, r1, lsl #16
+@ CHECK: pkhbt r0, r0, r1, lsl #12 @ encoding: [0x01,0x30,0xc0,0xea]
+ pkhbt r0, r0, r1, lsl #16
+@ CHECK: pkhbt r0, r0, r1, lsl #18 @ encoding: [0x81,0x40,0xc0,0xea]
+ pkhbt r0, r0, r1, lsl #18
+@ CHECK: pkhbt r0, r0, r1 @ encoding: [0x01,0x00,0xc0,0xea]
+ pkhbt r0, r0, r1
+@ CHECK: pkhtb r0, r0, r1, asr #16 @ encoding: [0x21,0x40,0xc0,0xea]
+ pkhtb r0, r0, r1, asr #16
+@ CHECK: pkhtb r0, r0, r1, asr #12 @ encoding: [0x21,0x30,0xc0,0xea]
+ pkhtb r0, r0, r1, asr #12
+@ CHECK: pkhtb r0, r0, r1, asr #18 @ encoding: [0xa1,0x40,0xc0,0xea]
+ pkhtb r0, r0, r1, asr #18
+@ CHECK: pkhtb r0, r0, r1, asr #22 @ encoding: [0xa1,0x50,0xc0,0xea]
+ pkhtb r0, r0, r1, asr #22
+
+@ CHECK: str.w r0, [r1, #4092] @ encoding: [0xfc,0x0f,0xc1,0xf8]
+ str.w r0, [r1, #4092]
+@ CHECK: str r0, [r1, #-128] @ encoding: [0x80,0x0c,0x41,0xf8]
+ str r0, [r1, #-128]
+@ CHECK: str.w r0, [r1, r2, lsl #2] @ encoding: [0x22,0x00,0x41,0xf8
+ str.w r0, [r1, r2, lsl #2]
+
+@ CHECK: ldr.w r0, [r0, #4092] @ encoding: [0xfc,0x0f,0xd0,0xf8]
+ ldr.w r0, [r0, #4092]
+@ CHECK: ldr r0, [r0, #-128] @ encoding: [0x80,0x0c,0x50,0xf8]
+ ldr r0, [r0, #-128]
+@ CHECK: ldr.w r0, [r0, r1, lsl #2] @ encoding: [0x21,0x00,0x50,0xf8]
+ ldr.w r0, [r0, r1, lsl #2]
+
+@ CHECK: str r1, [r0, #16]! @ encoding: [0x10,0x1f,0x40,0xf8]
+ str r1, [r0, #16]!
+@ CHECK: strh r1, [r0, #8]! @ encoding: [0x08,0x1f,0x20,0xf8]
+ strh r1, [r0, #8]!
+@ CHECK: strh r2, [r0], #-4 @ encoding: [0x04,0x29,0x20,0xf8]
+ strh r2, [r0], #-4
+@ CHECK: str r2, [r0], #-4 @ encoding: [0x04,0x29,0x40,0xf8]
+ str r2, [r0], #-4
+
+@ CHECK: ldr r2, [r0, #16]! @ encoding: [0x10,0x2f,0x50,0xf8]
+ ldr r2, [r0, #16]!
+@ CHECK: ldr r2, [r0, #-64]! @ encoding: [0x40,0x2d,0x50,0xf8]
+ ldr r2, [r0, #-64]!
+@ CHECK: ldrsb r2, [r0, #4]! @ encoding: [0x04,0x2f,0x10,0xf9]
+ ldrsb r2, [r0, #4]!
+
+@ CHECK: strb.w r0, [r1, #4092] @ encoding: [0xfc,0x0f,0x81,0xf8]
+ strb.w r0, [r1, #4092]
+@ CHECK: strb r0, [r1, #-128] @ encoding: [0x80,0x0c,0x01,0xf8]
+ strb r0, [r1, #-128]
+@ CHECK: strb.w r0, [r1, r2, lsl #2] @ encoding: [0x22,0x00,0x01,0xf8]
+ strb.w r0, [r1, r2, lsl #2]
+@ CHECK: strh.w r0, [r1, #4092] @ encoding: [0xfc,0x0f,0xa1,0xf8]
+ strh.w r0, [r1, #4092]
+@ CHECK: strh r0, [r1, #-128] @ encoding: [0x80,0x0c,0x21,0xf8]
+ strh r0, [r1, #-128]
+@ CHECK: strh r0, [r1, #-128] @ encoding: [0x80,0x0c,0x21,0xf8]
+ strh r0, [r1, #-128]
+@ CHECK: strh.w r0, [r1, r2, lsl #2] @ encoding: [0x22,0x00,0x21,0xf8]
+ strh.w r0, [r1, r2, lsl #2]
+
+@ CHECK: ldrb r0, [r0, #-1] @ encoding: [0x01,0x0c,0x10,0xf8]
+ ldrb r0, [r0, #-1]
+@ CHECK: ldrb r0, [r0, #-128] @ encoding: [0x80,0x0c,0x10,0xf8]
+ ldrb r0, [r0, #-128]
+@ CHECK: ldrb.w r0, [r0, r1, lsl #2] @ encoding: [0x21,0x00,0x10,0xf8]
+ ldrb.w r0, [r0, r1, lsl #2]
+@ CHECK: ldrh.w r0, [r0, #2046] @ encoding: [0xfe,0x07,0xb0,0xf8]
+ ldrh.w r0, [r0, #2046]
+@ CHECK: ldrh r0, [r0, #-128] @ encoding: [0x80,0x0c,0x30,0xf8]
+ ldrh r0, [r0, #-128]
+@ CHECK: ldrh.w r0, [r0, r1, lsl #2] @ encoding: [0x21,0x00,0x30,0xf8]
+ ldrh.w r0, [r0, r1, lsl #2]
+@ CHECK: ldrsb.w r0, [r0] @ encoding: [0x00,0x00,0x90,0xf9]
+ ldrsb.w r0, [r0]
+@ CHECK: ldrsh.w r0, [r0] @ encoding: [0x00,0x00,0xb0,0xf9]
+ ldrsh.w r0, [r0]
+@ CHECK: bfi r0, r0, #5, #7 @ encoding: [0x60,0xf3,0x4b,0x10]
+ bfi r0, r0, #5, #7
+@ CHECK: isb @ encoding: [0xbf,0xf3,0x6f,0x8f]
+ isb
+@ CHECK: mrs r0, cpsr @ encoding: [0xef,0xf3,0x00,0x80]
+ mrs r0, cpsr
+@ CHECK: vmrs r0, fpscr @ encoding: [0xf1,0xee,0x10,0x0a]
+ vmrs r0, fpscr
+@ CHECK: vmrs r0, fpexc @ encoding: [0xf8,0xee,0x10,0x0a]
+ vmrs r0, fpexc
+@ CHECK: vmrs r0, fpsid @ encoding: [0xf0,0xee,0x10,0x0a]
+ vmrs r0, fpsid
+
+@ CHECK: vmsr fpscr, r0 @ encoding: [0xe1,0xee,0x10,0x0a]
+ vmsr fpscr, r0
+@ CHECK: vmsr fpexc, r0 @ encoding: [0xe8,0xee,0x10,0x0a]
+ vmsr fpexc, r0
+@ CHECK: vmsr fpsid, r0 @ encoding: [0xe0,0xee,0x10,0x0a]
+ vmsr fpsid, r0
+
+@ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x21,0xfe,0x91,0x57]
+ mcr2 p7, #1, r5, c1, c1, #4
+
+@ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]
+ mrc2 p14, #0, r1, c1, c2, #4
+
+@ CHECK: mcrr2 p7, #1, r5, r4, c1 @ encoding: [0x44,0xfc,0x11,0x57]
+ mcrr2 p7, #1, r5, r4, c1
+
+@ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x54,0xfc,0x11,0x57]
+ mrrc2 p7, #1, r5, r4, c1
+
+@ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x11,0xfe,0x81,0x17]
+ cdp2 p7, #1, c1, c1, c1, #4
+
+@ CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
+ clrex
+
+@ CHECK: clz r9, r0 @ encoding: [0xb0,0xfa,0x80,0xf9]
+ clz r9, r0
+
+@ CHECK: qadd r1, r2, r3 @ encoding: [0x83,0xfa,0x82,0xf1]
+ qadd r1, r2, r3
+
+@ CHECK: qsub r1, r2, r3 @ encoding: [0x83,0xfa,0xa2,0xf1]
+ qsub r1, r2, r3
+
+@ CHECK: qdadd r1, r2, r3 @ encoding: [0x83,0xfa,0x92,0xf1]
+ qdadd r1, r2, r3
+
+@ CHECK: qdsub r1, r2, r3 @ encoding: [0x83,0xfa,0xb2,0xf1]
+ qdsub r1, r2, r3
+
+@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
+ nop.w
+
+@ CHECK: yield.w @ encoding: [0xaf,0xf3,0x01,0x80]
+ yield.w
+
+@ CHECK: wfe.w @ encoding: [0xaf,0xf3,0x02,0x80]
+ wfe.w
+
+@ CHECK: wfi.w @ encoding: [0xaf,0xf3,0x03,0x80]
+ wfi.w
+
+@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
+ dmb sy
+@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
+ dmb st
+@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
+ dmb ish
+@ CHECK: dmb ishst @ encoding: [0xbf,0xf3,0x5a,0x8f]
+ dmb ishst
+@ CHECK: dmb nsh @ encoding: [0xbf,0xf3,0x57,0x8f]
+ dmb nsh
+@ CHECK: dmb nshst @ encoding: [0xbf,0xf3,0x56,0x8f]
+ dmb nshst
+@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
+ dmb osh
+@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
+ dmb oshst
+
+@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
+ dsb sy
+@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
+ dsb st
+@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
+ dsb ish
+@ CHECK: dsb ishst @ encoding: [0xbf,0xf3,0x4a,0x8f]
+ dsb ishst
+@ CHECK: dsb nsh @ encoding: [0xbf,0xf3,0x47,0x8f]
+ dsb nsh
+@ CHECK: dsb nshst @ encoding: [0xbf,0xf3,0x46,0x8f]
+ dsb nshst
+@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
+ dsb osh
+@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
+ dsb oshst
+
+@ CHECK: cpsie.w aif @ encoding: [0xaf,0xf3,0xe0,0x84]
+ cpsie.w aif
+@ CHECK: cps #15 @ encoding: [0xaf,0xf3,0x0f,0x81]
+ cps #15
+@ CHECK: cpsie.w if, #10 @ encoding: [0xaf,0xf3,0x6a,0x85]
+ cpsie.w if, #10
+
+@ CHECK: msr cpsr_fc, r0 @ encoding: [0x80,0xf3,0x00,0x89]
+ msr apsr, r0
+@ CHECK: msr cpsr_s, r0 @ encoding: [0x80,0xf3,0x00,0x84]
+ msr apsr_g, r0
+@ CHECK: msr cpsr_f, r0 @ encoding: [0x80,0xf3,0x00,0x88]
+ msr apsr_nzcvq, r0
+@ CHECK: msr cpsr_fs, r0 @ encoding: [0x80,0xf3,0x00,0x8c]
+ msr apsr_nzcvqg, r0
+@ CHECK: msr cpsr_fc, r0 @ encoding: [0x80,0xf3,0x00,0x89]
+ msr cpsr_fc, r0
+@ CHECK: msr cpsr_c, r0 @ encoding: [0x80,0xf3,0x00,0x81]
+ msr cpsr_c, r0
+@ CHECK: msr cpsr_x, r0 @ encoding: [0x80,0xf3,0x00,0x82]
+ msr cpsr_x, r0
+@ CHECK: msr cpsr_fc, r0 @ encoding: [0x80,0xf3,0x00,0x89]
+ msr cpsr_fc, r0
+@ CHECK: msr cpsr_fsx, r0 @ encoding: [0x80,0xf3,0x00,0x8e]
+ msr cpsr_fsx, r0
+@ CHECK: msr spsr_fc, r0 @ encoding: [0x90,0xf3,0x00,0x89]
+ msr spsr_fc, r0
+@ CHECK: msr spsr_fsxc, r0 @ encoding: [0x90,0xf3,0x00,0x8f]
+ msr spsr_fsxc, r0
+@ CHECK: msr cpsr_fsxc, r0 @ encoding: [0x80,0xf3,0x00,0x8f]
+ msr cpsr_fsxc, r0
+
diff --git a/test/MC/ARM/thumb2_instructions.s b/test/MC/ARM/thumb2_instructions.s
new file mode 100644
index 0000000..71cd4ae
--- /dev/null
+++ b/test/MC/ARM/thumb2_instructions.s
@@ -0,0 +1,12 @@
+@ RUN: llvm-mc -triple thumbv7-unknown-unknown -show-encoding %s > %t
+@ RUN: FileCheck < %t %s
+
+ .syntax unified
+ .text
+
+@ FIXME: This is not the correct instruction representation, but at least we are
+@ parsing the ldr to something.
+@
+@ CHECK: ldr r0, [r7, #258]
+ ldr r0, [r7, #-8]
+
diff --git a/test/MC/AsmParser/ARM/arm_instructions.s b/test/MC/AsmParser/ARM/arm_instructions.s
deleted file mode 100644
index 8632cb0..0000000
--- a/test/MC/AsmParser/ARM/arm_instructions.s
+++ /dev/null
@@ -1,8 +0,0 @@
-@ RUN: llvm-mc -triple arm-unknown-unknown %s | FileCheck %s
-
-@ CHECK: nop
- nop
-
-@ CHECK: nopeq
- nopeq
-
diff --git a/test/MC/AsmParser/ARM/arm_word_directive.s b/test/MC/AsmParser/ARM/arm_word_directive.s
deleted file mode 100644
index 7833691..0000000
--- a/test/MC/AsmParser/ARM/arm_word_directive.s
+++ /dev/null
@@ -1,6 +0,0 @@
-@ RUN: llvm-mc -triple arm-unknown-unknown %s | FileCheck %s
-
-@ CHECK: TEST0:
-@ CHECK: .long 3
-TEST0:
- .word 3
diff --git a/test/MC/AsmParser/ELF/dg.exp b/test/MC/AsmParser/ELF/dg.exp
deleted file mode 100644
index ca6aefe..0000000
--- a/test/MC/AsmParser/ELF/dg.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-load_lib llvm.exp
-
-if { [llvm_supports_target X86] } {
- RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{s}]]
-}
-
diff --git a/test/MC/AsmParser/X86/x86_32-avx-clmul-encoding.s b/test/MC/AsmParser/X86/x86_32-avx-clmul-encoding.s
deleted file mode 100644
index 47bf980..0000000
--- a/test/MC/AsmParser/X86/x86_32-avx-clmul-encoding.s
+++ /dev/null
@@ -1,42 +0,0 @@
-// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
-
-// CHECK: vpclmulqdq $17, %xmm2, %xmm5, %xmm1
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x11]
- vpclmulhqhqdq %xmm2, %xmm5, %xmm1
-
-// CHECK: vpclmulqdq $17, (%eax), %xmm5, %xmm3
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x11]
- vpclmulhqhqdq (%eax), %xmm5, %xmm3
-
-// CHECK: vpclmulqdq $1, %xmm2, %xmm5, %xmm1
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x01]
- vpclmulhqlqdq %xmm2, %xmm5, %xmm1
-
-// CHECK: vpclmulqdq $1, (%eax), %xmm5, %xmm3
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x01]
- vpclmulhqlqdq (%eax), %xmm5, %xmm3
-
-// CHECK: vpclmulqdq $16, %xmm2, %xmm5, %xmm1
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x10]
- vpclmullqhqdq %xmm2, %xmm5, %xmm1
-
-// CHECK: vpclmulqdq $16, (%eax), %xmm5, %xmm3
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x10]
- vpclmullqhqdq (%eax), %xmm5, %xmm3
-
-// CHECK: vpclmulqdq $0, %xmm2, %xmm5, %xmm1
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x00]
- vpclmullqlqdq %xmm2, %xmm5, %xmm1
-
-// CHECK: vpclmulqdq $0, (%eax), %xmm5, %xmm3
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x00]
- vpclmullqlqdq (%eax), %xmm5, %xmm3
-
-// CHECK: vpclmulqdq $17, %xmm2, %xmm5, %xmm1
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x11]
- vpclmulqdq $17, %xmm2, %xmm5, %xmm1
-
-// CHECK: vpclmulqdq $17, (%eax), %xmm5, %xmm3
-// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x11]
- vpclmulqdq $17, (%eax), %xmm5, %xmm3
-
diff --git a/test/MC/AsmParser/X86/x86_32-bit.s b/test/MC/AsmParser/X86/x86_32-bit.s
deleted file mode 100644
index ca0b26b..0000000
--- a/test/MC/AsmParser/X86/x86_32-bit.s
+++ /dev/null
@@ -1,1631 +0,0 @@
-// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-// XFAIL: *
-
-// CHECK: movb $127, 3735928559(%ebx,%ecx,8)
- movb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movw $31438, 3735928559(%ebx,%ecx,8)
- movw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8)
- movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8)
- movl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx
- movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx
- movswl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx # NOREX
- movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx
- movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: pushl 3735928559(%ebx,%ecx,8)
- pushl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: popl 3735928559(%ebx,%ecx,8)
- popl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: lahf
- lahf
-
-// CHECK: sahf
- sahf
-
-// CHECK: addb $254, 3735928559(%ebx,%ecx,8)
- addb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addb $127, 3735928559(%ebx,%ecx,8)
- addb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addw $31438, 3735928559(%ebx,%ecx,8)
- addw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8)
- addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8)
- addl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: incl 3735928559(%ebx,%ecx,8)
- incl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subb $254, 3735928559(%ebx,%ecx,8)
- subb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subb $127, 3735928559(%ebx,%ecx,8)
- subb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subw $31438, 3735928559(%ebx,%ecx,8)
- subw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8)
- subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8)
- subl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: decl 3735928559(%ebx,%ecx,8)
- decl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8)
- sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8)
- sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8)
- sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8)
- cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8)
- cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8)
- cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8)
- cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8)
- cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testb $127, 3735928559(%ebx,%ecx,8)
- testb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testw $31438, 3735928559(%ebx,%ecx,8)
- testw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8)
- testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8)
- testl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andb $254, 3735928559(%ebx,%ecx,8)
- andb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andb $127, 3735928559(%ebx,%ecx,8)
- andb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andw $31438, 3735928559(%ebx,%ecx,8)
- andw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8)
- andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8)
- andl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orb $254, 3735928559(%ebx,%ecx,8)
- orb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orb $127, 3735928559(%ebx,%ecx,8)
- orb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orw $31438, 3735928559(%ebx,%ecx,8)
- orw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8)
- orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8)
- orl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorb $254, 3735928559(%ebx,%ecx,8)
- xorb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorb $127, 3735928559(%ebx,%ecx,8)
- xorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8)
- xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8)
- xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8)
- xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcb $254, 3735928559(%ebx,%ecx,8)
- adcb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcb $127, 3735928559(%ebx,%ecx,8)
- adcb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8)
- adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8)
- adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8)
- adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: negl 3735928559(%ebx,%ecx,8)
- negl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: notl 3735928559(%ebx,%ecx,8)
- notl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cbtw
- cbtw
-
-// CHECK: cwtl
- cwtl
-
-// CHECK: cwtd
- cwtd
-
-// CHECK: cltd
- cltd
-
-// CHECK: mull 3735928559(%ebx,%ecx,8)
- mull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: imull 3735928559(%ebx,%ecx,8)
- imull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: divl 3735928559(%ebx,%ecx,8)
- divl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: idivl 3735928559(%ebx,%ecx,8)
- idivl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: roll $0, 3735928559(%ebx,%ecx,8)
- roll $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rolb $127, 3735928559(%ebx,%ecx,8)
- rolb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: roll 3735928559(%ebx,%ecx,8)
- roll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rorl $0, 3735928559(%ebx,%ecx,8)
- rorl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rorb $127, 3735928559(%ebx,%ecx,8)
- rorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rorl 3735928559(%ebx,%ecx,8)
- rorl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shll $0, 3735928559(%ebx,%ecx,8)
- shll $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shlb $127, 3735928559(%ebx,%ecx,8)
- shlb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shll 3735928559(%ebx,%ecx,8)
- shll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shrl $0, 3735928559(%ebx,%ecx,8)
- shrl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shrb $127, 3735928559(%ebx,%ecx,8)
- shrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shrl 3735928559(%ebx,%ecx,8)
- shrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sarl $0, 3735928559(%ebx,%ecx,8)
- sarl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sarb $127, 3735928559(%ebx,%ecx,8)
- sarb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sarl 3735928559(%ebx,%ecx,8)
- sarl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: call *%ecx
- call *%ecx
-
-// CHECK: call *3735928559(%ebx,%ecx,8)
- call *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: call *3735928559(%ebx,%ecx,8)
- call *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: jmp *3735928559(%ebx,%ecx,8) # TAILCALL
- jmp *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: jmp *3735928559(%ebx,%ecx,8) # TAILCALL
- jmp *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ljmpl *3735928559(%ebx,%ecx,8)
- ljmpl *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: lret
- lret
-
-// CHECK: leave
- leave
-
-// CHECK: seto %bl
- seto %bl
-
-// CHECK: seto 3735928559(%ebx,%ecx,8)
- seto 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setno %bl
- setno %bl
-
-// CHECK: setno 3735928559(%ebx,%ecx,8)
- setno 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setb %bl
- setb %bl
-
-// CHECK: setb 3735928559(%ebx,%ecx,8)
- setb 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setae %bl
- setae %bl
-
-// CHECK: setae 3735928559(%ebx,%ecx,8)
- setae 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sete %bl
- sete %bl
-
-// CHECK: sete 3735928559(%ebx,%ecx,8)
- sete 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setne %bl
- setne %bl
-
-// CHECK: setne 3735928559(%ebx,%ecx,8)
- setne 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setbe %bl
- setbe %bl
-
-// CHECK: setbe 3735928559(%ebx,%ecx,8)
- setbe 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: seta %bl
- seta %bl
-
-// CHECK: seta 3735928559(%ebx,%ecx,8)
- seta 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sets %bl
- sets %bl
-
-// CHECK: sets 3735928559(%ebx,%ecx,8)
- sets 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setns %bl
- setns %bl
-
-// CHECK: setns 3735928559(%ebx,%ecx,8)
- setns 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setp %bl
- setp %bl
-
-// CHECK: setp 3735928559(%ebx,%ecx,8)
- setp 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setnp %bl
- setnp %bl
-
-// CHECK: setnp 3735928559(%ebx,%ecx,8)
- setnp 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setl %bl
- setl %bl
-
-// CHECK: setl 3735928559(%ebx,%ecx,8)
- setl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setge %bl
- setge %bl
-
-// CHECK: setge 3735928559(%ebx,%ecx,8)
- setge 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setle %bl
- setle %bl
-
-// CHECK: setle 3735928559(%ebx,%ecx,8)
- setle 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setg %bl
- setg %bl
-
-// CHECK: setg 3735928559(%ebx,%ecx,8)
- setg 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: nopl 3735928559(%ebx,%ecx,8)
- nopl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: nop
- nop
-
-// CHECK: fldl 3735928559(%ebx,%ecx,8)
- fldl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fildl 3735928559(%ebx,%ecx,8)
- fildl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fildll 3735928559(%ebx,%ecx,8)
- fildll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fldt 3735928559(%ebx,%ecx,8)
- fldt 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fbld 3735928559(%ebx,%ecx,8)
- fbld 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fstl 3735928559(%ebx,%ecx,8)
- fstl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fistl 3735928559(%ebx,%ecx,8)
- fistl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fstpl 3735928559(%ebx,%ecx,8)
- fstpl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fistpl 3735928559(%ebx,%ecx,8)
- fistpl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fistpll 3735928559(%ebx,%ecx,8)
- fistpll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fstpt 3735928559(%ebx,%ecx,8)
- fstpt 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fbstp 3735928559(%ebx,%ecx,8)
- fbstp 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ficoml 3735928559(%ebx,%ecx,8)
- ficoml 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ficompl 3735928559(%ebx,%ecx,8)
- ficompl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fucompp
- fucompp
-
-// CHECK: ftst
- ftst
-
-// CHECK: fld1
- fld1
-
-// CHECK: fldz
- fldz
-
-// CHECK: faddl 3735928559(%ebx,%ecx,8)
- faddl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fiaddl 3735928559(%ebx,%ecx,8)
- fiaddl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fsubl 3735928559(%ebx,%ecx,8)
- fsubl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fisubl 3735928559(%ebx,%ecx,8)
- fisubl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fsubrl 3735928559(%ebx,%ecx,8)
- fsubrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fisubrl 3735928559(%ebx,%ecx,8)
- fisubrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fmull 3735928559(%ebx,%ecx,8)
- fmull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fimull 3735928559(%ebx,%ecx,8)
- fimull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fdivl 3735928559(%ebx,%ecx,8)
- fdivl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fidivl 3735928559(%ebx,%ecx,8)
- fidivl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fdivrl 3735928559(%ebx,%ecx,8)
- fdivrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fidivrl 3735928559(%ebx,%ecx,8)
- fidivrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fsqrt
- fsqrt
-
-// CHECK: fsin
- fsin
-
-// CHECK: fcos
- fcos
-
-// CHECK: fchs
- fchs
-
-// CHECK: fabs
- fabs
-
-// CHECK: fldcw 3735928559(%ebx,%ecx,8)
- fldcw 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
- fnstcw 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rdtsc
- rdtsc
-
-// CHECK: sysenter
- sysenter
-
-// CHECK: sysexit
- sysexit
-
-// CHECK: ud2
- ud2
-
-// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
- movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: clflush 3735928559(%ebx,%ecx,8)
- clflush 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: emms
- emms
-
-// CHECK: movd %ecx, %mm3
- movd %ecx,%mm3
-
-// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3
- movd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: movd %ecx, %xmm5
- movd %ecx,%xmm5
-
-// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5
- movd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movd %xmm5, %ecx
- movd %xmm5,%ecx
-
-// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8)
- movd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3
- movq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: movq %mm3, %mm3
- movq %mm3,%mm3
-
-// CHECK: movq %mm3, %mm3
- movq %mm3,%mm3
-
-// CHECK: movq %xmm5, %xmm5
- movq %xmm5,%xmm5
-
-// CHECK: movq %xmm5, %xmm5
- movq %xmm5,%xmm5
-
-// CHECK: packssdw %mm3, %mm3
- packssdw %mm3,%mm3
-
-// CHECK: packssdw %xmm5, %xmm5
- packssdw %xmm5,%xmm5
-
-// CHECK: packsswb %mm3, %mm3
- packsswb %mm3,%mm3
-
-// CHECK: packsswb %xmm5, %xmm5
- packsswb %xmm5,%xmm5
-
-// CHECK: packuswb %mm3, %mm3
- packuswb %mm3,%mm3
-
-// CHECK: packuswb %xmm5, %xmm5
- packuswb %xmm5,%xmm5
-
-// CHECK: paddb %mm3, %mm3
- paddb %mm3,%mm3
-
-// CHECK: paddb %xmm5, %xmm5
- paddb %xmm5,%xmm5
-
-// CHECK: paddw %mm3, %mm3
- paddw %mm3,%mm3
-
-// CHECK: paddw %xmm5, %xmm5
- paddw %xmm5,%xmm5
-
-// CHECK: paddd %mm3, %mm3
- paddd %mm3,%mm3
-
-// CHECK: paddd %xmm5, %xmm5
- paddd %xmm5,%xmm5
-
-// CHECK: paddq %mm3, %mm3
- paddq %mm3,%mm3
-
-// CHECK: paddq %xmm5, %xmm5
- paddq %xmm5,%xmm5
-
-// CHECK: paddsb %mm3, %mm3
- paddsb %mm3,%mm3
-
-// CHECK: paddsb %xmm5, %xmm5
- paddsb %xmm5,%xmm5
-
-// CHECK: paddsw %mm3, %mm3
- paddsw %mm3,%mm3
-
-// CHECK: paddsw %xmm5, %xmm5
- paddsw %xmm5,%xmm5
-
-// CHECK: paddusb %mm3, %mm3
- paddusb %mm3,%mm3
-
-// CHECK: paddusb %xmm5, %xmm5
- paddusb %xmm5,%xmm5
-
-// CHECK: paddusw %mm3, %mm3
- paddusw %mm3,%mm3
-
-// CHECK: paddusw %xmm5, %xmm5
- paddusw %xmm5,%xmm5
-
-// CHECK: pand %mm3, %mm3
- pand %mm3,%mm3
-
-// CHECK: pand %xmm5, %xmm5
- pand %xmm5,%xmm5
-
-// CHECK: pandn %mm3, %mm3
- pandn %mm3,%mm3
-
-// CHECK: pandn %xmm5, %xmm5
- pandn %xmm5,%xmm5
-
-// CHECK: pcmpeqb %mm3, %mm3
- pcmpeqb %mm3,%mm3
-
-// CHECK: pcmpeqb %xmm5, %xmm5
- pcmpeqb %xmm5,%xmm5
-
-// CHECK: pcmpeqw %mm3, %mm3
- pcmpeqw %mm3,%mm3
-
-// CHECK: pcmpeqw %xmm5, %xmm5
- pcmpeqw %xmm5,%xmm5
-
-// CHECK: pcmpeqd %mm3, %mm3
- pcmpeqd %mm3,%mm3
-
-// CHECK: pcmpeqd %xmm5, %xmm5
- pcmpeqd %xmm5,%xmm5
-
-// CHECK: pcmpgtb %mm3, %mm3
- pcmpgtb %mm3,%mm3
-
-// CHECK: pcmpgtb %xmm5, %xmm5
- pcmpgtb %xmm5,%xmm5
-
-// CHECK: pcmpgtw %mm3, %mm3
- pcmpgtw %mm3,%mm3
-
-// CHECK: pcmpgtw %xmm5, %xmm5
- pcmpgtw %xmm5,%xmm5
-
-// CHECK: pcmpgtd %mm3, %mm3
- pcmpgtd %mm3,%mm3
-
-// CHECK: pcmpgtd %xmm5, %xmm5
- pcmpgtd %xmm5,%xmm5
-
-// CHECK: pmaddwd %mm3, %mm3
- pmaddwd %mm3,%mm3
-
-// CHECK: pmaddwd %xmm5, %xmm5
- pmaddwd %xmm5,%xmm5
-
-// CHECK: pmulhw %mm3, %mm3
- pmulhw %mm3,%mm3
-
-// CHECK: pmulhw %xmm5, %xmm5
- pmulhw %xmm5,%xmm5
-
-// CHECK: pmullw %mm3, %mm3
- pmullw %mm3,%mm3
-
-// CHECK: pmullw %xmm5, %xmm5
- pmullw %xmm5,%xmm5
-
-// CHECK: por %mm3, %mm3
- por %mm3,%mm3
-
-// CHECK: por %xmm5, %xmm5
- por %xmm5,%xmm5
-
-// CHECK: psllw %mm3, %mm3
- psllw %mm3,%mm3
-
-// CHECK: psllw %xmm5, %xmm5
- psllw %xmm5,%xmm5
-
-// CHECK: psllw $127, %mm3
- psllw $0x7f,%mm3
-
-// CHECK: psllw $127, %xmm5
- psllw $0x7f,%xmm5
-
-// CHECK: pslld %mm3, %mm3
- pslld %mm3,%mm3
-
-// CHECK: pslld %xmm5, %xmm5
- pslld %xmm5,%xmm5
-
-// CHECK: pslld $127, %mm3
- pslld $0x7f,%mm3
-
-// CHECK: pslld $127, %xmm5
- pslld $0x7f,%xmm5
-
-// CHECK: psllq %mm3, %mm3
- psllq %mm3,%mm3
-
-// CHECK: psllq %xmm5, %xmm5
- psllq %xmm5,%xmm5
-
-// CHECK: psllq $127, %mm3
- psllq $0x7f,%mm3
-
-// CHECK: psllq $127, %xmm5
- psllq $0x7f,%xmm5
-
-// CHECK: psraw %mm3, %mm3
- psraw %mm3,%mm3
-
-// CHECK: psraw %xmm5, %xmm5
- psraw %xmm5,%xmm5
-
-// CHECK: psraw $127, %mm3
- psraw $0x7f,%mm3
-
-// CHECK: psraw $127, %xmm5
- psraw $0x7f,%xmm5
-
-// CHECK: psrad %mm3, %mm3
- psrad %mm3,%mm3
-
-// CHECK: psrad %xmm5, %xmm5
- psrad %xmm5,%xmm5
-
-// CHECK: psrad $127, %mm3
- psrad $0x7f,%mm3
-
-// CHECK: psrad $127, %xmm5
- psrad $0x7f,%xmm5
-
-// CHECK: psrlw %mm3, %mm3
- psrlw %mm3,%mm3
-
-// CHECK: psrlw %xmm5, %xmm5
- psrlw %xmm5,%xmm5
-
-// CHECK: psrlw $127, %mm3
- psrlw $0x7f,%mm3
-
-// CHECK: psrlw $127, %xmm5
- psrlw $0x7f,%xmm5
-
-// CHECK: psrld %mm3, %mm3
- psrld %mm3,%mm3
-
-// CHECK: psrld %xmm5, %xmm5
- psrld %xmm5,%xmm5
-
-// CHECK: psrld $127, %mm3
- psrld $0x7f,%mm3
-
-// CHECK: psrld $127, %xmm5
- psrld $0x7f,%xmm5
-
-// CHECK: psrlq %mm3, %mm3
- psrlq %mm3,%mm3
-
-// CHECK: psrlq %xmm5, %xmm5
- psrlq %xmm5,%xmm5
-
-// CHECK: psrlq $127, %mm3
- psrlq $0x7f,%mm3
-
-// CHECK: psrlq $127, %xmm5
- psrlq $0x7f,%xmm5
-
-// CHECK: psubb %mm3, %mm3
- psubb %mm3,%mm3
-
-// CHECK: psubb %xmm5, %xmm5
- psubb %xmm5,%xmm5
-
-// CHECK: psubw %mm3, %mm3
- psubw %mm3,%mm3
-
-// CHECK: psubw %xmm5, %xmm5
- psubw %xmm5,%xmm5
-
-// CHECK: psubd %mm3, %mm3
- psubd %mm3,%mm3
-
-// CHECK: psubd %xmm5, %xmm5
- psubd %xmm5,%xmm5
-
-// CHECK: psubq %mm3, %mm3
- psubq %mm3,%mm3
-
-// CHECK: psubq %xmm5, %xmm5
- psubq %xmm5,%xmm5
-
-// CHECK: psubsb %mm3, %mm3
- psubsb %mm3,%mm3
-
-// CHECK: psubsb %xmm5, %xmm5
- psubsb %xmm5,%xmm5
-
-// CHECK: psubsw %mm3, %mm3
- psubsw %mm3,%mm3
-
-// CHECK: psubsw %xmm5, %xmm5
- psubsw %xmm5,%xmm5
-
-// CHECK: psubusb %mm3, %mm3
- psubusb %mm3,%mm3
-
-// CHECK: psubusb %xmm5, %xmm5
- psubusb %xmm5,%xmm5
-
-// CHECK: psubusw %mm3, %mm3
- psubusw %mm3,%mm3
-
-// CHECK: psubusw %xmm5, %xmm5
- psubusw %xmm5,%xmm5
-
-// CHECK: punpckhbw %mm3, %mm3
- punpckhbw %mm3,%mm3
-
-// CHECK: punpckhbw %xmm5, %xmm5
- punpckhbw %xmm5,%xmm5
-
-// CHECK: punpckhwd %mm3, %mm3
- punpckhwd %mm3,%mm3
-
-// CHECK: punpckhwd %xmm5, %xmm5
- punpckhwd %xmm5,%xmm5
-
-// CHECK: punpckhdq %mm3, %mm3
- punpckhdq %mm3,%mm3
-
-// CHECK: punpckhdq %xmm5, %xmm5
- punpckhdq %xmm5,%xmm5
-
-// CHECK: punpcklbw %mm3, %mm3
- punpcklbw %mm3,%mm3
-
-// CHECK: punpcklbw %xmm5, %xmm5
- punpcklbw %xmm5,%xmm5
-
-// CHECK: punpcklwd %mm3, %mm3
- punpcklwd %mm3,%mm3
-
-// CHECK: punpcklwd %xmm5, %xmm5
- punpcklwd %xmm5,%xmm5
-
-// CHECK: punpckldq %mm3, %mm3
- punpckldq %mm3,%mm3
-
-// CHECK: punpckldq %xmm5, %xmm5
- punpckldq %xmm5,%xmm5
-
-// CHECK: pxor %mm3, %mm3
- pxor %mm3,%mm3
-
-// CHECK: pxor %xmm5, %xmm5
- pxor %xmm5,%xmm5
-
-// CHECK: addps %xmm5, %xmm5
- addps %xmm5,%xmm5
-
-// CHECK: addss %xmm5, %xmm5
- addss %xmm5,%xmm5
-
-// CHECK: andnps %xmm5, %xmm5
- andnps %xmm5,%xmm5
-
-// CHECK: andps %xmm5, %xmm5
- andps %xmm5,%xmm5
-
-// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5
- cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpi2ps %mm3, %xmm5
- cvtpi2ps %mm3,%xmm5
-
-// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3
- cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvtps2pi %xmm5, %mm3
- cvtps2pi %xmm5,%mm3
-
-// CHECK: cvtsi2ss %ecx, %xmm5
- cvtsi2ss %ecx,%xmm5
-
-// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5
- cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3
- cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvttps2pi %xmm5, %mm3
- cvttps2pi %xmm5,%mm3
-
-// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx
- cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: cvttss2si %xmm5, %ecx
- cvttss2si %xmm5,%ecx
-
-// CHECK: divps %xmm5, %xmm5
- divps %xmm5,%xmm5
-
-// CHECK: divss %xmm5, %xmm5
- divss %xmm5,%xmm5
-
-// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8)
- ldmxcsr 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: maskmovq %mm3, %mm3
- maskmovq %mm3,%mm3
-
-// CHECK: maxps %xmm5, %xmm5
- maxps %xmm5,%xmm5
-
-// CHECK: maxss %xmm5, %xmm5
- maxss %xmm5,%xmm5
-
-// CHECK: minps %xmm5, %xmm5
- minps %xmm5,%xmm5
-
-// CHECK: minss %xmm5, %xmm5
- minss %xmm5,%xmm5
-
-// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5
- movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movaps %xmm5, %xmm5
- movaps %xmm5,%xmm5
-
-// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8)
- movaps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movaps %xmm5, %xmm5
- movaps %xmm5,%xmm5
-
-// CHECK: movhlps %xmm5, %xmm5
- movhlps %xmm5,%xmm5
-
-// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8)
- movhps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movlhps %xmm5, %xmm5
- movlhps %xmm5,%xmm5
-
-// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8)
- movlps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movmskps %xmm5, %ecx
- movmskps %xmm5,%ecx
-
-// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8)
- movntps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8)
- movntq %mm3,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8)
- movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5
- movss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movss %xmm5, %xmm5
- movss %xmm5,%xmm5
-
-// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8)
- movss %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movss %xmm5, %xmm5
- movss %xmm5,%xmm5
-
-// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5
- movups 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movups %xmm5, %xmm5
- movups %xmm5,%xmm5
-
-// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8)
- movups %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movups %xmm5, %xmm5
- movups %xmm5,%xmm5
-
-// CHECK: mulps %xmm5, %xmm5
- mulps %xmm5,%xmm5
-
-// CHECK: mulss %xmm5, %xmm5
- mulss %xmm5,%xmm5
-
-// CHECK: orps %xmm5, %xmm5
- orps %xmm5,%xmm5
-
-// CHECK: pavgb %mm3, %mm3
- pavgb %mm3,%mm3
-
-// CHECK: pavgb %xmm5, %xmm5
- pavgb %xmm5,%xmm5
-
-// CHECK: pavgw %mm3, %mm3
- pavgw %mm3,%mm3
-
-// CHECK: pavgw %xmm5, %xmm5
- pavgw %xmm5,%xmm5
-
-// CHECK: pmaxsw %mm3, %mm3
- pmaxsw %mm3,%mm3
-
-// CHECK: pmaxsw %xmm5, %xmm5
- pmaxsw %xmm5,%xmm5
-
-// CHECK: pmaxub %mm3, %mm3
- pmaxub %mm3,%mm3
-
-// CHECK: pmaxub %xmm5, %xmm5
- pmaxub %xmm5,%xmm5
-
-// CHECK: pminsw %mm3, %mm3
- pminsw %mm3,%mm3
-
-// CHECK: pminsw %xmm5, %xmm5
- pminsw %xmm5,%xmm5
-
-// CHECK: pminub %mm3, %mm3
- pminub %mm3,%mm3
-
-// CHECK: pminub %xmm5, %xmm5
- pminub %xmm5,%xmm5
-
-// CHECK: pmovmskb %mm3, %ecx
- pmovmskb %mm3,%ecx
-
-// CHECK: pmovmskb %xmm5, %ecx
- pmovmskb %xmm5,%ecx
-
-// CHECK: pmulhuw %mm3, %mm3
- pmulhuw %mm3,%mm3
-
-// CHECK: pmulhuw %xmm5, %xmm5
- pmulhuw %xmm5,%xmm5
-
-// CHECK: prefetchnta 3735928559(%ebx,%ecx,8)
- prefetchnta 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetcht0 3735928559(%ebx,%ecx,8)
- prefetcht0 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetcht1 3735928559(%ebx,%ecx,8)
- prefetcht1 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetcht2 3735928559(%ebx,%ecx,8)
- prefetcht2 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: psadbw %mm3, %mm3
- psadbw %mm3,%mm3
-
-// CHECK: psadbw %xmm5, %xmm5
- psadbw %xmm5,%xmm5
-
-// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5
- rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rcpps %xmm5, %xmm5
- rcpps %xmm5,%xmm5
-
-// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5
- rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rcpss %xmm5, %xmm5
- rcpss %xmm5,%xmm5
-
-// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5
- rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rsqrtps %xmm5, %xmm5
- rsqrtps %xmm5,%xmm5
-
-// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5
- rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rsqrtss %xmm5, %xmm5
- rsqrtss %xmm5,%xmm5
-
-// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5
- sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtps %xmm5, %xmm5
- sqrtps %xmm5,%xmm5
-
-// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5
- sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtss %xmm5, %xmm5
- sqrtss %xmm5,%xmm5
-
-// CHECK: stmxcsr 3735928559(%ebx,%ecx,8)
- stmxcsr 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subps %xmm5, %xmm5
- subps %xmm5,%xmm5
-
-// CHECK: subss %xmm5, %xmm5
- subss %xmm5,%xmm5
-
-// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5
- ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: ucomiss %xmm5, %xmm5
- ucomiss %xmm5,%xmm5
-
-// CHECK: unpckhps %xmm5, %xmm5
- unpckhps %xmm5,%xmm5
-
-// CHECK: unpcklps %xmm5, %xmm5
- unpcklps %xmm5,%xmm5
-
-// CHECK: xorps %xmm5, %xmm5
- xorps %xmm5,%xmm5
-
-// CHECK: addpd %xmm5, %xmm5
- addpd %xmm5,%xmm5
-
-// CHECK: addsd %xmm5, %xmm5
- addsd %xmm5,%xmm5
-
-// CHECK: andnpd %xmm5, %xmm5
- andnpd %xmm5,%xmm5
-
-// CHECK: andpd %xmm5, %xmm5
- andpd %xmm5,%xmm5
-
-// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5
- comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: comisd %xmm5, %xmm5
- comisd %xmm5,%xmm5
-
-// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5
- cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpi2pd %mm3, %xmm5
- cvtpi2pd %mm3,%xmm5
-
-// CHECK: cvtsi2sd %ecx, %xmm5
- cvtsi2sd %ecx,%xmm5
-
-// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5
- cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: divpd %xmm5, %xmm5
- divpd %xmm5,%xmm5
-
-// CHECK: divsd %xmm5, %xmm5
- divsd %xmm5,%xmm5
-
-// CHECK: maxpd %xmm5, %xmm5
- maxpd %xmm5,%xmm5
-
-// CHECK: maxsd %xmm5, %xmm5
- maxsd %xmm5,%xmm5
-
-// CHECK: minpd %xmm5, %xmm5
- minpd %xmm5,%xmm5
-
-// CHECK: minsd %xmm5, %xmm5
- minsd %xmm5,%xmm5
-
-// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5
- movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movapd %xmm5, %xmm5
- movapd %xmm5,%xmm5
-
-// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8)
- movapd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movapd %xmm5, %xmm5
- movapd %xmm5,%xmm5
-
-// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8)
- movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8)
- movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movmskpd %xmm5, %ecx
- movmskpd %xmm5,%ecx
-
-// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8)
- movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5
- movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movsd %xmm5, %xmm5
- movsd %xmm5,%xmm5
-
-// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8)
- movsd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movsd %xmm5, %xmm5
- movsd %xmm5,%xmm5
-
-// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5
- movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movupd %xmm5, %xmm5
- movupd %xmm5,%xmm5
-
-// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8)
- movupd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movupd %xmm5, %xmm5
- movupd %xmm5,%xmm5
-
-// CHECK: mulpd %xmm5, %xmm5
- mulpd %xmm5,%xmm5
-
-// CHECK: mulsd %xmm5, %xmm5
- mulsd %xmm5,%xmm5
-
-// CHECK: orpd %xmm5, %xmm5
- orpd %xmm5,%xmm5
-
-// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5
- sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtpd %xmm5, %xmm5
- sqrtpd %xmm5,%xmm5
-
-// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5
- sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtsd %xmm5, %xmm5
- sqrtsd %xmm5,%xmm5
-
-// CHECK: subpd %xmm5, %xmm5
- subpd %xmm5,%xmm5
-
-// CHECK: subsd %xmm5, %xmm5
- subsd %xmm5,%xmm5
-
-// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5
- ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: ucomisd %xmm5, %xmm5
- ucomisd %xmm5,%xmm5
-
-// CHECK: unpckhpd %xmm5, %xmm5
- unpckhpd %xmm5,%xmm5
-
-// CHECK: unpcklpd %xmm5, %xmm5
- unpcklpd %xmm5,%xmm5
-
-// CHECK: xorpd %xmm5, %xmm5
- xorpd %xmm5,%xmm5
-
-// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5
- cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtdq2pd %xmm5, %xmm5
- cvtdq2pd %xmm5,%xmm5
-
-// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5
- cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpd2dq %xmm5, %xmm5
- cvtpd2dq %xmm5,%xmm5
-
-// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5
- cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtdq2ps %xmm5, %xmm5
- cvtdq2ps %xmm5,%xmm5
-
-// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3
- cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvtpd2pi %xmm5, %mm3
- cvtpd2pi %xmm5,%mm3
-
-// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5
- cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtps2dq %xmm5, %xmm5
- cvtps2dq %xmm5,%xmm5
-
-// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5
- cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtsd2ss %xmm5, %xmm5
- cvtsd2ss %xmm5,%xmm5
-
-// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5
- cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtss2sd %xmm5, %xmm5
- cvtss2sd %xmm5,%xmm5
-
-// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3
- cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvttpd2pi %xmm5, %mm3
- cvttpd2pi %xmm5,%mm3
-
-// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx
- cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: cvttsd2si %xmm5, %ecx
- cvttsd2si %xmm5,%ecx
-
-// CHECK: maskmovdqu %xmm5, %xmm5
- maskmovdqu %xmm5,%xmm5
-
-// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5
- movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movdqa %xmm5, %xmm5
- movdqa %xmm5,%xmm5
-
-// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8)
- movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movdqa %xmm5, %xmm5
- movdqa %xmm5,%xmm5
-
-// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5
- movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8)
- movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movdq2q %xmm5, %mm3
- movdq2q %xmm5,%mm3
-
-// CHECK: movq2dq %mm3, %xmm5
- movq2dq %mm3,%xmm5
-
-// CHECK: pmuludq %mm3, %mm3
- pmuludq %mm3,%mm3
-
-// CHECK: pmuludq %xmm5, %xmm5
- pmuludq %xmm5,%xmm5
-
-// CHECK: pslldq $127, %xmm5
- pslldq $0x7f,%xmm5
-
-// CHECK: psrldq $127, %xmm5
- psrldq $0x7f,%xmm5
-
-// CHECK: punpckhqdq %xmm5, %xmm5
- punpckhqdq %xmm5,%xmm5
-
-// CHECK: punpcklqdq %xmm5, %xmm5
- punpcklqdq %xmm5,%xmm5
-
-// CHECK: addsubpd %xmm5, %xmm5
- addsubpd %xmm5,%xmm5
-
-// CHECK: addsubps %xmm5, %xmm5
- addsubps %xmm5,%xmm5
-
-// CHECK: haddpd %xmm5, %xmm5
- haddpd %xmm5,%xmm5
-
-// CHECK: haddps %xmm5, %xmm5
- haddps %xmm5,%xmm5
-
-// CHECK: hsubpd %xmm5, %xmm5
- hsubpd %xmm5,%xmm5
-
-// CHECK: hsubps %xmm5, %xmm5
- hsubps %xmm5,%xmm5
-
-// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5
- lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5
- movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movddup %xmm5, %xmm5
- movddup %xmm5,%xmm5
-
-// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5
- movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movshdup %xmm5, %xmm5
- movshdup %xmm5,%xmm5
-
-// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5
- movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movsldup %xmm5, %xmm5
- movsldup %xmm5,%xmm5
-
-// CHECK: phaddw %mm3, %mm3
- phaddw %mm3,%mm3
-
-// CHECK: phaddw %xmm5, %xmm5
- phaddw %xmm5,%xmm5
-
-// CHECK: phaddd %mm3, %mm3
- phaddd %mm3,%mm3
-
-// CHECK: phaddd %xmm5, %xmm5
- phaddd %xmm5,%xmm5
-
-// CHECK: phaddsw %mm3, %mm3
- phaddsw %mm3,%mm3
-
-// CHECK: phaddsw %xmm5, %xmm5
- phaddsw %xmm5,%xmm5
-
-// CHECK: phsubw %mm3, %mm3
- phsubw %mm3,%mm3
-
-// CHECK: phsubw %xmm5, %xmm5
- phsubw %xmm5,%xmm5
-
-// CHECK: phsubd %mm3, %mm3
- phsubd %mm3,%mm3
-
-// CHECK: phsubd %xmm5, %xmm5
- phsubd %xmm5,%xmm5
-
-// CHECK: phsubsw %mm3, %mm3
- phsubsw %mm3,%mm3
-
-// CHECK: phsubsw %xmm5, %xmm5
- phsubsw %xmm5,%xmm5
-
-// CHECK: pmaddubsw %mm3, %mm3
- pmaddubsw %mm3,%mm3
-
-// CHECK: pmaddubsw %xmm5, %xmm5
- pmaddubsw %xmm5,%xmm5
-
-// CHECK: pmulhrsw %mm3, %mm3
- pmulhrsw %mm3,%mm3
-
-// CHECK: pmulhrsw %xmm5, %xmm5
- pmulhrsw %xmm5,%xmm5
-
-// CHECK: pshufb %mm3, %mm3
- pshufb %mm3,%mm3
-
-// CHECK: pshufb %xmm5, %xmm5
- pshufb %xmm5,%xmm5
-
-// CHECK: psignb %mm3, %mm3
- psignb %mm3,%mm3
-
-// CHECK: psignb %xmm5, %xmm5
- psignb %xmm5,%xmm5
-
-// CHECK: psignw %mm3, %mm3
- psignw %mm3,%mm3
-
-// CHECK: psignw %xmm5, %xmm5
- psignw %xmm5,%xmm5
-
-// CHECK: psignd %mm3, %mm3
- psignd %mm3,%mm3
-
-// CHECK: psignd %xmm5, %xmm5
- psignd %xmm5,%xmm5
-
-// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3
- pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pabsb %mm3, %mm3
- pabsb %mm3,%mm3
-
-// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5
- pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pabsb %xmm5, %xmm5
- pabsb %xmm5,%xmm5
-
-// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3
- pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pabsw %mm3, %mm3
- pabsw %mm3,%mm3
-
-// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5
- pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pabsw %xmm5, %xmm5
- pabsw %xmm5,%xmm5
-
-// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3
- pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pabsd %mm3, %mm3
- pabsd %mm3,%mm3
-
-// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5
- pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pabsd %xmm5, %xmm5
- pabsd %xmm5,%xmm5
-
-// CHECK: femms
- femms
-
-// CHECK: packusdw %xmm5, %xmm5
- packusdw %xmm5,%xmm5
-
-// CHECK: pcmpeqq %xmm5, %xmm5
- pcmpeqq %xmm5,%xmm5
-
-// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5
- phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phminposuw %xmm5, %xmm5
- phminposuw %xmm5,%xmm5
-
-// CHECK: pmaxsb %xmm5, %xmm5
- pmaxsb %xmm5,%xmm5
-
-// CHECK: pmaxsd %xmm5, %xmm5
- pmaxsd %xmm5,%xmm5
-
-// CHECK: pmaxud %xmm5, %xmm5
- pmaxud %xmm5,%xmm5
-
-// CHECK: pmaxuw %xmm5, %xmm5
- pmaxuw %xmm5,%xmm5
-
-// CHECK: pminsb %xmm5, %xmm5
- pminsb %xmm5,%xmm5
-
-// CHECK: pminsd %xmm5, %xmm5
- pminsd %xmm5,%xmm5
-
-// CHECK: pminud %xmm5, %xmm5
- pminud %xmm5,%xmm5
-
-// CHECK: pminuw %xmm5, %xmm5
- pminuw %xmm5,%xmm5
-
-// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxbw %xmm5, %xmm5
- pmovsxbw %xmm5,%xmm5
-
-// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxbd %xmm5, %xmm5
- pmovsxbd %xmm5,%xmm5
-
-// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxbq %xmm5, %xmm5
- pmovsxbq %xmm5,%xmm5
-
-// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxwd %xmm5, %xmm5
- pmovsxwd %xmm5,%xmm5
-
-// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxwq %xmm5, %xmm5
- pmovsxwq %xmm5,%xmm5
-
-// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxdq %xmm5, %xmm5
- pmovsxdq %xmm5,%xmm5
-
-// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxbw %xmm5, %xmm5
- pmovzxbw %xmm5,%xmm5
-
-// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxbd %xmm5, %xmm5
- pmovzxbd %xmm5,%xmm5
-
-// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxbq %xmm5, %xmm5
- pmovzxbq %xmm5,%xmm5
-
-// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxwd %xmm5, %xmm5
- pmovzxwd %xmm5,%xmm5
-
-// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxwq %xmm5, %xmm5
- pmovzxwq %xmm5,%xmm5
-
-// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxdq %xmm5, %xmm5
- pmovzxdq %xmm5,%xmm5
-
-// CHECK: pmuldq %xmm5, %xmm5
- pmuldq %xmm5,%xmm5
-
-// CHECK: pmulld %xmm5, %xmm5
- pmulld %xmm5,%xmm5
-
-// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5
- ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: ptest %xmm5, %xmm5
- ptest %xmm5,%xmm5
-
-// CHECK: pcmpgtq %xmm5, %xmm5
- pcmpgtq %xmm5,%xmm5
diff --git a/test/MC/AsmParser/X86/x86_32-bit_cat.s b/test/MC/AsmParser/X86/x86_32-bit_cat.s
deleted file mode 100644
index 9002c60..0000000
--- a/test/MC/AsmParser/X86/x86_32-bit_cat.s
+++ /dev/null
@@ -1,7862 +0,0 @@
-// This is the current set of tests that can pass though llvm-mc as it were a
-// logical cat(1) and then reassemble to the same instruction. All of these
-// will not yet encode correctly. The subset that will encode correctly are in
-// the file x86_32-encoding.s (and other tests that encode are in x86_32-bit.s).
-
-// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
-// XFAIL: *
-
-
-// CHECK: movb $127, 3735928559(%ebx,%ecx,8)
- movb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movb $127, 69
- movb $0x7f,0x45
-
-// CHECK: movb $127, 32493
- movb $0x7f,0x7eed
-
-// CHECK: movb $127, 3133065982
- movb $0x7f,0xbabecafe
-
-// CHECK: movb $127, 305419896
- movb $0x7f,0x12345678
-
-// CHECK: movw $31438, 3735928559(%ebx,%ecx,8)
- movw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movw $31438, 69
- movw $0x7ace,0x45
-
-// CHECK: movw $31438, 32493
- movw $0x7ace,0x7eed
-
-// CHECK: movw $31438, 3133065982
- movw $0x7ace,0xbabecafe
-
-// CHECK: movw $31438, 305419896
- movw $0x7ace,0x12345678
-
-// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8)
- movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movl $2063514302, 69
- movl $0x7afebabe,0x45
-
-// CHECK: movl $2063514302, 32493
- movl $0x7afebabe,0x7eed
-
-// CHECK: movl $2063514302, 3133065982
- movl $0x7afebabe,0xbabecafe
-
-// CHECK: movl $2063514302, 305419896
- movl $0x7afebabe,0x12345678
-
-// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8)
- movl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movl $324478056, 69
- movl $0x13572468,0x45
-
-// CHECK: movl $324478056, 32493
- movl $0x13572468,0x7eed
-
-// CHECK: movl $324478056, 3133065982
- movl $0x13572468,0xbabecafe
-
-// CHECK: movl $324478056, 305419896
- movl $0x13572468,0x12345678
-
-// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx
- movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movsbl 69, %ecx
- movsbl 0x45,%ecx
-
-// CHECK: movsbl 32493, %ecx
- movsbl 0x7eed,%ecx
-
-// CHECK: movsbl 3133065982, %ecx
- movsbl 0xbabecafe,%ecx
-
-// CHECK: movsbl 305419896, %ecx
- movsbl 0x12345678,%ecx
-
-// CHECK: movsbw 3735928559(%ebx,%ecx,8), %bx
- movsbw 0xdeadbeef(%ebx,%ecx,8),%bx
-
-// CHECK: movsbw 69, %bx
- movsbw 0x45,%bx
-
-// CHECK: movsbw 32493, %bx
- movsbw 0x7eed,%bx
-
-// CHECK: movsbw 3133065982, %bx
- movsbw 0xbabecafe,%bx
-
-// CHECK: movsbw 305419896, %bx
- movsbw 0x12345678,%bx
-
-// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx
- movswl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movswl 69, %ecx
- movswl 0x45,%ecx
-
-// CHECK: movswl 32493, %ecx
- movswl 0x7eed,%ecx
-
-// CHECK: movswl 3133065982, %ecx
- movswl 0xbabecafe,%ecx
-
-// CHECK: movswl 305419896, %ecx
- movswl 0x12345678,%ecx
-
-// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx # NOREX
- movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movzbl 69, %ecx # NOREX
- movzbl 0x45,%ecx
-
-// CHECK: movzbl 32493, %ecx # NOREX
- movzbl 0x7eed,%ecx
-
-// CHECK: movzbl 3133065982, %ecx # NOREX
- movzbl 0xbabecafe,%ecx
-
-// CHECK: movzbl 305419896, %ecx # NOREX
- movzbl 0x12345678,%ecx
-
-// CHECK: movzbw 3735928559(%ebx,%ecx,8), %bx
- movzbw 0xdeadbeef(%ebx,%ecx,8),%bx
-
-// CHECK: movzbw 69, %bx
- movzbw 0x45,%bx
-
-// CHECK: movzbw 32493, %bx
- movzbw 0x7eed,%bx
-
-// CHECK: movzbw 3133065982, %bx
- movzbw 0xbabecafe,%bx
-
-// CHECK: movzbw 305419896, %bx
- movzbw 0x12345678,%bx
-
-// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx
- movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: movzwl 69, %ecx
- movzwl 0x45,%ecx
-
-// CHECK: movzwl 32493, %ecx
- movzwl 0x7eed,%ecx
-
-// CHECK: movzwl 3133065982, %ecx
- movzwl 0xbabecafe,%ecx
-
-// CHECK: movzwl 305419896, %ecx
- movzwl 0x12345678,%ecx
-
-// CHECK: pushw 32493
- pushw 0x7eed
-
-// CHECK: popw 32493
- popw 0x7eed
-
-// CHECK: pushf
- pushfl
-
-// CHECK: pushfl
- pushfl
-
-// CHECK: popf
- popfl
-
-// CHECK: popfl
- popfl
-
-// CHECK: clc
- clc
-
-// CHECK: cld
- cld
-
-// CHECK: cli
- cli
-
-// CHECK: clts
- clts
-
-// CHECK: cmc
- cmc
-
-// CHECK: lahf
- lahf
-
-// CHECK: sahf
- sahf
-
-// CHECK: stc
- stc
-
-// CHECK: std
- std
-
-// CHECK: sti
- sti
-
-// CHECK: addb $254, 3735928559(%ebx,%ecx,8)
- addb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addb $254, 69
- addb $0xfe,0x45
-
-// CHECK: addb $254, 32493
- addb $0xfe,0x7eed
-
-// CHECK: addb $254, 3133065982
- addb $0xfe,0xbabecafe
-
-// CHECK: addb $254, 305419896
- addb $0xfe,0x12345678
-
-// CHECK: addb $127, 3735928559(%ebx,%ecx,8)
- addb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addb $127, 69
- addb $0x7f,0x45
-
-// CHECK: addb $127, 32493
- addb $0x7f,0x7eed
-
-// CHECK: addb $127, 3133065982
- addb $0x7f,0xbabecafe
-
-// CHECK: addb $127, 305419896
- addb $0x7f,0x12345678
-
-// CHECK: addw $31438, 3735928559(%ebx,%ecx,8)
- addw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addw $31438, 69
- addw $0x7ace,0x45
-
-// CHECK: addw $31438, 32493
- addw $0x7ace,0x7eed
-
-// CHECK: addw $31438, 3133065982
- addw $0x7ace,0xbabecafe
-
-// CHECK: addw $31438, 305419896
- addw $0x7ace,0x12345678
-
-// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8)
- addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addl $2063514302, 69
- addl $0x7afebabe,0x45
-
-// CHECK: addl $2063514302, 32493
- addl $0x7afebabe,0x7eed
-
-// CHECK: addl $2063514302, 3133065982
- addl $0x7afebabe,0xbabecafe
-
-// CHECK: addl $2063514302, 305419896
- addl $0x7afebabe,0x12345678
-
-// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8)
- addl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: addl $324478056, 69
- addl $0x13572468,0x45
-
-// CHECK: addl $324478056, 32493
- addl $0x13572468,0x7eed
-
-// CHECK: addl $324478056, 3133065982
- addl $0x13572468,0xbabecafe
-
-// CHECK: addl $324478056, 305419896
- addl $0x13572468,0x12345678
-
-// CHECK: incl 3735928559(%ebx,%ecx,8)
- incl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: incw 32493
- incw 0x7eed
-
-// CHECK: incl 3133065982
- incl 0xbabecafe
-
-// CHECK: incl 305419896
- incl 0x12345678
-
-// CHECK: subb $254, 3735928559(%ebx,%ecx,8)
- subb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subb $254, 69
- subb $0xfe,0x45
-
-// CHECK: subb $254, 32493
- subb $0xfe,0x7eed
-
-// CHECK: subb $254, 3133065982
- subb $0xfe,0xbabecafe
-
-// CHECK: subb $254, 305419896
- subb $0xfe,0x12345678
-
-// CHECK: subb $127, 3735928559(%ebx,%ecx,8)
- subb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subb $127, 69
- subb $0x7f,0x45
-
-// CHECK: subb $127, 32493
- subb $0x7f,0x7eed
-
-// CHECK: subb $127, 3133065982
- subb $0x7f,0xbabecafe
-
-// CHECK: subb $127, 305419896
- subb $0x7f,0x12345678
-
-// CHECK: subw $31438, 3735928559(%ebx,%ecx,8)
- subw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subw $31438, 69
- subw $0x7ace,0x45
-
-// CHECK: subw $31438, 32493
- subw $0x7ace,0x7eed
-
-// CHECK: subw $31438, 3133065982
- subw $0x7ace,0xbabecafe
-
-// CHECK: subw $31438, 305419896
- subw $0x7ace,0x12345678
-
-// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8)
- subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subl $2063514302, 69
- subl $0x7afebabe,0x45
-
-// CHECK: subl $2063514302, 32493
- subl $0x7afebabe,0x7eed
-
-// CHECK: subl $2063514302, 3133065982
- subl $0x7afebabe,0xbabecafe
-
-// CHECK: subl $2063514302, 305419896
- subl $0x7afebabe,0x12345678
-
-// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8)
- subl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: subl $324478056, 69
- subl $0x13572468,0x45
-
-// CHECK: subl $324478056, 32493
- subl $0x13572468,0x7eed
-
-// CHECK: subl $324478056, 3133065982
- subl $0x13572468,0xbabecafe
-
-// CHECK: subl $324478056, 305419896
- subl $0x13572468,0x12345678
-
-// CHECK: decl 3735928559(%ebx,%ecx,8)
- decl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: decw 32493
- decw 0x7eed
-
-// CHECK: decl 3133065982
- decl 0xbabecafe
-
-// CHECK: decl 305419896
- decl 0x12345678
-
-// CHECK: sbbb $254, 3735928559(%ebx,%ecx,8)
- sbbb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbb $254, 69
- sbbb $0xfe,0x45
-
-// CHECK: sbbb $254, 32493
- sbbb $0xfe,0x7eed
-
-// CHECK: sbbb $254, 3133065982
- sbbb $0xfe,0xbabecafe
-
-// CHECK: sbbb $254, 305419896
- sbbb $0xfe,0x12345678
-
-// CHECK: sbbb $127, 3735928559(%ebx,%ecx,8)
- sbbb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbb $127, 69
- sbbb $0x7f,0x45
-
-// CHECK: sbbb $127, 32493
- sbbb $0x7f,0x7eed
-
-// CHECK: sbbb $127, 3133065982
- sbbb $0x7f,0xbabecafe
-
-// CHECK: sbbb $127, 305419896
- sbbb $0x7f,0x12345678
-
-// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8)
- sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbw $31438, 69
- sbbw $0x7ace,0x45
-
-// CHECK: sbbw $31438, 32493
- sbbw $0x7ace,0x7eed
-
-// CHECK: sbbw $31438, 3133065982
- sbbw $0x7ace,0xbabecafe
-
-// CHECK: sbbw $31438, 305419896
- sbbw $0x7ace,0x12345678
-
-// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8)
- sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbl $2063514302, 69
- sbbl $0x7afebabe,0x45
-
-// CHECK: sbbl $2063514302, 32493
- sbbl $0x7afebabe,0x7eed
-
-// CHECK: sbbl $2063514302, 3133065982
- sbbl $0x7afebabe,0xbabecafe
-
-// CHECK: sbbl $2063514302, 305419896
- sbbl $0x7afebabe,0x12345678
-
-// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8)
- sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sbbl $324478056, 69
- sbbl $0x13572468,0x45
-
-// CHECK: sbbl $324478056, 32493
- sbbl $0x13572468,0x7eed
-
-// CHECK: sbbl $324478056, 3133065982
- sbbl $0x13572468,0xbabecafe
-
-// CHECK: sbbl $324478056, 305419896
- sbbl $0x13572468,0x12345678
-
-// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8)
- cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpb $254, 69
- cmpb $0xfe,0x45
-
-// CHECK: cmpb $254, 32493
- cmpb $0xfe,0x7eed
-
-// CHECK: cmpb $254, 3133065982
- cmpb $0xfe,0xbabecafe
-
-// CHECK: cmpb $254, 305419896
- cmpb $0xfe,0x12345678
-
-// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8)
- cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpb $127, 69
- cmpb $0x7f,0x45
-
-// CHECK: cmpb $127, 32493
- cmpb $0x7f,0x7eed
-
-// CHECK: cmpb $127, 3133065982
- cmpb $0x7f,0xbabecafe
-
-// CHECK: cmpb $127, 305419896
- cmpb $0x7f,0x12345678
-
-// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8)
- cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpw $31438, 69
- cmpw $0x7ace,0x45
-
-// CHECK: cmpw $31438, 32493
- cmpw $0x7ace,0x7eed
-
-// CHECK: cmpw $31438, 3133065982
- cmpw $0x7ace,0xbabecafe
-
-// CHECK: cmpw $31438, 305419896
- cmpw $0x7ace,0x12345678
-
-// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8)
- cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpl $2063514302, 69
- cmpl $0x7afebabe,0x45
-
-// CHECK: cmpl $2063514302, 32493
- cmpl $0x7afebabe,0x7eed
-
-// CHECK: cmpl $2063514302, 3133065982
- cmpl $0x7afebabe,0xbabecafe
-
-// CHECK: cmpl $2063514302, 305419896
- cmpl $0x7afebabe,0x12345678
-
-// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8)
- cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpl $324478056, 69
- cmpl $0x13572468,0x45
-
-// CHECK: cmpl $324478056, 32493
- cmpl $0x13572468,0x7eed
-
-// CHECK: cmpl $324478056, 3133065982
- cmpl $0x13572468,0xbabecafe
-
-// CHECK: cmpl $324478056, 305419896
- cmpl $0x13572468,0x12345678
-
-// CHECK: testb $127, 3735928559(%ebx,%ecx,8)
- testb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testb $127, 69
- testb $0x7f,0x45
-
-// CHECK: testb $127, 32493
- testb $0x7f,0x7eed
-
-// CHECK: testb $127, 3133065982
- testb $0x7f,0xbabecafe
-
-// CHECK: testb $127, 305419896
- testb $0x7f,0x12345678
-
-// CHECK: testw $31438, 3735928559(%ebx,%ecx,8)
- testw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testw $31438, 69
- testw $0x7ace,0x45
-
-// CHECK: testw $31438, 32493
- testw $0x7ace,0x7eed
-
-// CHECK: testw $31438, 3133065982
- testw $0x7ace,0xbabecafe
-
-// CHECK: testw $31438, 305419896
- testw $0x7ace,0x12345678
-
-// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8)
- testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testl $2063514302, 69
- testl $0x7afebabe,0x45
-
-// CHECK: testl $2063514302, 32493
- testl $0x7afebabe,0x7eed
-
-// CHECK: testl $2063514302, 3133065982
- testl $0x7afebabe,0xbabecafe
-
-// CHECK: testl $2063514302, 305419896
- testl $0x7afebabe,0x12345678
-
-// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8)
- testl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: testl $324478056, 69
- testl $0x13572468,0x45
-
-// CHECK: testl $324478056, 32493
- testl $0x13572468,0x7eed
-
-// CHECK: testl $324478056, 3133065982
- testl $0x13572468,0xbabecafe
-
-// CHECK: testl $324478056, 305419896
- testl $0x13572468,0x12345678
-
-// CHECK: andb $254, 3735928559(%ebx,%ecx,8)
- andb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andb $254, 69
- andb $0xfe,0x45
-
-// CHECK: andb $254, 32493
- andb $0xfe,0x7eed
-
-// CHECK: andb $254, 3133065982
- andb $0xfe,0xbabecafe
-
-// CHECK: andb $254, 305419896
- andb $0xfe,0x12345678
-
-// CHECK: andb $127, 3735928559(%ebx,%ecx,8)
- andb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andb $127, 69
- andb $0x7f,0x45
-
-// CHECK: andb $127, 32493
- andb $0x7f,0x7eed
-
-// CHECK: andb $127, 3133065982
- andb $0x7f,0xbabecafe
-
-// CHECK: andb $127, 305419896
- andb $0x7f,0x12345678
-
-// CHECK: andw $31438, 3735928559(%ebx,%ecx,8)
- andw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andw $31438, 69
- andw $0x7ace,0x45
-
-// CHECK: andw $31438, 32493
- andw $0x7ace,0x7eed
-
-// CHECK: andw $31438, 3133065982
- andw $0x7ace,0xbabecafe
-
-// CHECK: andw $31438, 305419896
- andw $0x7ace,0x12345678
-
-// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8)
- andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andl $2063514302, 69
- andl $0x7afebabe,0x45
-
-// CHECK: andl $2063514302, 32493
- andl $0x7afebabe,0x7eed
-
-// CHECK: andl $2063514302, 3133065982
- andl $0x7afebabe,0xbabecafe
-
-// CHECK: andl $2063514302, 305419896
- andl $0x7afebabe,0x12345678
-
-// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8)
- andl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: andl $324478056, 69
- andl $0x13572468,0x45
-
-// CHECK: andl $324478056, 32493
- andl $0x13572468,0x7eed
-
-// CHECK: andl $324478056, 3133065982
- andl $0x13572468,0xbabecafe
-
-// CHECK: andl $324478056, 305419896
- andl $0x13572468,0x12345678
-
-// CHECK: orb $254, 3735928559(%ebx,%ecx,8)
- orb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orb $254, 69
- orb $0xfe,0x45
-
-// CHECK: orb $254, 32493
- orb $0xfe,0x7eed
-
-// CHECK: orb $254, 3133065982
- orb $0xfe,0xbabecafe
-
-// CHECK: orb $254, 305419896
- orb $0xfe,0x12345678
-
-// CHECK: orb $127, 3735928559(%ebx,%ecx,8)
- orb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orb $127, 69
- orb $0x7f,0x45
-
-// CHECK: orb $127, 32493
- orb $0x7f,0x7eed
-
-// CHECK: orb $127, 3133065982
- orb $0x7f,0xbabecafe
-
-// CHECK: orb $127, 305419896
- orb $0x7f,0x12345678
-
-// CHECK: orw $31438, 3735928559(%ebx,%ecx,8)
- orw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orw $31438, 69
- orw $0x7ace,0x45
-
-// CHECK: orw $31438, 32493
- orw $0x7ace,0x7eed
-
-// CHECK: orw $31438, 3133065982
- orw $0x7ace,0xbabecafe
-
-// CHECK: orw $31438, 305419896
- orw $0x7ace,0x12345678
-
-// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8)
- orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orl $2063514302, 69
- orl $0x7afebabe,0x45
-
-// CHECK: orl $2063514302, 32493
- orl $0x7afebabe,0x7eed
-
-// CHECK: orl $2063514302, 3133065982
- orl $0x7afebabe,0xbabecafe
-
-// CHECK: orl $2063514302, 305419896
- orl $0x7afebabe,0x12345678
-
-// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8)
- orl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: orl $324478056, 69
- orl $0x13572468,0x45
-
-// CHECK: orl $324478056, 32493
- orl $0x13572468,0x7eed
-
-// CHECK: orl $324478056, 3133065982
- orl $0x13572468,0xbabecafe
-
-// CHECK: orl $324478056, 305419896
- orl $0x13572468,0x12345678
-
-// CHECK: xorb $254, 3735928559(%ebx,%ecx,8)
- xorb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorb $254, 69
- xorb $0xfe,0x45
-
-// CHECK: xorb $254, 32493
- xorb $0xfe,0x7eed
-
-// CHECK: xorb $254, 3133065982
- xorb $0xfe,0xbabecafe
-
-// CHECK: xorb $254, 305419896
- xorb $0xfe,0x12345678
-
-// CHECK: xorb $127, 3735928559(%ebx,%ecx,8)
- xorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorb $127, 69
- xorb $0x7f,0x45
-
-// CHECK: xorb $127, 32493
- xorb $0x7f,0x7eed
-
-// CHECK: xorb $127, 3133065982
- xorb $0x7f,0xbabecafe
-
-// CHECK: xorb $127, 305419896
- xorb $0x7f,0x12345678
-
-// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8)
- xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorw $31438, 69
- xorw $0x7ace,0x45
-
-// CHECK: xorw $31438, 32493
- xorw $0x7ace,0x7eed
-
-// CHECK: xorw $31438, 3133065982
- xorw $0x7ace,0xbabecafe
-
-// CHECK: xorw $31438, 305419896
- xorw $0x7ace,0x12345678
-
-// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8)
- xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorl $2063514302, 69
- xorl $0x7afebabe,0x45
-
-// CHECK: xorl $2063514302, 32493
- xorl $0x7afebabe,0x7eed
-
-// CHECK: xorl $2063514302, 3133065982
- xorl $0x7afebabe,0xbabecafe
-
-// CHECK: xorl $2063514302, 305419896
- xorl $0x7afebabe,0x12345678
-
-// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8)
- xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: xorl $324478056, 69
- xorl $0x13572468,0x45
-
-// CHECK: xorl $324478056, 32493
- xorl $0x13572468,0x7eed
-
-// CHECK: xorl $324478056, 3133065982
- xorl $0x13572468,0xbabecafe
-
-// CHECK: xorl $324478056, 305419896
- xorl $0x13572468,0x12345678
-
-// CHECK: adcb $254, 3735928559(%ebx,%ecx,8)
- adcb $0xfe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcb $254, 69
- adcb $0xfe,0x45
-
-// CHECK: adcb $254, 32493
- adcb $0xfe,0x7eed
-
-// CHECK: adcb $254, 3133065982
- adcb $0xfe,0xbabecafe
-
-// CHECK: adcb $254, 305419896
- adcb $0xfe,0x12345678
-
-// CHECK: adcb $127, 3735928559(%ebx,%ecx,8)
- adcb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcb $127, 69
- adcb $0x7f,0x45
-
-// CHECK: adcb $127, 32493
- adcb $0x7f,0x7eed
-
-// CHECK: adcb $127, 3133065982
- adcb $0x7f,0xbabecafe
-
-// CHECK: adcb $127, 305419896
- adcb $0x7f,0x12345678
-
-// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8)
- adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcw $31438, 69
- adcw $0x7ace,0x45
-
-// CHECK: adcw $31438, 32493
- adcw $0x7ace,0x7eed
-
-// CHECK: adcw $31438, 3133065982
- adcw $0x7ace,0xbabecafe
-
-// CHECK: adcw $31438, 305419896
- adcw $0x7ace,0x12345678
-
-// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8)
- adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcl $2063514302, 69
- adcl $0x7afebabe,0x45
-
-// CHECK: adcl $2063514302, 32493
- adcl $0x7afebabe,0x7eed
-
-// CHECK: adcl $2063514302, 3133065982
- adcl $0x7afebabe,0xbabecafe
-
-// CHECK: adcl $2063514302, 305419896
- adcl $0x7afebabe,0x12345678
-
-// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8)
- adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: adcl $324478056, 69
- adcl $0x13572468,0x45
-
-// CHECK: adcl $324478056, 32493
- adcl $0x13572468,0x7eed
-
-// CHECK: adcl $324478056, 3133065982
- adcl $0x13572468,0xbabecafe
-
-// CHECK: adcl $324478056, 305419896
- adcl $0x13572468,0x12345678
-
-// CHECK: negl 3735928559(%ebx,%ecx,8)
- negl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: negw 32493
- negw 0x7eed
-
-// CHECK: negl 3133065982
- negl 0xbabecafe
-
-// CHECK: negl 305419896
- negl 0x12345678
-
-// CHECK: notl 3735928559(%ebx,%ecx,8)
- notl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: notw 32493
- notw 0x7eed
-
-// CHECK: notl 3133065982
- notl 0xbabecafe
-
-// CHECK: notl 305419896
- notl 0x12345678
-
-// CHECK: cbtw
- cbtw
-
-// CHECK: cwtl
- cwtl
-
-// CHECK: cwtd
- cwtd
-
-// CHECK: cltd
- cltd
-
-// CHECK: mull 3735928559(%ebx,%ecx,8)
- mull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: mulw 32493
- mulw 0x7eed
-
-// CHECK: mull 3133065982
- mull 0xbabecafe
-
-// CHECK: mull 305419896
- mull 0x12345678
-
-// CHECK: imull 3735928559(%ebx,%ecx,8)
- imull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: imulw 32493
- imulw 0x7eed
-
-// CHECK: imull 3133065982
- imull 0xbabecafe
-
-// CHECK: imull 305419896
- imull 0x12345678
-
-// CHECK: divl 3735928559(%ebx,%ecx,8)
- divl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: divw 32493
- divw 0x7eed
-
-// CHECK: divl 3133065982
- divl 0xbabecafe
-
-// CHECK: divl 305419896
- divl 0x12345678
-
-// CHECK: idivl 3735928559(%ebx,%ecx,8)
- idivl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: idivw 32493
- idivw 0x7eed
-
-// CHECK: idivl 3133065982
- idivl 0xbabecafe
-
-// CHECK: idivl 305419896
- idivl 0x12345678
-
-// CHECK: roll $0, 3735928559(%ebx,%ecx,8)
- roll $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: roll $0, 69
- roll $0,0x45
-
-// CHECK: roll $0, 32493
- roll $0,0x7eed
-
-// CHECK: roll $0, 3133065982
- roll $0,0xbabecafe
-
-// CHECK: roll $0, 305419896
- roll $0,0x12345678
-
-// CHECK: rolb $127, 3735928559(%ebx,%ecx,8)
- rolb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rolb $127, 69
- rolb $0x7f,0x45
-
-// CHECK: rolb $127, 32493
- rolb $0x7f,0x7eed
-
-// CHECK: rolb $127, 3133065982
- rolb $0x7f,0xbabecafe
-
-// CHECK: rolb $127, 305419896
- rolb $0x7f,0x12345678
-
-// CHECK: roll 3735928559(%ebx,%ecx,8)
- roll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rolw 32493
- rolw 0x7eed
-
-// CHECK: roll 3133065982
- roll 0xbabecafe
-
-// CHECK: roll 305419896
- roll 0x12345678
-
-// CHECK: rorl $0, 3735928559(%ebx,%ecx,8)
- rorl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rorl $0, 69
- rorl $0,0x45
-
-// CHECK: rorl $0, 32493
- rorl $0,0x7eed
-
-// CHECK: rorl $0, 3133065982
- rorl $0,0xbabecafe
-
-// CHECK: rorl $0, 305419896
- rorl $0,0x12345678
-
-// CHECK: rorb $127, 3735928559(%ebx,%ecx,8)
- rorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rorb $127, 69
- rorb $0x7f,0x45
-
-// CHECK: rorb $127, 32493
- rorb $0x7f,0x7eed
-
-// CHECK: rorb $127, 3133065982
- rorb $0x7f,0xbabecafe
-
-// CHECK: rorb $127, 305419896
- rorb $0x7f,0x12345678
-
-// CHECK: rorl 3735928559(%ebx,%ecx,8)
- rorl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rorw 32493
- rorw 0x7eed
-
-// CHECK: rorl 3133065982
- rorl 0xbabecafe
-
-// CHECK: rorl 305419896
- rorl 0x12345678
-
-// CHECK: rcll $0, 3735928559(%ebx,%ecx,8)
- rcll $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rcll $0, 69
- rcll $0,0x45
-
-// CHECK: rcll $0, 32493
- rcll $0,0x7eed
-
-// CHECK: rcll $0, 3133065982
- rcll $0,0xbabecafe
-
-// CHECK: rcll $0, 305419896
- rcll $0,0x12345678
-
-// CHECK: rclb $127, 3735928559(%ebx,%ecx,8)
- rclb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rclb $127, 69
- rclb $0x7f,0x45
-
-// CHECK: rclb $127, 32493
- rclb $0x7f,0x7eed
-
-// CHECK: rclb $127, 3133065982
- rclb $0x7f,0xbabecafe
-
-// CHECK: rclb $127, 305419896
- rclb $0x7f,0x12345678
-
-// CHECK: rcrl $0, 3735928559(%ebx,%ecx,8)
- rcrl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rcrl $0, 69
- rcrl $0,0x45
-
-// CHECK: rcrl $0, 32493
- rcrl $0,0x7eed
-
-// CHECK: rcrl $0, 3133065982
- rcrl $0,0xbabecafe
-
-// CHECK: rcrl $0, 305419896
- rcrl $0,0x12345678
-
-// CHECK: rcrb $127, 3735928559(%ebx,%ecx,8)
- rcrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: rcrb $127, 69
- rcrb $0x7f,0x45
-
-// CHECK: rcrb $127, 32493
- rcrb $0x7f,0x7eed
-
-// CHECK: rcrb $127, 3133065982
- rcrb $0x7f,0xbabecafe
-
-// CHECK: rcrb $127, 305419896
- rcrb $0x7f,0x12345678
-
-// CHECK: shll $0, 3735928559(%ebx,%ecx,8)
- sall $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shll $0, 69
- sall $0,0x45
-
-// CHECK: shll $0, 32493
- sall $0,0x7eed
-
-// CHECK: shll $0, 3133065982
- sall $0,0xbabecafe
-
-// CHECK: shll $0, 305419896
- sall $0,0x12345678
-
-// CHECK: shlb $127, 3735928559(%ebx,%ecx,8)
- salb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shlb $127, 69
- salb $0x7f,0x45
-
-// CHECK: shlb $127, 32493
- salb $0x7f,0x7eed
-
-// CHECK: shlb $127, 3133065982
- salb $0x7f,0xbabecafe
-
-// CHECK: shlb $127, 305419896
- salb $0x7f,0x12345678
-
-// CHECK: shll 3735928559(%ebx,%ecx,8)
- sall 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shlw 32493
- salw 0x7eed
-
-// CHECK: shll 3133065982
- sall 0xbabecafe
-
-// CHECK: shll 305419896
- sall 0x12345678
-
-// CHECK: shll $0, 3735928559(%ebx,%ecx,8)
- shll $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shll $0, 69
- shll $0,0x45
-
-// CHECK: shll $0, 32493
- shll $0,0x7eed
-
-// CHECK: shll $0, 3133065982
- shll $0,0xbabecafe
-
-// CHECK: shll $0, 305419896
- shll $0,0x12345678
-
-// CHECK: shlb $127, 3735928559(%ebx,%ecx,8)
- shlb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shlb $127, 69
- shlb $0x7f,0x45
-
-// CHECK: shlb $127, 32493
- shlb $0x7f,0x7eed
-
-// CHECK: shlb $127, 3133065982
- shlb $0x7f,0xbabecafe
-
-// CHECK: shlb $127, 305419896
- shlb $0x7f,0x12345678
-
-// CHECK: shll 3735928559(%ebx,%ecx,8)
- shll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shlw 32493
- shlw 0x7eed
-
-// CHECK: shll 3133065982
- shll 0xbabecafe
-
-// CHECK: shll 305419896
- shll 0x12345678
-
-// CHECK: shrl $0, 3735928559(%ebx,%ecx,8)
- shrl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shrl $0, 69
- shrl $0,0x45
-
-// CHECK: shrl $0, 32493
- shrl $0,0x7eed
-
-// CHECK: shrl $0, 3133065982
- shrl $0,0xbabecafe
-
-// CHECK: shrl $0, 305419896
- shrl $0,0x12345678
-
-// CHECK: shrb $127, 3735928559(%ebx,%ecx,8)
- shrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shrb $127, 69
- shrb $0x7f,0x45
-
-// CHECK: shrb $127, 32493
- shrb $0x7f,0x7eed
-
-// CHECK: shrb $127, 3133065982
- shrb $0x7f,0xbabecafe
-
-// CHECK: shrb $127, 305419896
- shrb $0x7f,0x12345678
-
-// CHECK: shrl 3735928559(%ebx,%ecx,8)
- shrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: shrw 32493
- shrw 0x7eed
-
-// CHECK: shrl 3133065982
- shrl 0xbabecafe
-
-// CHECK: shrl 305419896
- shrl 0x12345678
-
-// CHECK: sarl $0, 3735928559(%ebx,%ecx,8)
- sarl $0,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sarl $0, 69
- sarl $0,0x45
-
-// CHECK: sarl $0, 32493
- sarl $0,0x7eed
-
-// CHECK: sarl $0, 3133065982
- sarl $0,0xbabecafe
-
-// CHECK: sarl $0, 305419896
- sarl $0,0x12345678
-
-// CHECK: sarb $127, 3735928559(%ebx,%ecx,8)
- sarb $0x7f,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sarb $127, 69
- sarb $0x7f,0x45
-
-// CHECK: sarb $127, 32493
- sarb $0x7f,0x7eed
-
-// CHECK: sarb $127, 3133065982
- sarb $0x7f,0xbabecafe
-
-// CHECK: sarb $127, 305419896
- sarb $0x7f,0x12345678
-
-// CHECK: sarl 3735928559(%ebx,%ecx,8)
- sarl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sarw 32493
- sarw 0x7eed
-
-// CHECK: sarl 3133065982
- sarl 0xbabecafe
-
-// CHECK: sarl 305419896
- sarl 0x12345678
-
-// CHECK: call 3133065982
- call 0xbabecafe
-
-// CHECK: call *3735928559(%ebx,%ecx,8)
- call *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: call 3133065982
- call 0xbabecafe
-
-// CHECK: call 305419896
- call 0x12345678
-
-// CHECK: call *3135175374
- call *0xbadeface
-
-// CHECK: call *3735928559(%ebx,%ecx,8)
- call *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: call 32493
- call 0x7eed
-
-// CHECK: call 3133065982
- call 0xbabecafe
-
-// CHECK: call 305419896
- call 0x12345678
-
-// CHECK: call *3135175374
- call *0xbadeface
-
-// CHECK: lcallw *32493
- lcallw *0x7eed
-
-// CHECK: jmp 32493
- jmp 0x7eed
-
-// CHECK: jmp 3133065982
- jmp 0xbabecafe
-
-// CHECK: jmp 305419896
- jmp 0x12345678
-
-// CHECK: jmp -77129852792157442
- jmp 0xfeedfacebabecafe
-
-// CHECK: jmp *3735928559(%ebx,%ecx,8)
- jmp *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: jmp 32493
- jmp 0x7eed
-
-// CHECK: jmp 3133065982
- jmp 0xbabecafe
-
-// CHECK: jmp 305419896
- jmp 0x12345678
-
-// CHECK: jmp *3135175374
- jmp *0xbadeface
-
-// CHECK: jmp *3735928559(%ebx,%ecx,8)
- jmp *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: jmp 32493
- jmp 0x7eed
-
-// CHECK: jmp 3133065982
- jmp 0xbabecafe
-
-// CHECK: jmp 305419896
- jmp 0x12345678
-
-// CHECK: jmp *3135175374
- jmp *0xbadeface
-
-// CHECK: ljmpl *3735928559(%ebx,%ecx,8)
- ljmpl *0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ljmpw *32493
- ljmpw *0x7eed
-
-// CHECK: ljmpl *3133065982
- ljmpl *0xbabecafe
-
-// CHECK: ljmpl *305419896
- ljmpl *0x12345678
-
-// CHECK: ret
- ret
-
-// CHECK: lret
- lret
-
-// CHECK: enter $31438, $127
- enter $0x7ace,$0x7f
-
-// CHECK: leave
- leave
-
-// CHECK: jo 32493
- jo 0x7eed
-
-// CHECK: jo 3133065982
- jo 0xbabecafe
-
-// CHECK: jo 305419896
- jo 0x12345678
-
-// CHECK: jo -77129852792157442
- jo 0xfeedfacebabecafe
-
-// CHECK: jno 32493
- jno 0x7eed
-
-// CHECK: jno 3133065982
- jno 0xbabecafe
-
-// CHECK: jno 305419896
- jno 0x12345678
-
-// CHECK: jno -77129852792157442
- jno 0xfeedfacebabecafe
-
-// CHECK: jb 32493
- jb 0x7eed
-
-// CHECK: jb 3133065982
- jb 0xbabecafe
-
-// CHECK: jb 305419896
- jb 0x12345678
-
-// CHECK: jb -77129852792157442
- jb 0xfeedfacebabecafe
-
-// CHECK: jae 32493
- jae 0x7eed
-
-// CHECK: jae 3133065982
- jae 0xbabecafe
-
-// CHECK: jae 305419896
- jae 0x12345678
-
-// CHECK: jae -77129852792157442
- jae 0xfeedfacebabecafe
-
-// CHECK: je 32493
- je 0x7eed
-
-// CHECK: je 3133065982
- je 0xbabecafe
-
-// CHECK: je 305419896
- je 0x12345678
-
-// CHECK: je -77129852792157442
- je 0xfeedfacebabecafe
-
-// CHECK: jne 32493
- jne 0x7eed
-
-// CHECK: jne 3133065982
- jne 0xbabecafe
-
-// CHECK: jne 305419896
- jne 0x12345678
-
-// CHECK: jne -77129852792157442
- jne 0xfeedfacebabecafe
-
-// CHECK: jbe 32493
- jbe 0x7eed
-
-// CHECK: jbe 3133065982
- jbe 0xbabecafe
-
-// CHECK: jbe 305419896
- jbe 0x12345678
-
-// CHECK: jbe -77129852792157442
- jbe 0xfeedfacebabecafe
-
-// CHECK: ja 32493
- ja 0x7eed
-
-// CHECK: ja 3133065982
- ja 0xbabecafe
-
-// CHECK: ja 305419896
- ja 0x12345678
-
-// CHECK: ja -77129852792157442
- ja 0xfeedfacebabecafe
-
-// CHECK: js 32493
- js 0x7eed
-
-// CHECK: js 3133065982
- js 0xbabecafe
-
-// CHECK: js 305419896
- js 0x12345678
-
-// CHECK: js -77129852792157442
- js 0xfeedfacebabecafe
-
-// CHECK: jns 32493
- jns 0x7eed
-
-// CHECK: jns 3133065982
- jns 0xbabecafe
-
-// CHECK: jns 305419896
- jns 0x12345678
-
-// CHECK: jns -77129852792157442
- jns 0xfeedfacebabecafe
-
-// CHECK: jp 32493
- jp 0x7eed
-
-// CHECK: jp 3133065982
- jp 0xbabecafe
-
-// CHECK: jp 305419896
- jp 0x12345678
-
-// CHECK: jp -77129852792157442
- jp 0xfeedfacebabecafe
-
-// CHECK: jnp 32493
- jnp 0x7eed
-
-// CHECK: jnp 3133065982
- jnp 0xbabecafe
-
-// CHECK: jnp 305419896
- jnp 0x12345678
-
-// CHECK: jnp -77129852792157442
- jnp 0xfeedfacebabecafe
-
-// CHECK: jl 32493
- jl 0x7eed
-
-// CHECK: jl 3133065982
- jl 0xbabecafe
-
-// CHECK: jl 305419896
- jl 0x12345678
-
-// CHECK: jl -77129852792157442
- jl 0xfeedfacebabecafe
-
-// CHECK: jge 32493
- jge 0x7eed
-
-// CHECK: jge 3133065982
- jge 0xbabecafe
-
-// CHECK: jge 305419896
- jge 0x12345678
-
-// CHECK: jge -77129852792157442
- jge 0xfeedfacebabecafe
-
-// CHECK: jle 32493
- jle 0x7eed
-
-// CHECK: jle 3133065982
- jle 0xbabecafe
-
-// CHECK: jle 305419896
- jle 0x12345678
-
-// CHECK: jle -77129852792157442
- jle 0xfeedfacebabecafe
-
-// CHECK: jg 32493
- jg 0x7eed
-
-// CHECK: jg 3133065982
- jg 0xbabecafe
-
-// CHECK: jg 305419896
- jg 0x12345678
-
-// CHECK: jg -77129852792157442
- jg 0xfeedfacebabecafe
-
-// CHECK: seto %bl
- seto %bl
-
-// CHECK: seto 3735928559(%ebx,%ecx,8)
- seto 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: seto 32493
- seto 0x7eed
-
-// CHECK: seto 3133065982
- seto 0xbabecafe
-
-// CHECK: seto 305419896
- seto 0x12345678
-
-// CHECK: setno %bl
- setno %bl
-
-// CHECK: setno 3735928559(%ebx,%ecx,8)
- setno 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setno 32493
- setno 0x7eed
-
-// CHECK: setno 3133065982
- setno 0xbabecafe
-
-// CHECK: setno 305419896
- setno 0x12345678
-
-// CHECK: setb %bl
- setb %bl
-
-// CHECK: setb 3735928559(%ebx,%ecx,8)
- setb 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setb 32493
- setb 0x7eed
-
-// CHECK: setb 3133065982
- setb 0xbabecafe
-
-// CHECK: setb 305419896
- setb 0x12345678
-
-// CHECK: setae %bl
- setae %bl
-
-// CHECK: setae 3735928559(%ebx,%ecx,8)
- setae 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setae 32493
- setae 0x7eed
-
-// CHECK: setae 3133065982
- setae 0xbabecafe
-
-// CHECK: setae 305419896
- setae 0x12345678
-
-// CHECK: sete %bl
- sete %bl
-
-// CHECK: sete 3735928559(%ebx,%ecx,8)
- sete 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sete 32493
- sete 0x7eed
-
-// CHECK: sete 3133065982
- sete 0xbabecafe
-
-// CHECK: sete 305419896
- sete 0x12345678
-
-// CHECK: setne %bl
- setne %bl
-
-// CHECK: setne 3735928559(%ebx,%ecx,8)
- setne 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setne 32493
- setne 0x7eed
-
-// CHECK: setne 3133065982
- setne 0xbabecafe
-
-// CHECK: setne 305419896
- setne 0x12345678
-
-// CHECK: setbe %bl
- setbe %bl
-
-// CHECK: setbe 3735928559(%ebx,%ecx,8)
- setbe 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setbe 32493
- setbe 0x7eed
-
-// CHECK: setbe 3133065982
- setbe 0xbabecafe
-
-// CHECK: setbe 305419896
- setbe 0x12345678
-
-// CHECK: seta %bl
- seta %bl
-
-// CHECK: seta 3735928559(%ebx,%ecx,8)
- seta 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: seta 32493
- seta 0x7eed
-
-// CHECK: seta 3133065982
- seta 0xbabecafe
-
-// CHECK: seta 305419896
- seta 0x12345678
-
-// CHECK: sets %bl
- sets %bl
-
-// CHECK: sets 3735928559(%ebx,%ecx,8)
- sets 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: sets 32493
- sets 0x7eed
-
-// CHECK: sets 3133065982
- sets 0xbabecafe
-
-// CHECK: sets 305419896
- sets 0x12345678
-
-// CHECK: setns %bl
- setns %bl
-
-// CHECK: setns 3735928559(%ebx,%ecx,8)
- setns 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setns 32493
- setns 0x7eed
-
-// CHECK: setns 3133065982
- setns 0xbabecafe
-
-// CHECK: setns 305419896
- setns 0x12345678
-
-// CHECK: setp %bl
- setp %bl
-
-// CHECK: setp 3735928559(%ebx,%ecx,8)
- setp 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setp 32493
- setp 0x7eed
-
-// CHECK: setp 3133065982
- setp 0xbabecafe
-
-// CHECK: setp 305419896
- setp 0x12345678
-
-// CHECK: setnp %bl
- setnp %bl
-
-// CHECK: setnp 3735928559(%ebx,%ecx,8)
- setnp 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setnp 32493
- setnp 0x7eed
-
-// CHECK: setnp 3133065982
- setnp 0xbabecafe
-
-// CHECK: setnp 305419896
- setnp 0x12345678
-
-// CHECK: setl %bl
- setl %bl
-
-// CHECK: setl 3735928559(%ebx,%ecx,8)
- setl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setl 32493
- setl 0x7eed
-
-// CHECK: setl 3133065982
- setl 0xbabecafe
-
-// CHECK: setl 305419896
- setl 0x12345678
-
-// CHECK: setge %bl
- setge %bl
-
-// CHECK: setge 3735928559(%ebx,%ecx,8)
- setge 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setge 32493
- setge 0x7eed
-
-// CHECK: setge 3133065982
- setge 0xbabecafe
-
-// CHECK: setge 305419896
- setge 0x12345678
-
-// CHECK: setle %bl
- setle %bl
-
-// CHECK: setle 3735928559(%ebx,%ecx,8)
- setle 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setle 32493
- setle 0x7eed
-
-// CHECK: setle 3133065982
- setle 0xbabecafe
-
-// CHECK: setle 305419896
- setle 0x12345678
-
-// CHECK: setg %bl
- setg %bl
-
-// CHECK: setg 3735928559(%ebx,%ecx,8)
- setg 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: setg 32493
- setg 0x7eed
-
-// CHECK: setg 3133065982
- setg 0xbabecafe
-
-// CHECK: setg 305419896
- setg 0x12345678
-
-// CHECK: int $127
- int $0x7f
-
-// CHECK: rsm
- rsm
-
-// CHECK: hlt
- hlt
-
-// CHECK: nopl 3735928559(%ebx,%ecx,8)
- nopl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: nopw 32493
- nopw 0x7eed
-
-// CHECK: nopl 3133065982
- nopl 0xbabecafe
-
-// CHECK: nopl 305419896
- nopl 0x12345678
-
-// CHECK: nop
- nop
-
-// CHECK: lldtw 32493
- lldtw 0x7eed
-
-// CHECK: lmsww 32493
- lmsww 0x7eed
-
-// CHECK: ltrw 32493
- ltrw 0x7eed
-
-// CHECK: sldtw 32493
- sldtw 0x7eed
-
-// CHECK: smsww 32493
- smsww 0x7eed
-
-// CHECK: strw 32493
- strw 0x7eed
-
-// CHECK: verr %bx
- verr %bx
-
-// CHECK: verr 3735928559(%ebx,%ecx,8)
- verr 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: verr 3133065982
- verr 0xbabecafe
-
-// CHECK: verr 305419896
- verr 0x12345678
-
-// CHECK: verw %bx
- verw %bx
-
-// CHECK: verw 3735928559(%ebx,%ecx,8)
- verw 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: verw 3133065982
- verw 0xbabecafe
-
-// CHECK: verw 305419896
- verw 0x12345678
-
-// CHECK: fld %st(2)
- fld %st(2)
-
-// CHECK: fldl 3735928559(%ebx,%ecx,8)
- fldl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fldl 3133065982
- fldl 0xbabecafe
-
-// CHECK: fldl 305419896
- fldl 0x12345678
-
-// CHECK: fld %st(2)
- fld %st(2)
-
-// CHECK: fildl 3735928559(%ebx,%ecx,8)
- fildl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fildl 3133065982
- fildl 0xbabecafe
-
-// CHECK: fildl 305419896
- fildl 0x12345678
-
-// CHECK: fildll 3735928559(%ebx,%ecx,8)
- fildll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fildll 32493
- fildll 0x7eed
-
-// CHECK: fildll 3133065982
- fildll 0xbabecafe
-
-// CHECK: fildll 305419896
- fildll 0x12345678
-
-// CHECK: fldt 3735928559(%ebx,%ecx,8)
- fldt 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fldt 32493
- fldt 0x7eed
-
-// CHECK: fldt 3133065982
- fldt 0xbabecafe
-
-// CHECK: fldt 305419896
- fldt 0x12345678
-
-// CHECK: fbld 3735928559(%ebx,%ecx,8)
- fbld 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fbld 32493
- fbld 0x7eed
-
-// CHECK: fbld 3133065982
- fbld 0xbabecafe
-
-// CHECK: fbld 305419896
- fbld 0x12345678
-
-// CHECK: fst %st(2)
- fst %st(2)
-
-// CHECK: fstl 3735928559(%ebx,%ecx,8)
- fstl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fstl 3133065982
- fstl 0xbabecafe
-
-// CHECK: fstl 305419896
- fstl 0x12345678
-
-// CHECK: fst %st(2)
- fst %st(2)
-
-// CHECK: fistl 3735928559(%ebx,%ecx,8)
- fistl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fistl 3133065982
- fistl 0xbabecafe
-
-// CHECK: fistl 305419896
- fistl 0x12345678
-
-// CHECK: fstp %st(2)
- fstp %st(2)
-
-// CHECK: fstpl 3735928559(%ebx,%ecx,8)
- fstpl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fstpl 3133065982
- fstpl 0xbabecafe
-
-// CHECK: fstpl 305419896
- fstpl 0x12345678
-
-// CHECK: fstp %st(2)
- fstp %st(2)
-
-// CHECK: fistpl 3735928559(%ebx,%ecx,8)
- fistpl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fistpl 3133065982
- fistpl 0xbabecafe
-
-// CHECK: fistpl 305419896
- fistpl 0x12345678
-
-// CHECK: fistpll 3735928559(%ebx,%ecx,8)
- fistpll 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fistpll 32493
- fistpll 0x7eed
-
-// CHECK: fistpll 3133065982
- fistpll 0xbabecafe
-
-// CHECK: fistpll 305419896
- fistpll 0x12345678
-
-// CHECK: fstpt 3735928559(%ebx,%ecx,8)
- fstpt 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fstpt 32493
- fstpt 0x7eed
-
-// CHECK: fstpt 3133065982
- fstpt 0xbabecafe
-
-// CHECK: fstpt 305419896
- fstpt 0x12345678
-
-// CHECK: fbstp 3735928559(%ebx,%ecx,8)
- fbstp 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fbstp 32493
- fbstp 0x7eed
-
-// CHECK: fbstp 3133065982
- fbstp 0xbabecafe
-
-// CHECK: fbstp 305419896
- fbstp 0x12345678
-
-// CHECK: fxch %st(2)
- fxch %st(2)
-
-// CHECK: fcom %st(2)
- fcom %st(2)
-
-// CHECK: fcoml 3735928559(%ebx,%ecx,8)
- fcoml 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fcoml 3133065982
- fcoml 0xbabecafe
-
-// CHECK: fcoml 305419896
- fcoml 0x12345678
-
-// CHECK: fcom %st(2)
- fcom %st(2)
-
-// CHECK: ficoml 3735928559(%ebx,%ecx,8)
- ficoml 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ficoml 3133065982
- ficoml 0xbabecafe
-
-// CHECK: ficoml 305419896
- ficoml 0x12345678
-
-// CHECK: fcomp %st(2)
- fcomp %st(2)
-
-// CHECK: fcompl 3735928559(%ebx,%ecx,8)
- fcompl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fcompl 3133065982
- fcompl 0xbabecafe
-
-// CHECK: fcompl 305419896
- fcompl 0x12345678
-
-// CHECK: fcomp %st(2)
- fcomp %st(2)
-
-// CHECK: ficompl 3735928559(%ebx,%ecx,8)
- ficompl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ficompl 3133065982
- ficompl 0xbabecafe
-
-// CHECK: ficompl 305419896
- ficompl 0x12345678
-
-// CHECK: fcompp
- fcompp
-
-// CHECK: fucom %st(2)
- fucom %st(2)
-
-// CHECK: fucomp %st(2)
- fucomp %st(2)
-
-// CHECK: fucompp
- fucompp
-
-// CHECK: ftst
- ftst
-
-// CHECK: fxam
- fxam
-
-// CHECK: fld1
- fld1
-
-// CHECK: fldl2t
- fldl2t
-
-// CHECK: fldl2e
- fldl2e
-
-// CHECK: fldpi
- fldpi
-
-// CHECK: fldlg2
- fldlg2
-
-// CHECK: fldln2
- fldln2
-
-// CHECK: fldz
- fldz
-
-// CHECK: fadd %st(2)
- fadd %st(2)
-
-// CHECK: faddl 3735928559(%ebx,%ecx,8)
- faddl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: faddl 3133065982
- faddl 0xbabecafe
-
-// CHECK: faddl 305419896
- faddl 0x12345678
-
-// CHECK: fiaddl 3735928559(%ebx,%ecx,8)
- fiaddl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fiaddl 3133065982
- fiaddl 0xbabecafe
-
-// CHECK: fiaddl 305419896
- fiaddl 0x12345678
-
-// CHECK: faddp %st(2)
- faddp %st(2)
-
-// CHECK: fsub %st(2)
- fsub %st(2)
-
-// CHECK: fsubl 3735928559(%ebx,%ecx,8)
- fsubl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fsubl 3133065982
- fsubl 0xbabecafe
-
-// CHECK: fsubl 305419896
- fsubl 0x12345678
-
-// CHECK: fisubl 3735928559(%ebx,%ecx,8)
- fisubl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fisubl 3133065982
- fisubl 0xbabecafe
-
-// CHECK: fisubl 305419896
- fisubl 0x12345678
-
-// CHECK: fsubp %st(2)
- fsubp %st(2)
-
-// CHECK: fsubr %st(2)
- fsubr %st(2)
-
-// CHECK: fsubrl 3735928559(%ebx,%ecx,8)
- fsubrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fsubrl 3133065982
- fsubrl 0xbabecafe
-
-// CHECK: fsubrl 305419896
- fsubrl 0x12345678
-
-// CHECK: fisubrl 3735928559(%ebx,%ecx,8)
- fisubrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fisubrl 3133065982
- fisubrl 0xbabecafe
-
-// CHECK: fisubrl 305419896
- fisubrl 0x12345678
-
-// CHECK: fsubrp %st(2)
- fsubrp %st(2)
-
-// CHECK: fmul %st(2)
- fmul %st(2)
-
-// CHECK: fmull 3735928559(%ebx,%ecx,8)
- fmull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fmull 3133065982
- fmull 0xbabecafe
-
-// CHECK: fmull 305419896
- fmull 0x12345678
-
-// CHECK: fimull 3735928559(%ebx,%ecx,8)
- fimull 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fimull 3133065982
- fimull 0xbabecafe
-
-// CHECK: fimull 305419896
- fimull 0x12345678
-
-// CHECK: fmulp %st(2)
- fmulp %st(2)
-
-// CHECK: fdiv %st(2)
- fdiv %st(2)
-
-// CHECK: fdivl 3735928559(%ebx,%ecx,8)
- fdivl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fdivl 3133065982
- fdivl 0xbabecafe
-
-// CHECK: fdivl 305419896
- fdivl 0x12345678
-
-// CHECK: fidivl 3735928559(%ebx,%ecx,8)
- fidivl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fidivl 3133065982
- fidivl 0xbabecafe
-
-// CHECK: fidivl 305419896
- fidivl 0x12345678
-
-// CHECK: fdivp %st(2)
- fdivp %st(2)
-
-// CHECK: fdivr %st(2)
- fdivr %st(2)
-
-// CHECK: fdivrl 3735928559(%ebx,%ecx,8)
- fdivrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fdivrl 3133065982
- fdivrl 0xbabecafe
-
-// CHECK: fdivrl 305419896
- fdivrl 0x12345678
-
-// CHECK: fidivrl 3735928559(%ebx,%ecx,8)
- fidivrl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fidivrl 3133065982
- fidivrl 0xbabecafe
-
-// CHECK: fidivrl 305419896
- fidivrl 0x12345678
-
-// CHECK: fdivrp %st(2)
- fdivrp %st(2)
-
-// CHECK: f2xm1
- f2xm1
-
-// CHECK: fyl2x
- fyl2x
-
-// CHECK: fptan
- fptan
-
-// CHECK: fpatan
- fpatan
-
-// CHECK: fxtract
- fxtract
-
-// CHECK: fprem1
- fprem1
-
-// CHECK: fdecstp
- fdecstp
-
-// CHECK: fincstp
- fincstp
-
-// CHECK: fprem
- fprem
-
-// CHECK: fyl2xp1
- fyl2xp1
-
-// CHECK: fsqrt
- fsqrt
-
-// CHECK: fsincos
- fsincos
-
-// CHECK: frndint
- frndint
-
-// CHECK: fscale
- fscale
-
-// CHECK: fsin
- fsin
-
-// CHECK: fcos
- fcos
-
-// CHECK: fchs
- fchs
-
-// CHECK: fabs
- fabs
-
-// CHECK: fninit
- fninit
-
-// CHECK: fldcw 3735928559(%ebx,%ecx,8)
- fldcw 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fldcw 3133065982
- fldcw 0xbabecafe
-
-// CHECK: fldcw 305419896
- fldcw 0x12345678
-
-// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
- fnstcw 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fnstcw 3133065982
- fnstcw 0xbabecafe
-
-// CHECK: fnstcw 305419896
- fnstcw 0x12345678
-
-// CHECK: fnstsw 3735928559(%ebx,%ecx,8)
- fnstsw 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fnstsw 3133065982
- fnstsw 0xbabecafe
-
-// CHECK: fnstsw 305419896
- fnstsw 0x12345678
-
-// CHECK: fnclex
- fnclex
-
-// CHECK: fnstenv 32493
- fnstenv 0x7eed
-
-// CHECK: fldenv 32493
- fldenv 0x7eed
-
-// CHECK: fnsave 32493
- fnsave 0x7eed
-
-// CHECK: frstor 32493
- frstor 0x7eed
-
-// CHECK: ffree %st(2)
- ffree %st(2)
-
-// CHECK: fnop
- fnop
-
-// CHECK: invd
- invd
-
-// CHECK: wbinvd
- wbinvd
-
-// CHECK: cpuid
- cpuid
-
-// CHECK: wrmsr
- wrmsr
-
-// CHECK: rdtsc
- rdtsc
-
-// CHECK: rdmsr
- rdmsr
-
-// CHECK: cmpxchg8b 3735928559(%ebx,%ecx,8)
- cmpxchg8b 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: cmpxchg8b 32493
- cmpxchg8b 0x7eed
-
-// CHECK: cmpxchg8b 3133065982
- cmpxchg8b 0xbabecafe
-
-// CHECK: cmpxchg8b 305419896
- cmpxchg8b 0x12345678
-
-// CHECK: sysenter
- sysenter
-
-// CHECK: sysexit
- sysexit
-
-// CHECK: fxsave 3735928559(%ebx,%ecx,8)
- fxsave 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fxsave 32493
- fxsave 0x7eed
-
-// CHECK: fxsave 3133065982
- fxsave 0xbabecafe
-
-// CHECK: fxsave 305419896
- fxsave 0x12345678
-
-// CHECK: fxrstor 3735928559(%ebx,%ecx,8)
- fxrstor 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fxrstor 32493
- fxrstor 0x7eed
-
-// CHECK: fxrstor 3133065982
- fxrstor 0xbabecafe
-
-// CHECK: fxrstor 305419896
- fxrstor 0x12345678
-
-// CHECK: rdpmc
- rdpmc
-
-// CHECK: ud2
- ud2
-
-// CHECK: fcmovb %st(2), %st(0)
- fcmovb %st(2),%st
-
-// CHECK: fcmove %st(2), %st(0)
- fcmove %st(2),%st
-
-// CHECK: fcmovbe %st(2), %st(0)
- fcmovbe %st(2),%st
-
-// CHECK: fcmovu %st(2), %st(0)
- fcmovu %st(2),%st
-
-// CHECK: fcmovnb %st(2), %st(0)
- fcmovnb %st(2),%st
-
-// CHECK: fcmovne %st(2), %st(0)
- fcmovne %st(2),%st
-
-// CHECK: fcmovnbe %st(2), %st(0)
- fcmovnbe %st(2),%st
-
-// CHECK: fcmovnu %st(2), %st(0)
- fcmovnu %st(2),%st
-
-// CHECK: fcomi %st(2), %st(0)
- fcomi %st(2),%st
-
-// CHECK: fucomi %st(2), %st(0)
- fucomi %st(2),%st
-
-// CHECK: fcomip %st(2), %st(0)
- fcomip %st(2),%st
-
-// CHECK: fucomip %st(2), %st(0)
- fucomip %st(2),%st
-
-// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
- movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movnti %ecx, 69
- movnti %ecx,0x45
-
-// CHECK: movnti %ecx, 32493
- movnti %ecx,0x7eed
-
-// CHECK: movnti %ecx, 3133065982
- movnti %ecx,0xbabecafe
-
-// CHECK: movnti %ecx, 305419896
- movnti %ecx,0x12345678
-
-// CHECK: clflush 3735928559(%ebx,%ecx,8)
- clflush 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: clflush 32493
- clflush 0x7eed
-
-// CHECK: clflush 3133065982
- clflush 0xbabecafe
-
-// CHECK: clflush 305419896
- clflush 0x12345678
-
-// CHECK: pause
- pause
-
-// CHECK: sfence
- sfence
-
-// CHECK: lfence
- lfence
-
-// CHECK: mfence
- mfence
-
-// CHECK: emms
- emms
-
-// CHECK: movd %ecx, %mm3
- movd %ecx,%mm3
-
-// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3
- movd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: movd 69, %mm3
- movd 0x45,%mm3
-
-// CHECK: movd 32493, %mm3
- movd 0x7eed,%mm3
-
-// CHECK: movd 3133065982, %mm3
- movd 0xbabecafe,%mm3
-
-// CHECK: movd 305419896, %mm3
- movd 0x12345678,%mm3
-
-// CHECK: movd %mm3, %ecx
- movd %mm3,%ecx
-
-// CHECK: movd %mm3, 3735928559(%ebx,%ecx,8)
- movd %mm3,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movd %mm3, 69
- movd %mm3,0x45
-
-// CHECK: movd %mm3, 32493
- movd %mm3,0x7eed
-
-// CHECK: movd %mm3, 3133065982
- movd %mm3,0xbabecafe
-
-// CHECK: movd %mm3, 305419896
- movd %mm3,0x12345678
-
-// CHECK: movd %ecx, %xmm5
- movd %ecx,%xmm5
-
-// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5
- movd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movd 69, %xmm5
- movd 0x45,%xmm5
-
-// CHECK: movd 32493, %xmm5
- movd 0x7eed,%xmm5
-
-// CHECK: movd 3133065982, %xmm5
- movd 0xbabecafe,%xmm5
-
-// CHECK: movd 305419896, %xmm5
- movd 0x12345678,%xmm5
-
-// CHECK: movd %xmm5, %ecx
- movd %xmm5,%ecx
-
-// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8)
- movd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movd %xmm5, 69
- movd %xmm5,0x45
-
-// CHECK: movd %xmm5, 32493
- movd %xmm5,0x7eed
-
-// CHECK: movd %xmm5, 3133065982
- movd %xmm5,0xbabecafe
-
-// CHECK: movd %xmm5, 305419896
- movd %xmm5,0x12345678
-
-// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3
- movq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: movq 69, %mm3
- movq 0x45,%mm3
-
-// CHECK: movq 32493, %mm3
- movq 0x7eed,%mm3
-
-// CHECK: movq 3133065982, %mm3
- movq 0xbabecafe,%mm3
-
-// CHECK: movq 305419896, %mm3
- movq 0x12345678,%mm3
-
-// CHECK: movq %mm3, %mm3
- movq %mm3,%mm3
-
-// CHECK: movq %mm3, 3735928559(%ebx,%ecx,8)
- movq %mm3,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movq %mm3, 69
- movq %mm3,0x45
-
-// CHECK: movq %mm3, 32493
- movq %mm3,0x7eed
-
-// CHECK: movq %mm3, 3133065982
- movq %mm3,0xbabecafe
-
-// CHECK: movq %mm3, 305419896
- movq %mm3,0x12345678
-
-// CHECK: movq %mm3, %mm3
- movq %mm3,%mm3
-
-// CHECK: movq 3735928559(%ebx,%ecx,8), %xmm5
- movq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movq 69, %xmm5
- movq 0x45,%xmm5
-
-// CHECK: movq 32493, %xmm5
- movq 0x7eed,%xmm5
-
-// CHECK: movq 3133065982, %xmm5
- movq 0xbabecafe,%xmm5
-
-// CHECK: movq 305419896, %xmm5
- movq 0x12345678,%xmm5
-
-// CHECK: movq %xmm5, %xmm5
- movq %xmm5,%xmm5
-
-// CHECK: movq %xmm5, 3735928559(%ebx,%ecx,8)
- movq %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movq %xmm5, 69
- movq %xmm5,0x45
-
-// CHECK: movq %xmm5, 32493
- movq %xmm5,0x7eed
-
-// CHECK: movq %xmm5, 3133065982
- movq %xmm5,0xbabecafe
-
-// CHECK: movq %xmm5, 305419896
- movq %xmm5,0x12345678
-
-// CHECK: movq %xmm5, %xmm5
- movq %xmm5,%xmm5
-
-// CHECK: packssdw 3735928559(%ebx,%ecx,8), %mm3
- packssdw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: packssdw 69, %mm3
- packssdw 0x45,%mm3
-
-// CHECK: packssdw 32493, %mm3
- packssdw 0x7eed,%mm3
-
-// CHECK: packssdw 3133065982, %mm3
- packssdw 0xbabecafe,%mm3
-
-// CHECK: packssdw 305419896, %mm3
- packssdw 0x12345678,%mm3
-
-// CHECK: packssdw %mm3, %mm3
- packssdw %mm3,%mm3
-
-// CHECK: packssdw 3735928559(%ebx,%ecx,8), %xmm5
- packssdw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: packssdw 69, %xmm5
- packssdw 0x45,%xmm5
-
-// CHECK: packssdw 32493, %xmm5
- packssdw 0x7eed,%xmm5
-
-// CHECK: packssdw 3133065982, %xmm5
- packssdw 0xbabecafe,%xmm5
-
-// CHECK: packssdw 305419896, %xmm5
- packssdw 0x12345678,%xmm5
-
-// CHECK: packssdw %xmm5, %xmm5
- packssdw %xmm5,%xmm5
-
-// CHECK: packsswb 3735928559(%ebx,%ecx,8), %mm3
- packsswb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: packsswb 69, %mm3
- packsswb 0x45,%mm3
-
-// CHECK: packsswb 32493, %mm3
- packsswb 0x7eed,%mm3
-
-// CHECK: packsswb 3133065982, %mm3
- packsswb 0xbabecafe,%mm3
-
-// CHECK: packsswb 305419896, %mm3
- packsswb 0x12345678,%mm3
-
-// CHECK: packsswb %mm3, %mm3
- packsswb %mm3,%mm3
-
-// CHECK: packsswb 3735928559(%ebx,%ecx,8), %xmm5
- packsswb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: packsswb 69, %xmm5
- packsswb 0x45,%xmm5
-
-// CHECK: packsswb 32493, %xmm5
- packsswb 0x7eed,%xmm5
-
-// CHECK: packsswb 3133065982, %xmm5
- packsswb 0xbabecafe,%xmm5
-
-// CHECK: packsswb 305419896, %xmm5
- packsswb 0x12345678,%xmm5
-
-// CHECK: packsswb %xmm5, %xmm5
- packsswb %xmm5,%xmm5
-
-// CHECK: packuswb 3735928559(%ebx,%ecx,8), %mm3
- packuswb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: packuswb 69, %mm3
- packuswb 0x45,%mm3
-
-// CHECK: packuswb 32493, %mm3
- packuswb 0x7eed,%mm3
-
-// CHECK: packuswb 3133065982, %mm3
- packuswb 0xbabecafe,%mm3
-
-// CHECK: packuswb 305419896, %mm3
- packuswb 0x12345678,%mm3
-
-// CHECK: packuswb %mm3, %mm3
- packuswb %mm3,%mm3
-
-// CHECK: packuswb 3735928559(%ebx,%ecx,8), %xmm5
- packuswb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: packuswb 69, %xmm5
- packuswb 0x45,%xmm5
-
-// CHECK: packuswb 32493, %xmm5
- packuswb 0x7eed,%xmm5
-
-// CHECK: packuswb 3133065982, %xmm5
- packuswb 0xbabecafe,%xmm5
-
-// CHECK: packuswb 305419896, %xmm5
- packuswb 0x12345678,%xmm5
-
-// CHECK: packuswb %xmm5, %xmm5
- packuswb %xmm5,%xmm5
-
-// CHECK: paddb 3735928559(%ebx,%ecx,8), %mm3
- paddb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddb 69, %mm3
- paddb 0x45,%mm3
-
-// CHECK: paddb 32493, %mm3
- paddb 0x7eed,%mm3
-
-// CHECK: paddb 3133065982, %mm3
- paddb 0xbabecafe,%mm3
-
-// CHECK: paddb 305419896, %mm3
- paddb 0x12345678,%mm3
-
-// CHECK: paddb %mm3, %mm3
- paddb %mm3,%mm3
-
-// CHECK: paddb 3735928559(%ebx,%ecx,8), %xmm5
- paddb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddb 69, %xmm5
- paddb 0x45,%xmm5
-
-// CHECK: paddb 32493, %xmm5
- paddb 0x7eed,%xmm5
-
-// CHECK: paddb 3133065982, %xmm5
- paddb 0xbabecafe,%xmm5
-
-// CHECK: paddb 305419896, %xmm5
- paddb 0x12345678,%xmm5
-
-// CHECK: paddb %xmm5, %xmm5
- paddb %xmm5,%xmm5
-
-// CHECK: paddw 3735928559(%ebx,%ecx,8), %mm3
- paddw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddw 69, %mm3
- paddw 0x45,%mm3
-
-// CHECK: paddw 32493, %mm3
- paddw 0x7eed,%mm3
-
-// CHECK: paddw 3133065982, %mm3
- paddw 0xbabecafe,%mm3
-
-// CHECK: paddw 305419896, %mm3
- paddw 0x12345678,%mm3
-
-// CHECK: paddw %mm3, %mm3
- paddw %mm3,%mm3
-
-// CHECK: paddw 3735928559(%ebx,%ecx,8), %xmm5
- paddw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddw 69, %xmm5
- paddw 0x45,%xmm5
-
-// CHECK: paddw 32493, %xmm5
- paddw 0x7eed,%xmm5
-
-// CHECK: paddw 3133065982, %xmm5
- paddw 0xbabecafe,%xmm5
-
-// CHECK: paddw 305419896, %xmm5
- paddw 0x12345678,%xmm5
-
-// CHECK: paddw %xmm5, %xmm5
- paddw %xmm5,%xmm5
-
-// CHECK: paddd 3735928559(%ebx,%ecx,8), %mm3
- paddd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddd 69, %mm3
- paddd 0x45,%mm3
-
-// CHECK: paddd 32493, %mm3
- paddd 0x7eed,%mm3
-
-// CHECK: paddd 3133065982, %mm3
- paddd 0xbabecafe,%mm3
-
-// CHECK: paddd 305419896, %mm3
- paddd 0x12345678,%mm3
-
-// CHECK: paddd %mm3, %mm3
- paddd %mm3,%mm3
-
-// CHECK: paddd 3735928559(%ebx,%ecx,8), %xmm5
- paddd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddd 69, %xmm5
- paddd 0x45,%xmm5
-
-// CHECK: paddd 32493, %xmm5
- paddd 0x7eed,%xmm5
-
-// CHECK: paddd 3133065982, %xmm5
- paddd 0xbabecafe,%xmm5
-
-// CHECK: paddd 305419896, %xmm5
- paddd 0x12345678,%xmm5
-
-// CHECK: paddd %xmm5, %xmm5
- paddd %xmm5,%xmm5
-
-// CHECK: paddq 3735928559(%ebx,%ecx,8), %mm3
- paddq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddq 69, %mm3
- paddq 0x45,%mm3
-
-// CHECK: paddq 32493, %mm3
- paddq 0x7eed,%mm3
-
-// CHECK: paddq 3133065982, %mm3
- paddq 0xbabecafe,%mm3
-
-// CHECK: paddq 305419896, %mm3
- paddq 0x12345678,%mm3
-
-// CHECK: paddq %mm3, %mm3
- paddq %mm3,%mm3
-
-// CHECK: paddq 3735928559(%ebx,%ecx,8), %xmm5
- paddq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddq 69, %xmm5
- paddq 0x45,%xmm5
-
-// CHECK: paddq 32493, %xmm5
- paddq 0x7eed,%xmm5
-
-// CHECK: paddq 3133065982, %xmm5
- paddq 0xbabecafe,%xmm5
-
-// CHECK: paddq 305419896, %xmm5
- paddq 0x12345678,%xmm5
-
-// CHECK: paddq %xmm5, %xmm5
- paddq %xmm5,%xmm5
-
-// CHECK: paddsb 3735928559(%ebx,%ecx,8), %mm3
- paddsb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddsb 69, %mm3
- paddsb 0x45,%mm3
-
-// CHECK: paddsb 32493, %mm3
- paddsb 0x7eed,%mm3
-
-// CHECK: paddsb 3133065982, %mm3
- paddsb 0xbabecafe,%mm3
-
-// CHECK: paddsb 305419896, %mm3
- paddsb 0x12345678,%mm3
-
-// CHECK: paddsb %mm3, %mm3
- paddsb %mm3,%mm3
-
-// CHECK: paddsb 3735928559(%ebx,%ecx,8), %xmm5
- paddsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddsb 69, %xmm5
- paddsb 0x45,%xmm5
-
-// CHECK: paddsb 32493, %xmm5
- paddsb 0x7eed,%xmm5
-
-// CHECK: paddsb 3133065982, %xmm5
- paddsb 0xbabecafe,%xmm5
-
-// CHECK: paddsb 305419896, %xmm5
- paddsb 0x12345678,%xmm5
-
-// CHECK: paddsb %xmm5, %xmm5
- paddsb %xmm5,%xmm5
-
-// CHECK: paddsw 3735928559(%ebx,%ecx,8), %mm3
- paddsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddsw 69, %mm3
- paddsw 0x45,%mm3
-
-// CHECK: paddsw 32493, %mm3
- paddsw 0x7eed,%mm3
-
-// CHECK: paddsw 3133065982, %mm3
- paddsw 0xbabecafe,%mm3
-
-// CHECK: paddsw 305419896, %mm3
- paddsw 0x12345678,%mm3
-
-// CHECK: paddsw %mm3, %mm3
- paddsw %mm3,%mm3
-
-// CHECK: paddsw 3735928559(%ebx,%ecx,8), %xmm5
- paddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddsw 69, %xmm5
- paddsw 0x45,%xmm5
-
-// CHECK: paddsw 32493, %xmm5
- paddsw 0x7eed,%xmm5
-
-// CHECK: paddsw 3133065982, %xmm5
- paddsw 0xbabecafe,%xmm5
-
-// CHECK: paddsw 305419896, %xmm5
- paddsw 0x12345678,%xmm5
-
-// CHECK: paddsw %xmm5, %xmm5
- paddsw %xmm5,%xmm5
-
-// CHECK: paddusb 3735928559(%ebx,%ecx,8), %mm3
- paddusb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddusb 69, %mm3
- paddusb 0x45,%mm3
-
-// CHECK: paddusb 32493, %mm3
- paddusb 0x7eed,%mm3
-
-// CHECK: paddusb 3133065982, %mm3
- paddusb 0xbabecafe,%mm3
-
-// CHECK: paddusb 305419896, %mm3
- paddusb 0x12345678,%mm3
-
-// CHECK: paddusb %mm3, %mm3
- paddusb %mm3,%mm3
-
-// CHECK: paddusb 3735928559(%ebx,%ecx,8), %xmm5
- paddusb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddusb 69, %xmm5
- paddusb 0x45,%xmm5
-
-// CHECK: paddusb 32493, %xmm5
- paddusb 0x7eed,%xmm5
-
-// CHECK: paddusb 3133065982, %xmm5
- paddusb 0xbabecafe,%xmm5
-
-// CHECK: paddusb 305419896, %xmm5
- paddusb 0x12345678,%xmm5
-
-// CHECK: paddusb %xmm5, %xmm5
- paddusb %xmm5,%xmm5
-
-// CHECK: paddusw 3735928559(%ebx,%ecx,8), %mm3
- paddusw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: paddusw 69, %mm3
- paddusw 0x45,%mm3
-
-// CHECK: paddusw 32493, %mm3
- paddusw 0x7eed,%mm3
-
-// CHECK: paddusw 3133065982, %mm3
- paddusw 0xbabecafe,%mm3
-
-// CHECK: paddusw 305419896, %mm3
- paddusw 0x12345678,%mm3
-
-// CHECK: paddusw %mm3, %mm3
- paddusw %mm3,%mm3
-
-// CHECK: paddusw 3735928559(%ebx,%ecx,8), %xmm5
- paddusw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: paddusw 69, %xmm5
- paddusw 0x45,%xmm5
-
-// CHECK: paddusw 32493, %xmm5
- paddusw 0x7eed,%xmm5
-
-// CHECK: paddusw 3133065982, %xmm5
- paddusw 0xbabecafe,%xmm5
-
-// CHECK: paddusw 305419896, %xmm5
- paddusw 0x12345678,%xmm5
-
-// CHECK: paddusw %xmm5, %xmm5
- paddusw %xmm5,%xmm5
-
-// CHECK: pand 3735928559(%ebx,%ecx,8), %mm3
- pand 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pand 69, %mm3
- pand 0x45,%mm3
-
-// CHECK: pand 32493, %mm3
- pand 0x7eed,%mm3
-
-// CHECK: pand 3133065982, %mm3
- pand 0xbabecafe,%mm3
-
-// CHECK: pand 305419896, %mm3
- pand 0x12345678,%mm3
-
-// CHECK: pand %mm3, %mm3
- pand %mm3,%mm3
-
-// CHECK: pand 3735928559(%ebx,%ecx,8), %xmm5
- pand 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pand 69, %xmm5
- pand 0x45,%xmm5
-
-// CHECK: pand 32493, %xmm5
- pand 0x7eed,%xmm5
-
-// CHECK: pand 3133065982, %xmm5
- pand 0xbabecafe,%xmm5
-
-// CHECK: pand 305419896, %xmm5
- pand 0x12345678,%xmm5
-
-// CHECK: pand %xmm5, %xmm5
- pand %xmm5,%xmm5
-
-// CHECK: pandn 3735928559(%ebx,%ecx,8), %mm3
- pandn 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pandn 69, %mm3
- pandn 0x45,%mm3
-
-// CHECK: pandn 32493, %mm3
- pandn 0x7eed,%mm3
-
-// CHECK: pandn 3133065982, %mm3
- pandn 0xbabecafe,%mm3
-
-// CHECK: pandn 305419896, %mm3
- pandn 0x12345678,%mm3
-
-// CHECK: pandn %mm3, %mm3
- pandn %mm3,%mm3
-
-// CHECK: pandn 3735928559(%ebx,%ecx,8), %xmm5
- pandn 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pandn 69, %xmm5
- pandn 0x45,%xmm5
-
-// CHECK: pandn 32493, %xmm5
- pandn 0x7eed,%xmm5
-
-// CHECK: pandn 3133065982, %xmm5
- pandn 0xbabecafe,%xmm5
-
-// CHECK: pandn 305419896, %xmm5
- pandn 0x12345678,%xmm5
-
-// CHECK: pandn %xmm5, %xmm5
- pandn %xmm5,%xmm5
-
-// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %mm3
- pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pcmpeqb 69, %mm3
- pcmpeqb 0x45,%mm3
-
-// CHECK: pcmpeqb 32493, %mm3
- pcmpeqb 0x7eed,%mm3
-
-// CHECK: pcmpeqb 3133065982, %mm3
- pcmpeqb 0xbabecafe,%mm3
-
-// CHECK: pcmpeqb 305419896, %mm3
- pcmpeqb 0x12345678,%mm3
-
-// CHECK: pcmpeqb %mm3, %mm3
- pcmpeqb %mm3,%mm3
-
-// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %xmm5
- pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpeqb 69, %xmm5
- pcmpeqb 0x45,%xmm5
-
-// CHECK: pcmpeqb 32493, %xmm5
- pcmpeqb 0x7eed,%xmm5
-
-// CHECK: pcmpeqb 3133065982, %xmm5
- pcmpeqb 0xbabecafe,%xmm5
-
-// CHECK: pcmpeqb 305419896, %xmm5
- pcmpeqb 0x12345678,%xmm5
-
-// CHECK: pcmpeqb %xmm5, %xmm5
- pcmpeqb %xmm5,%xmm5
-
-// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %mm3
- pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pcmpeqw 69, %mm3
- pcmpeqw 0x45,%mm3
-
-// CHECK: pcmpeqw 32493, %mm3
- pcmpeqw 0x7eed,%mm3
-
-// CHECK: pcmpeqw 3133065982, %mm3
- pcmpeqw 0xbabecafe,%mm3
-
-// CHECK: pcmpeqw 305419896, %mm3
- pcmpeqw 0x12345678,%mm3
-
-// CHECK: pcmpeqw %mm3, %mm3
- pcmpeqw %mm3,%mm3
-
-// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %xmm5
- pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpeqw 69, %xmm5
- pcmpeqw 0x45,%xmm5
-
-// CHECK: pcmpeqw 32493, %xmm5
- pcmpeqw 0x7eed,%xmm5
-
-// CHECK: pcmpeqw 3133065982, %xmm5
- pcmpeqw 0xbabecafe,%xmm5
-
-// CHECK: pcmpeqw 305419896, %xmm5
- pcmpeqw 0x12345678,%xmm5
-
-// CHECK: pcmpeqw %xmm5, %xmm5
- pcmpeqw %xmm5,%xmm5
-
-// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %mm3
- pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pcmpeqd 69, %mm3
- pcmpeqd 0x45,%mm3
-
-// CHECK: pcmpeqd 32493, %mm3
- pcmpeqd 0x7eed,%mm3
-
-// CHECK: pcmpeqd 3133065982, %mm3
- pcmpeqd 0xbabecafe,%mm3
-
-// CHECK: pcmpeqd 305419896, %mm3
- pcmpeqd 0x12345678,%mm3
-
-// CHECK: pcmpeqd %mm3, %mm3
- pcmpeqd %mm3,%mm3
-
-// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %xmm5
- pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpeqd 69, %xmm5
- pcmpeqd 0x45,%xmm5
-
-// CHECK: pcmpeqd 32493, %xmm5
- pcmpeqd 0x7eed,%xmm5
-
-// CHECK: pcmpeqd 3133065982, %xmm5
- pcmpeqd 0xbabecafe,%xmm5
-
-// CHECK: pcmpeqd 305419896, %xmm5
- pcmpeqd 0x12345678,%xmm5
-
-// CHECK: pcmpeqd %xmm5, %xmm5
- pcmpeqd %xmm5,%xmm5
-
-// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %mm3
- pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pcmpgtb 69, %mm3
- pcmpgtb 0x45,%mm3
-
-// CHECK: pcmpgtb 32493, %mm3
- pcmpgtb 0x7eed,%mm3
-
-// CHECK: pcmpgtb 3133065982, %mm3
- pcmpgtb 0xbabecafe,%mm3
-
-// CHECK: pcmpgtb 305419896, %mm3
- pcmpgtb 0x12345678,%mm3
-
-// CHECK: pcmpgtb %mm3, %mm3
- pcmpgtb %mm3,%mm3
-
-// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %xmm5
- pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpgtb 69, %xmm5
- pcmpgtb 0x45,%xmm5
-
-// CHECK: pcmpgtb 32493, %xmm5
- pcmpgtb 0x7eed,%xmm5
-
-// CHECK: pcmpgtb 3133065982, %xmm5
- pcmpgtb 0xbabecafe,%xmm5
-
-// CHECK: pcmpgtb 305419896, %xmm5
- pcmpgtb 0x12345678,%xmm5
-
-// CHECK: pcmpgtb %xmm5, %xmm5
- pcmpgtb %xmm5,%xmm5
-
-// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %mm3
- pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pcmpgtw 69, %mm3
- pcmpgtw 0x45,%mm3
-
-// CHECK: pcmpgtw 32493, %mm3
- pcmpgtw 0x7eed,%mm3
-
-// CHECK: pcmpgtw 3133065982, %mm3
- pcmpgtw 0xbabecafe,%mm3
-
-// CHECK: pcmpgtw 305419896, %mm3
- pcmpgtw 0x12345678,%mm3
-
-// CHECK: pcmpgtw %mm3, %mm3
- pcmpgtw %mm3,%mm3
-
-// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %xmm5
- pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpgtw 69, %xmm5
- pcmpgtw 0x45,%xmm5
-
-// CHECK: pcmpgtw 32493, %xmm5
- pcmpgtw 0x7eed,%xmm5
-
-// CHECK: pcmpgtw 3133065982, %xmm5
- pcmpgtw 0xbabecafe,%xmm5
-
-// CHECK: pcmpgtw 305419896, %xmm5
- pcmpgtw 0x12345678,%xmm5
-
-// CHECK: pcmpgtw %xmm5, %xmm5
- pcmpgtw %xmm5,%xmm5
-
-// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %mm3
- pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pcmpgtd 69, %mm3
- pcmpgtd 0x45,%mm3
-
-// CHECK: pcmpgtd 32493, %mm3
- pcmpgtd 0x7eed,%mm3
-
-// CHECK: pcmpgtd 3133065982, %mm3
- pcmpgtd 0xbabecafe,%mm3
-
-// CHECK: pcmpgtd 305419896, %mm3
- pcmpgtd 0x12345678,%mm3
-
-// CHECK: pcmpgtd %mm3, %mm3
- pcmpgtd %mm3,%mm3
-
-// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %xmm5
- pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpgtd 69, %xmm5
- pcmpgtd 0x45,%xmm5
-
-// CHECK: pcmpgtd 32493, %xmm5
- pcmpgtd 0x7eed,%xmm5
-
-// CHECK: pcmpgtd 3133065982, %xmm5
- pcmpgtd 0xbabecafe,%xmm5
-
-// CHECK: pcmpgtd 305419896, %xmm5
- pcmpgtd 0x12345678,%xmm5
-
-// CHECK: pcmpgtd %xmm5, %xmm5
- pcmpgtd %xmm5,%xmm5
-
-// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %mm3
- pmaddwd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmaddwd 69, %mm3
- pmaddwd 0x45,%mm3
-
-// CHECK: pmaddwd 32493, %mm3
- pmaddwd 0x7eed,%mm3
-
-// CHECK: pmaddwd 3133065982, %mm3
- pmaddwd 0xbabecafe,%mm3
-
-// CHECK: pmaddwd 305419896, %mm3
- pmaddwd 0x12345678,%mm3
-
-// CHECK: pmaddwd %mm3, %mm3
- pmaddwd %mm3,%mm3
-
-// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %xmm5
- pmaddwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaddwd 69, %xmm5
- pmaddwd 0x45,%xmm5
-
-// CHECK: pmaddwd 32493, %xmm5
- pmaddwd 0x7eed,%xmm5
-
-// CHECK: pmaddwd 3133065982, %xmm5
- pmaddwd 0xbabecafe,%xmm5
-
-// CHECK: pmaddwd 305419896, %xmm5
- pmaddwd 0x12345678,%xmm5
-
-// CHECK: pmaddwd %xmm5, %xmm5
- pmaddwd %xmm5,%xmm5
-
-// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %mm3
- pmulhw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmulhw 69, %mm3
- pmulhw 0x45,%mm3
-
-// CHECK: pmulhw 32493, %mm3
- pmulhw 0x7eed,%mm3
-
-// CHECK: pmulhw 3133065982, %mm3
- pmulhw 0xbabecafe,%mm3
-
-// CHECK: pmulhw 305419896, %mm3
- pmulhw 0x12345678,%mm3
-
-// CHECK: pmulhw %mm3, %mm3
- pmulhw %mm3,%mm3
-
-// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %xmm5
- pmulhw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmulhw 69, %xmm5
- pmulhw 0x45,%xmm5
-
-// CHECK: pmulhw 32493, %xmm5
- pmulhw 0x7eed,%xmm5
-
-// CHECK: pmulhw 3133065982, %xmm5
- pmulhw 0xbabecafe,%xmm5
-
-// CHECK: pmulhw 305419896, %xmm5
- pmulhw 0x12345678,%xmm5
-
-// CHECK: pmulhw %xmm5, %xmm5
- pmulhw %xmm5,%xmm5
-
-// CHECK: pmullw 3735928559(%ebx,%ecx,8), %mm3
- pmullw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmullw 69, %mm3
- pmullw 0x45,%mm3
-
-// CHECK: pmullw 32493, %mm3
- pmullw 0x7eed,%mm3
-
-// CHECK: pmullw 3133065982, %mm3
- pmullw 0xbabecafe,%mm3
-
-// CHECK: pmullw 305419896, %mm3
- pmullw 0x12345678,%mm3
-
-// CHECK: pmullw %mm3, %mm3
- pmullw %mm3,%mm3
-
-// CHECK: pmullw 3735928559(%ebx,%ecx,8), %xmm5
- pmullw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmullw 69, %xmm5
- pmullw 0x45,%xmm5
-
-// CHECK: pmullw 32493, %xmm5
- pmullw 0x7eed,%xmm5
-
-// CHECK: pmullw 3133065982, %xmm5
- pmullw 0xbabecafe,%xmm5
-
-// CHECK: pmullw 305419896, %xmm5
- pmullw 0x12345678,%xmm5
-
-// CHECK: pmullw %xmm5, %xmm5
- pmullw %xmm5,%xmm5
-
-// CHECK: por 3735928559(%ebx,%ecx,8), %mm3
- por 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: por 69, %mm3
- por 0x45,%mm3
-
-// CHECK: por 32493, %mm3
- por 0x7eed,%mm3
-
-// CHECK: por 3133065982, %mm3
- por 0xbabecafe,%mm3
-
-// CHECK: por 305419896, %mm3
- por 0x12345678,%mm3
-
-// CHECK: por %mm3, %mm3
- por %mm3,%mm3
-
-// CHECK: por 3735928559(%ebx,%ecx,8), %xmm5
- por 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: por 69, %xmm5
- por 0x45,%xmm5
-
-// CHECK: por 32493, %xmm5
- por 0x7eed,%xmm5
-
-// CHECK: por 3133065982, %xmm5
- por 0xbabecafe,%xmm5
-
-// CHECK: por 305419896, %xmm5
- por 0x12345678,%xmm5
-
-// CHECK: por %xmm5, %xmm5
- por %xmm5,%xmm5
-
-// CHECK: psllw 3735928559(%ebx,%ecx,8), %mm3
- psllw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psllw 69, %mm3
- psllw 0x45,%mm3
-
-// CHECK: psllw 32493, %mm3
- psllw 0x7eed,%mm3
-
-// CHECK: psllw 3133065982, %mm3
- psllw 0xbabecafe,%mm3
-
-// CHECK: psllw 305419896, %mm3
- psllw 0x12345678,%mm3
-
-// CHECK: psllw %mm3, %mm3
- psllw %mm3,%mm3
-
-// CHECK: psllw 3735928559(%ebx,%ecx,8), %xmm5
- psllw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psllw 69, %xmm5
- psllw 0x45,%xmm5
-
-// CHECK: psllw 32493, %xmm5
- psllw 0x7eed,%xmm5
-
-// CHECK: psllw 3133065982, %xmm5
- psllw 0xbabecafe,%xmm5
-
-// CHECK: psllw 305419896, %xmm5
- psllw 0x12345678,%xmm5
-
-// CHECK: psllw %xmm5, %xmm5
- psllw %xmm5,%xmm5
-
-// CHECK: psllw $127, %mm3
- psllw $0x7f,%mm3
-
-// CHECK: psllw $127, %xmm5
- psllw $0x7f,%xmm5
-
-// CHECK: pslld 3735928559(%ebx,%ecx,8), %mm3
- pslld 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pslld 69, %mm3
- pslld 0x45,%mm3
-
-// CHECK: pslld 32493, %mm3
- pslld 0x7eed,%mm3
-
-// CHECK: pslld 3133065982, %mm3
- pslld 0xbabecafe,%mm3
-
-// CHECK: pslld 305419896, %mm3
- pslld 0x12345678,%mm3
-
-// CHECK: pslld %mm3, %mm3
- pslld %mm3,%mm3
-
-// CHECK: pslld 3735928559(%ebx,%ecx,8), %xmm5
- pslld 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pslld 69, %xmm5
- pslld 0x45,%xmm5
-
-// CHECK: pslld 32493, %xmm5
- pslld 0x7eed,%xmm5
-
-// CHECK: pslld 3133065982, %xmm5
- pslld 0xbabecafe,%xmm5
-
-// CHECK: pslld 305419896, %xmm5
- pslld 0x12345678,%xmm5
-
-// CHECK: pslld %xmm5, %xmm5
- pslld %xmm5,%xmm5
-
-// CHECK: pslld $127, %mm3
- pslld $0x7f,%mm3
-
-// CHECK: pslld $127, %xmm5
- pslld $0x7f,%xmm5
-
-// CHECK: psllq 3735928559(%ebx,%ecx,8), %mm3
- psllq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psllq 69, %mm3
- psllq 0x45,%mm3
-
-// CHECK: psllq 32493, %mm3
- psllq 0x7eed,%mm3
-
-// CHECK: psllq 3133065982, %mm3
- psllq 0xbabecafe,%mm3
-
-// CHECK: psllq 305419896, %mm3
- psllq 0x12345678,%mm3
-
-// CHECK: psllq %mm3, %mm3
- psllq %mm3,%mm3
-
-// CHECK: psllq 3735928559(%ebx,%ecx,8), %xmm5
- psllq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psllq 69, %xmm5
- psllq 0x45,%xmm5
-
-// CHECK: psllq 32493, %xmm5
- psllq 0x7eed,%xmm5
-
-// CHECK: psllq 3133065982, %xmm5
- psllq 0xbabecafe,%xmm5
-
-// CHECK: psllq 305419896, %xmm5
- psllq 0x12345678,%xmm5
-
-// CHECK: psllq %xmm5, %xmm5
- psllq %xmm5,%xmm5
-
-// CHECK: psllq $127, %mm3
- psllq $0x7f,%mm3
-
-// CHECK: psllq $127, %xmm5
- psllq $0x7f,%xmm5
-
-// CHECK: psraw 3735928559(%ebx,%ecx,8), %mm3
- psraw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psraw 69, %mm3
- psraw 0x45,%mm3
-
-// CHECK: psraw 32493, %mm3
- psraw 0x7eed,%mm3
-
-// CHECK: psraw 3133065982, %mm3
- psraw 0xbabecafe,%mm3
-
-// CHECK: psraw 305419896, %mm3
- psraw 0x12345678,%mm3
-
-// CHECK: psraw %mm3, %mm3
- psraw %mm3,%mm3
-
-// CHECK: psraw 3735928559(%ebx,%ecx,8), %xmm5
- psraw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psraw 69, %xmm5
- psraw 0x45,%xmm5
-
-// CHECK: psraw 32493, %xmm5
- psraw 0x7eed,%xmm5
-
-// CHECK: psraw 3133065982, %xmm5
- psraw 0xbabecafe,%xmm5
-
-// CHECK: psraw 305419896, %xmm5
- psraw 0x12345678,%xmm5
-
-// CHECK: psraw %xmm5, %xmm5
- psraw %xmm5,%xmm5
-
-// CHECK: psraw $127, %mm3
- psraw $0x7f,%mm3
-
-// CHECK: psraw $127, %xmm5
- psraw $0x7f,%xmm5
-
-// CHECK: psrad 3735928559(%ebx,%ecx,8), %mm3
- psrad 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psrad 69, %mm3
- psrad 0x45,%mm3
-
-// CHECK: psrad 32493, %mm3
- psrad 0x7eed,%mm3
-
-// CHECK: psrad 3133065982, %mm3
- psrad 0xbabecafe,%mm3
-
-// CHECK: psrad 305419896, %mm3
- psrad 0x12345678,%mm3
-
-// CHECK: psrad %mm3, %mm3
- psrad %mm3,%mm3
-
-// CHECK: psrad 3735928559(%ebx,%ecx,8), %xmm5
- psrad 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psrad 69, %xmm5
- psrad 0x45,%xmm5
-
-// CHECK: psrad 32493, %xmm5
- psrad 0x7eed,%xmm5
-
-// CHECK: psrad 3133065982, %xmm5
- psrad 0xbabecafe,%xmm5
-
-// CHECK: psrad 305419896, %xmm5
- psrad 0x12345678,%xmm5
-
-// CHECK: psrad %xmm5, %xmm5
- psrad %xmm5,%xmm5
-
-// CHECK: psrad $127, %mm3
- psrad $0x7f,%mm3
-
-// CHECK: psrad $127, %xmm5
- psrad $0x7f,%xmm5
-
-// CHECK: psrlw 3735928559(%ebx,%ecx,8), %mm3
- psrlw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psrlw 69, %mm3
- psrlw 0x45,%mm3
-
-// CHECK: psrlw 32493, %mm3
- psrlw 0x7eed,%mm3
-
-// CHECK: psrlw 3133065982, %mm3
- psrlw 0xbabecafe,%mm3
-
-// CHECK: psrlw 305419896, %mm3
- psrlw 0x12345678,%mm3
-
-// CHECK: psrlw %mm3, %mm3
- psrlw %mm3,%mm3
-
-// CHECK: psrlw 3735928559(%ebx,%ecx,8), %xmm5
- psrlw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psrlw 69, %xmm5
- psrlw 0x45,%xmm5
-
-// CHECK: psrlw 32493, %xmm5
- psrlw 0x7eed,%xmm5
-
-// CHECK: psrlw 3133065982, %xmm5
- psrlw 0xbabecafe,%xmm5
-
-// CHECK: psrlw 305419896, %xmm5
- psrlw 0x12345678,%xmm5
-
-// CHECK: psrlw %xmm5, %xmm5
- psrlw %xmm5,%xmm5
-
-// CHECK: psrlw $127, %mm3
- psrlw $0x7f,%mm3
-
-// CHECK: psrlw $127, %xmm5
- psrlw $0x7f,%xmm5
-
-// CHECK: psrld 3735928559(%ebx,%ecx,8), %mm3
- psrld 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psrld 69, %mm3
- psrld 0x45,%mm3
-
-// CHECK: psrld 32493, %mm3
- psrld 0x7eed,%mm3
-
-// CHECK: psrld 3133065982, %mm3
- psrld 0xbabecafe,%mm3
-
-// CHECK: psrld 305419896, %mm3
- psrld 0x12345678,%mm3
-
-// CHECK: psrld %mm3, %mm3
- psrld %mm3,%mm3
-
-// CHECK: psrld 3735928559(%ebx,%ecx,8), %xmm5
- psrld 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psrld 69, %xmm5
- psrld 0x45,%xmm5
-
-// CHECK: psrld 32493, %xmm5
- psrld 0x7eed,%xmm5
-
-// CHECK: psrld 3133065982, %xmm5
- psrld 0xbabecafe,%xmm5
-
-// CHECK: psrld 305419896, %xmm5
- psrld 0x12345678,%xmm5
-
-// CHECK: psrld %xmm5, %xmm5
- psrld %xmm5,%xmm5
-
-// CHECK: psrld $127, %mm3
- psrld $0x7f,%mm3
-
-// CHECK: psrld $127, %xmm5
- psrld $0x7f,%xmm5
-
-// CHECK: psrlq 3735928559(%ebx,%ecx,8), %mm3
- psrlq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psrlq 69, %mm3
- psrlq 0x45,%mm3
-
-// CHECK: psrlq 32493, %mm3
- psrlq 0x7eed,%mm3
-
-// CHECK: psrlq 3133065982, %mm3
- psrlq 0xbabecafe,%mm3
-
-// CHECK: psrlq 305419896, %mm3
- psrlq 0x12345678,%mm3
-
-// CHECK: psrlq %mm3, %mm3
- psrlq %mm3,%mm3
-
-// CHECK: psrlq 3735928559(%ebx,%ecx,8), %xmm5
- psrlq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psrlq 69, %xmm5
- psrlq 0x45,%xmm5
-
-// CHECK: psrlq 32493, %xmm5
- psrlq 0x7eed,%xmm5
-
-// CHECK: psrlq 3133065982, %xmm5
- psrlq 0xbabecafe,%xmm5
-
-// CHECK: psrlq 305419896, %xmm5
- psrlq 0x12345678,%xmm5
-
-// CHECK: psrlq %xmm5, %xmm5
- psrlq %xmm5,%xmm5
-
-// CHECK: psrlq $127, %mm3
- psrlq $0x7f,%mm3
-
-// CHECK: psrlq $127, %xmm5
- psrlq $0x7f,%xmm5
-
-// CHECK: psubb 3735928559(%ebx,%ecx,8), %mm3
- psubb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubb 69, %mm3
- psubb 0x45,%mm3
-
-// CHECK: psubb 32493, %mm3
- psubb 0x7eed,%mm3
-
-// CHECK: psubb 3133065982, %mm3
- psubb 0xbabecafe,%mm3
-
-// CHECK: psubb 305419896, %mm3
- psubb 0x12345678,%mm3
-
-// CHECK: psubb %mm3, %mm3
- psubb %mm3,%mm3
-
-// CHECK: psubb 3735928559(%ebx,%ecx,8), %xmm5
- psubb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubb 69, %xmm5
- psubb 0x45,%xmm5
-
-// CHECK: psubb 32493, %xmm5
- psubb 0x7eed,%xmm5
-
-// CHECK: psubb 3133065982, %xmm5
- psubb 0xbabecafe,%xmm5
-
-// CHECK: psubb 305419896, %xmm5
- psubb 0x12345678,%xmm5
-
-// CHECK: psubb %xmm5, %xmm5
- psubb %xmm5,%xmm5
-
-// CHECK: psubw 3735928559(%ebx,%ecx,8), %mm3
- psubw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubw 69, %mm3
- psubw 0x45,%mm3
-
-// CHECK: psubw 32493, %mm3
- psubw 0x7eed,%mm3
-
-// CHECK: psubw 3133065982, %mm3
- psubw 0xbabecafe,%mm3
-
-// CHECK: psubw 305419896, %mm3
- psubw 0x12345678,%mm3
-
-// CHECK: psubw %mm3, %mm3
- psubw %mm3,%mm3
-
-// CHECK: psubw 3735928559(%ebx,%ecx,8), %xmm5
- psubw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubw 69, %xmm5
- psubw 0x45,%xmm5
-
-// CHECK: psubw 32493, %xmm5
- psubw 0x7eed,%xmm5
-
-// CHECK: psubw 3133065982, %xmm5
- psubw 0xbabecafe,%xmm5
-
-// CHECK: psubw 305419896, %xmm5
- psubw 0x12345678,%xmm5
-
-// CHECK: psubw %xmm5, %xmm5
- psubw %xmm5,%xmm5
-
-// CHECK: psubd 3735928559(%ebx,%ecx,8), %mm3
- psubd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubd 69, %mm3
- psubd 0x45,%mm3
-
-// CHECK: psubd 32493, %mm3
- psubd 0x7eed,%mm3
-
-// CHECK: psubd 3133065982, %mm3
- psubd 0xbabecafe,%mm3
-
-// CHECK: psubd 305419896, %mm3
- psubd 0x12345678,%mm3
-
-// CHECK: psubd %mm3, %mm3
- psubd %mm3,%mm3
-
-// CHECK: psubd 3735928559(%ebx,%ecx,8), %xmm5
- psubd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubd 69, %xmm5
- psubd 0x45,%xmm5
-
-// CHECK: psubd 32493, %xmm5
- psubd 0x7eed,%xmm5
-
-// CHECK: psubd 3133065982, %xmm5
- psubd 0xbabecafe,%xmm5
-
-// CHECK: psubd 305419896, %xmm5
- psubd 0x12345678,%xmm5
-
-// CHECK: psubd %xmm5, %xmm5
- psubd %xmm5,%xmm5
-
-// CHECK: psubq 3735928559(%ebx,%ecx,8), %mm3
- psubq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubq 69, %mm3
- psubq 0x45,%mm3
-
-// CHECK: psubq 32493, %mm3
- psubq 0x7eed,%mm3
-
-// CHECK: psubq 3133065982, %mm3
- psubq 0xbabecafe,%mm3
-
-// CHECK: psubq 305419896, %mm3
- psubq 0x12345678,%mm3
-
-// CHECK: psubq %mm3, %mm3
- psubq %mm3,%mm3
-
-// CHECK: psubq 3735928559(%ebx,%ecx,8), %xmm5
- psubq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubq 69, %xmm5
- psubq 0x45,%xmm5
-
-// CHECK: psubq 32493, %xmm5
- psubq 0x7eed,%xmm5
-
-// CHECK: psubq 3133065982, %xmm5
- psubq 0xbabecafe,%xmm5
-
-// CHECK: psubq 305419896, %xmm5
- psubq 0x12345678,%xmm5
-
-// CHECK: psubq %xmm5, %xmm5
- psubq %xmm5,%xmm5
-
-// CHECK: psubsb 3735928559(%ebx,%ecx,8), %mm3
- psubsb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubsb 69, %mm3
- psubsb 0x45,%mm3
-
-// CHECK: psubsb 32493, %mm3
- psubsb 0x7eed,%mm3
-
-// CHECK: psubsb 3133065982, %mm3
- psubsb 0xbabecafe,%mm3
-
-// CHECK: psubsb 305419896, %mm3
- psubsb 0x12345678,%mm3
-
-// CHECK: psubsb %mm3, %mm3
- psubsb %mm3,%mm3
-
-// CHECK: psubsb 3735928559(%ebx,%ecx,8), %xmm5
- psubsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubsb 69, %xmm5
- psubsb 0x45,%xmm5
-
-// CHECK: psubsb 32493, %xmm5
- psubsb 0x7eed,%xmm5
-
-// CHECK: psubsb 3133065982, %xmm5
- psubsb 0xbabecafe,%xmm5
-
-// CHECK: psubsb 305419896, %xmm5
- psubsb 0x12345678,%xmm5
-
-// CHECK: psubsb %xmm5, %xmm5
- psubsb %xmm5,%xmm5
-
-// CHECK: psubsw 3735928559(%ebx,%ecx,8), %mm3
- psubsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubsw 69, %mm3
- psubsw 0x45,%mm3
-
-// CHECK: psubsw 32493, %mm3
- psubsw 0x7eed,%mm3
-
-// CHECK: psubsw 3133065982, %mm3
- psubsw 0xbabecafe,%mm3
-
-// CHECK: psubsw 305419896, %mm3
- psubsw 0x12345678,%mm3
-
-// CHECK: psubsw %mm3, %mm3
- psubsw %mm3,%mm3
-
-// CHECK: psubsw 3735928559(%ebx,%ecx,8), %xmm5
- psubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubsw 69, %xmm5
- psubsw 0x45,%xmm5
-
-// CHECK: psubsw 32493, %xmm5
- psubsw 0x7eed,%xmm5
-
-// CHECK: psubsw 3133065982, %xmm5
- psubsw 0xbabecafe,%xmm5
-
-// CHECK: psubsw 305419896, %xmm5
- psubsw 0x12345678,%xmm5
-
-// CHECK: psubsw %xmm5, %xmm5
- psubsw %xmm5,%xmm5
-
-// CHECK: psubusb 3735928559(%ebx,%ecx,8), %mm3
- psubusb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubusb 69, %mm3
- psubusb 0x45,%mm3
-
-// CHECK: psubusb 32493, %mm3
- psubusb 0x7eed,%mm3
-
-// CHECK: psubusb 3133065982, %mm3
- psubusb 0xbabecafe,%mm3
-
-// CHECK: psubusb 305419896, %mm3
- psubusb 0x12345678,%mm3
-
-// CHECK: psubusb %mm3, %mm3
- psubusb %mm3,%mm3
-
-// CHECK: psubusb 3735928559(%ebx,%ecx,8), %xmm5
- psubusb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubusb 69, %xmm5
- psubusb 0x45,%xmm5
-
-// CHECK: psubusb 32493, %xmm5
- psubusb 0x7eed,%xmm5
-
-// CHECK: psubusb 3133065982, %xmm5
- psubusb 0xbabecafe,%xmm5
-
-// CHECK: psubusb 305419896, %xmm5
- psubusb 0x12345678,%xmm5
-
-// CHECK: psubusb %xmm5, %xmm5
- psubusb %xmm5,%xmm5
-
-// CHECK: psubusw 3735928559(%ebx,%ecx,8), %mm3
- psubusw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psubusw 69, %mm3
- psubusw 0x45,%mm3
-
-// CHECK: psubusw 32493, %mm3
- psubusw 0x7eed,%mm3
-
-// CHECK: psubusw 3133065982, %mm3
- psubusw 0xbabecafe,%mm3
-
-// CHECK: psubusw 305419896, %mm3
- psubusw 0x12345678,%mm3
-
-// CHECK: psubusw %mm3, %mm3
- psubusw %mm3,%mm3
-
-// CHECK: psubusw 3735928559(%ebx,%ecx,8), %xmm5
- psubusw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psubusw 69, %xmm5
- psubusw 0x45,%xmm5
-
-// CHECK: psubusw 32493, %xmm5
- psubusw 0x7eed,%xmm5
-
-// CHECK: psubusw 3133065982, %xmm5
- psubusw 0xbabecafe,%xmm5
-
-// CHECK: psubusw 305419896, %xmm5
- psubusw 0x12345678,%xmm5
-
-// CHECK: psubusw %xmm5, %xmm5
- psubusw %xmm5,%xmm5
-
-// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %mm3
- punpckhbw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: punpckhbw 69, %mm3
- punpckhbw 0x45,%mm3
-
-// CHECK: punpckhbw 32493, %mm3
- punpckhbw 0x7eed,%mm3
-
-// CHECK: punpckhbw 3133065982, %mm3
- punpckhbw 0xbabecafe,%mm3
-
-// CHECK: punpckhbw 305419896, %mm3
- punpckhbw 0x12345678,%mm3
-
-// CHECK: punpckhbw %mm3, %mm3
- punpckhbw %mm3,%mm3
-
-// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %xmm5
- punpckhbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpckhbw 69, %xmm5
- punpckhbw 0x45,%xmm5
-
-// CHECK: punpckhbw 32493, %xmm5
- punpckhbw 0x7eed,%xmm5
-
-// CHECK: punpckhbw 3133065982, %xmm5
- punpckhbw 0xbabecafe,%xmm5
-
-// CHECK: punpckhbw 305419896, %xmm5
- punpckhbw 0x12345678,%xmm5
-
-// CHECK: punpckhbw %xmm5, %xmm5
- punpckhbw %xmm5,%xmm5
-
-// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %mm3
- punpckhwd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: punpckhwd 69, %mm3
- punpckhwd 0x45,%mm3
-
-// CHECK: punpckhwd 32493, %mm3
- punpckhwd 0x7eed,%mm3
-
-// CHECK: punpckhwd 3133065982, %mm3
- punpckhwd 0xbabecafe,%mm3
-
-// CHECK: punpckhwd 305419896, %mm3
- punpckhwd 0x12345678,%mm3
-
-// CHECK: punpckhwd %mm3, %mm3
- punpckhwd %mm3,%mm3
-
-// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %xmm5
- punpckhwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpckhwd 69, %xmm5
- punpckhwd 0x45,%xmm5
-
-// CHECK: punpckhwd 32493, %xmm5
- punpckhwd 0x7eed,%xmm5
-
-// CHECK: punpckhwd 3133065982, %xmm5
- punpckhwd 0xbabecafe,%xmm5
-
-// CHECK: punpckhwd 305419896, %xmm5
- punpckhwd 0x12345678,%xmm5
-
-// CHECK: punpckhwd %xmm5, %xmm5
- punpckhwd %xmm5,%xmm5
-
-// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %mm3
- punpckhdq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: punpckhdq 69, %mm3
- punpckhdq 0x45,%mm3
-
-// CHECK: punpckhdq 32493, %mm3
- punpckhdq 0x7eed,%mm3
-
-// CHECK: punpckhdq 3133065982, %mm3
- punpckhdq 0xbabecafe,%mm3
-
-// CHECK: punpckhdq 305419896, %mm3
- punpckhdq 0x12345678,%mm3
-
-// CHECK: punpckhdq %mm3, %mm3
- punpckhdq %mm3,%mm3
-
-// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %xmm5
- punpckhdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpckhdq 69, %xmm5
- punpckhdq 0x45,%xmm5
-
-// CHECK: punpckhdq 32493, %xmm5
- punpckhdq 0x7eed,%xmm5
-
-// CHECK: punpckhdq 3133065982, %xmm5
- punpckhdq 0xbabecafe,%xmm5
-
-// CHECK: punpckhdq 305419896, %xmm5
- punpckhdq 0x12345678,%xmm5
-
-// CHECK: punpckhdq %xmm5, %xmm5
- punpckhdq %xmm5,%xmm5
-
-// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %mm3
- punpcklbw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: punpcklbw 69, %mm3
- punpcklbw 0x45,%mm3
-
-// CHECK: punpcklbw 32493, %mm3
- punpcklbw 0x7eed,%mm3
-
-// CHECK: punpcklbw 3133065982, %mm3
- punpcklbw 0xbabecafe,%mm3
-
-// CHECK: punpcklbw 305419896, %mm3
- punpcklbw 0x12345678,%mm3
-
-// CHECK: punpcklbw %mm3, %mm3
- punpcklbw %mm3,%mm3
-
-// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %xmm5
- punpcklbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpcklbw 69, %xmm5
- punpcklbw 0x45,%xmm5
-
-// CHECK: punpcklbw 32493, %xmm5
- punpcklbw 0x7eed,%xmm5
-
-// CHECK: punpcklbw 3133065982, %xmm5
- punpcklbw 0xbabecafe,%xmm5
-
-// CHECK: punpcklbw 305419896, %xmm5
- punpcklbw 0x12345678,%xmm5
-
-// CHECK: punpcklbw %xmm5, %xmm5
- punpcklbw %xmm5,%xmm5
-
-// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %mm3
- punpcklwd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: punpcklwd 69, %mm3
- punpcklwd 0x45,%mm3
-
-// CHECK: punpcklwd 32493, %mm3
- punpcklwd 0x7eed,%mm3
-
-// CHECK: punpcklwd 3133065982, %mm3
- punpcklwd 0xbabecafe,%mm3
-
-// CHECK: punpcklwd 305419896, %mm3
- punpcklwd 0x12345678,%mm3
-
-// CHECK: punpcklwd %mm3, %mm3
- punpcklwd %mm3,%mm3
-
-// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %xmm5
- punpcklwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpcklwd 69, %xmm5
- punpcklwd 0x45,%xmm5
-
-// CHECK: punpcklwd 32493, %xmm5
- punpcklwd 0x7eed,%xmm5
-
-// CHECK: punpcklwd 3133065982, %xmm5
- punpcklwd 0xbabecafe,%xmm5
-
-// CHECK: punpcklwd 305419896, %xmm5
- punpcklwd 0x12345678,%xmm5
-
-// CHECK: punpcklwd %xmm5, %xmm5
- punpcklwd %xmm5,%xmm5
-
-// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %mm3
- punpckldq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: punpckldq 69, %mm3
- punpckldq 0x45,%mm3
-
-// CHECK: punpckldq 32493, %mm3
- punpckldq 0x7eed,%mm3
-
-// CHECK: punpckldq 3133065982, %mm3
- punpckldq 0xbabecafe,%mm3
-
-// CHECK: punpckldq 305419896, %mm3
- punpckldq 0x12345678,%mm3
-
-// CHECK: punpckldq %mm3, %mm3
- punpckldq %mm3,%mm3
-
-// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %xmm5
- punpckldq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpckldq 69, %xmm5
- punpckldq 0x45,%xmm5
-
-// CHECK: punpckldq 32493, %xmm5
- punpckldq 0x7eed,%xmm5
-
-// CHECK: punpckldq 3133065982, %xmm5
- punpckldq 0xbabecafe,%xmm5
-
-// CHECK: punpckldq 305419896, %xmm5
- punpckldq 0x12345678,%xmm5
-
-// CHECK: punpckldq %xmm5, %xmm5
- punpckldq %xmm5,%xmm5
-
-// CHECK: pxor 3735928559(%ebx,%ecx,8), %mm3
- pxor 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pxor 69, %mm3
- pxor 0x45,%mm3
-
-// CHECK: pxor 32493, %mm3
- pxor 0x7eed,%mm3
-
-// CHECK: pxor 3133065982, %mm3
- pxor 0xbabecafe,%mm3
-
-// CHECK: pxor 305419896, %mm3
- pxor 0x12345678,%mm3
-
-// CHECK: pxor %mm3, %mm3
- pxor %mm3,%mm3
-
-// CHECK: pxor 3735928559(%ebx,%ecx,8), %xmm5
- pxor 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pxor 69, %xmm5
- pxor 0x45,%xmm5
-
-// CHECK: pxor 32493, %xmm5
- pxor 0x7eed,%xmm5
-
-// CHECK: pxor 3133065982, %xmm5
- pxor 0xbabecafe,%xmm5
-
-// CHECK: pxor 305419896, %xmm5
- pxor 0x12345678,%xmm5
-
-// CHECK: pxor %xmm5, %xmm5
- pxor %xmm5,%xmm5
-
-// CHECK: addps 3735928559(%ebx,%ecx,8), %xmm5
- addps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: addps 69, %xmm5
- addps 0x45,%xmm5
-
-// CHECK: addps 32493, %xmm5
- addps 0x7eed,%xmm5
-
-// CHECK: addps 3133065982, %xmm5
- addps 0xbabecafe,%xmm5
-
-// CHECK: addps 305419896, %xmm5
- addps 0x12345678,%xmm5
-
-// CHECK: addps %xmm5, %xmm5
- addps %xmm5,%xmm5
-
-// CHECK: addss 3735928559(%ebx,%ecx,8), %xmm5
- addss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: addss 69, %xmm5
- addss 0x45,%xmm5
-
-// CHECK: addss 32493, %xmm5
- addss 0x7eed,%xmm5
-
-// CHECK: addss 3133065982, %xmm5
- addss 0xbabecafe,%xmm5
-
-// CHECK: addss 305419896, %xmm5
- addss 0x12345678,%xmm5
-
-// CHECK: addss %xmm5, %xmm5
- addss %xmm5,%xmm5
-
-// CHECK: andnps 3735928559(%ebx,%ecx,8), %xmm5
- andnps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: andnps 69, %xmm5
- andnps 0x45,%xmm5
-
-// CHECK: andnps 32493, %xmm5
- andnps 0x7eed,%xmm5
-
-// CHECK: andnps 3133065982, %xmm5
- andnps 0xbabecafe,%xmm5
-
-// CHECK: andnps 305419896, %xmm5
- andnps 0x12345678,%xmm5
-
-// CHECK: andnps %xmm5, %xmm5
- andnps %xmm5,%xmm5
-
-// CHECK: andps 3735928559(%ebx,%ecx,8), %xmm5
- andps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: andps 69, %xmm5
- andps 0x45,%xmm5
-
-// CHECK: andps 32493, %xmm5
- andps 0x7eed,%xmm5
-
-// CHECK: andps 3133065982, %xmm5
- andps 0xbabecafe,%xmm5
-
-// CHECK: andps 305419896, %xmm5
- andps 0x12345678,%xmm5
-
-// CHECK: andps %xmm5, %xmm5
- andps %xmm5,%xmm5
-
-// CHECK: comiss 3735928559(%ebx,%ecx,8), %xmm5
- comiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: comiss 69, %xmm5
- comiss 0x45,%xmm5
-
-// CHECK: comiss 32493, %xmm5
- comiss 0x7eed,%xmm5
-
-// CHECK: comiss 3133065982, %xmm5
- comiss 0xbabecafe,%xmm5
-
-// CHECK: comiss 305419896, %xmm5
- comiss 0x12345678,%xmm5
-
-// CHECK: comiss %xmm5, %xmm5
- comiss %xmm5,%xmm5
-
-// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5
- cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpi2ps 69, %xmm5
- cvtpi2ps 0x45,%xmm5
-
-// CHECK: cvtpi2ps 32493, %xmm5
- cvtpi2ps 0x7eed,%xmm5
-
-// CHECK: cvtpi2ps 3133065982, %xmm5
- cvtpi2ps 0xbabecafe,%xmm5
-
-// CHECK: cvtpi2ps 305419896, %xmm5
- cvtpi2ps 0x12345678,%xmm5
-
-// CHECK: cvtpi2ps %mm3, %xmm5
- cvtpi2ps %mm3,%xmm5
-
-// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3
- cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvtps2pi 69, %mm3
- cvtps2pi 0x45,%mm3
-
-// CHECK: cvtps2pi 32493, %mm3
- cvtps2pi 0x7eed,%mm3
-
-// CHECK: cvtps2pi 3133065982, %mm3
- cvtps2pi 0xbabecafe,%mm3
-
-// CHECK: cvtps2pi 305419896, %mm3
- cvtps2pi 0x12345678,%mm3
-
-// CHECK: cvtps2pi %xmm5, %mm3
- cvtps2pi %xmm5,%mm3
-
-// CHECK: cvtsi2ss %ecx, %xmm5
- cvtsi2ss %ecx,%xmm5
-
-// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5
- cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtsi2ss 69, %xmm5
- cvtsi2ss 0x45,%xmm5
-
-// CHECK: cvtsi2ss 32493, %xmm5
- cvtsi2ss 0x7eed,%xmm5
-
-// CHECK: cvtsi2ss 3133065982, %xmm5
- cvtsi2ss 0xbabecafe,%xmm5
-
-// CHECK: cvtsi2ss 305419896, %xmm5
- cvtsi2ss 0x12345678,%xmm5
-
-// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3
- cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvttps2pi 69, %mm3
- cvttps2pi 0x45,%mm3
-
-// CHECK: cvttps2pi 32493, %mm3
- cvttps2pi 0x7eed,%mm3
-
-// CHECK: cvttps2pi 3133065982, %mm3
- cvttps2pi 0xbabecafe,%mm3
-
-// CHECK: cvttps2pi 305419896, %mm3
- cvttps2pi 0x12345678,%mm3
-
-// CHECK: cvttps2pi %xmm5, %mm3
- cvttps2pi %xmm5,%mm3
-
-// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx
- cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: cvttss2si 69, %ecx
- cvttss2si 0x45,%ecx
-
-// CHECK: cvttss2si 32493, %ecx
- cvttss2si 0x7eed,%ecx
-
-// CHECK: cvttss2si 3133065982, %ecx
- cvttss2si 0xbabecafe,%ecx
-
-// CHECK: cvttss2si 305419896, %ecx
- cvttss2si 0x12345678,%ecx
-
-// CHECK: cvttss2si %xmm5, %ecx
- cvttss2si %xmm5,%ecx
-
-// CHECK: divps 3735928559(%ebx,%ecx,8), %xmm5
- divps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: divps 69, %xmm5
- divps 0x45,%xmm5
-
-// CHECK: divps 32493, %xmm5
- divps 0x7eed,%xmm5
-
-// CHECK: divps 3133065982, %xmm5
- divps 0xbabecafe,%xmm5
-
-// CHECK: divps 305419896, %xmm5
- divps 0x12345678,%xmm5
-
-// CHECK: divps %xmm5, %xmm5
- divps %xmm5,%xmm5
-
-// CHECK: divss 3735928559(%ebx,%ecx,8), %xmm5
- divss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: divss 69, %xmm5
- divss 0x45,%xmm5
-
-// CHECK: divss 32493, %xmm5
- divss 0x7eed,%xmm5
-
-// CHECK: divss 3133065982, %xmm5
- divss 0xbabecafe,%xmm5
-
-// CHECK: divss 305419896, %xmm5
- divss 0x12345678,%xmm5
-
-// CHECK: divss %xmm5, %xmm5
- divss %xmm5,%xmm5
-
-// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8)
- ldmxcsr 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: ldmxcsr 32493
- ldmxcsr 0x7eed
-
-// CHECK: ldmxcsr 3133065982
- ldmxcsr 0xbabecafe
-
-// CHECK: ldmxcsr 305419896
- ldmxcsr 0x12345678
-
-// CHECK: maskmovq %mm3, %mm3
- maskmovq %mm3,%mm3
-
-// CHECK: maxps 3735928559(%ebx,%ecx,8), %xmm5
- maxps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: maxps 69, %xmm5
- maxps 0x45,%xmm5
-
-// CHECK: maxps 32493, %xmm5
- maxps 0x7eed,%xmm5
-
-// CHECK: maxps 3133065982, %xmm5
- maxps 0xbabecafe,%xmm5
-
-// CHECK: maxps 305419896, %xmm5
- maxps 0x12345678,%xmm5
-
-// CHECK: maxps %xmm5, %xmm5
- maxps %xmm5,%xmm5
-
-// CHECK: maxss 3735928559(%ebx,%ecx,8), %xmm5
- maxss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: maxss 69, %xmm5
- maxss 0x45,%xmm5
-
-// CHECK: maxss 32493, %xmm5
- maxss 0x7eed,%xmm5
-
-// CHECK: maxss 3133065982, %xmm5
- maxss 0xbabecafe,%xmm5
-
-// CHECK: maxss 305419896, %xmm5
- maxss 0x12345678,%xmm5
-
-// CHECK: maxss %xmm5, %xmm5
- maxss %xmm5,%xmm5
-
-// CHECK: minps 3735928559(%ebx,%ecx,8), %xmm5
- minps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: minps 69, %xmm5
- minps 0x45,%xmm5
-
-// CHECK: minps 32493, %xmm5
- minps 0x7eed,%xmm5
-
-// CHECK: minps 3133065982, %xmm5
- minps 0xbabecafe,%xmm5
-
-// CHECK: minps 305419896, %xmm5
- minps 0x12345678,%xmm5
-
-// CHECK: minps %xmm5, %xmm5
- minps %xmm5,%xmm5
-
-// CHECK: minss 3735928559(%ebx,%ecx,8), %xmm5
- minss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: minss 69, %xmm5
- minss 0x45,%xmm5
-
-// CHECK: minss 32493, %xmm5
- minss 0x7eed,%xmm5
-
-// CHECK: minss 3133065982, %xmm5
- minss 0xbabecafe,%xmm5
-
-// CHECK: minss 305419896, %xmm5
- minss 0x12345678,%xmm5
-
-// CHECK: minss %xmm5, %xmm5
- minss %xmm5,%xmm5
-
-// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5
- movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movaps 69, %xmm5
- movaps 0x45,%xmm5
-
-// CHECK: movaps 32493, %xmm5
- movaps 0x7eed,%xmm5
-
-// CHECK: movaps 3133065982, %xmm5
- movaps 0xbabecafe,%xmm5
-
-// CHECK: movaps 305419896, %xmm5
- movaps 0x12345678,%xmm5
-
-// CHECK: movaps %xmm5, %xmm5
- movaps %xmm5,%xmm5
-
-// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8)
- movaps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movaps %xmm5, 69
- movaps %xmm5,0x45
-
-// CHECK: movaps %xmm5, 32493
- movaps %xmm5,0x7eed
-
-// CHECK: movaps %xmm5, 3133065982
- movaps %xmm5,0xbabecafe
-
-// CHECK: movaps %xmm5, 305419896
- movaps %xmm5,0x12345678
-
-// CHECK: movaps %xmm5, %xmm5
- movaps %xmm5,%xmm5
-
-// CHECK: movhlps %xmm5, %xmm5
- movhlps %xmm5,%xmm5
-
-// CHECK: movhps 3735928559(%ebx,%ecx,8), %xmm5
- movhps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movhps 69, %xmm5
- movhps 0x45,%xmm5
-
-// CHECK: movhps 32493, %xmm5
- movhps 0x7eed,%xmm5
-
-// CHECK: movhps 3133065982, %xmm5
- movhps 0xbabecafe,%xmm5
-
-// CHECK: movhps 305419896, %xmm5
- movhps 0x12345678,%xmm5
-
-// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8)
- movhps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movhps %xmm5, 69
- movhps %xmm5,0x45
-
-// CHECK: movhps %xmm5, 32493
- movhps %xmm5,0x7eed
-
-// CHECK: movhps %xmm5, 3133065982
- movhps %xmm5,0xbabecafe
-
-// CHECK: movhps %xmm5, 305419896
- movhps %xmm5,0x12345678
-
-// CHECK: movlhps %xmm5, %xmm5
- movlhps %xmm5,%xmm5
-
-// CHECK: movlps 3735928559(%ebx,%ecx,8), %xmm5
- movlps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movlps 69, %xmm5
- movlps 0x45,%xmm5
-
-// CHECK: movlps 32493, %xmm5
- movlps 0x7eed,%xmm5
-
-// CHECK: movlps 3133065982, %xmm5
- movlps 0xbabecafe,%xmm5
-
-// CHECK: movlps 305419896, %xmm5
- movlps 0x12345678,%xmm5
-
-// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8)
- movlps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movlps %xmm5, 69
- movlps %xmm5,0x45
-
-// CHECK: movlps %xmm5, 32493
- movlps %xmm5,0x7eed
-
-// CHECK: movlps %xmm5, 3133065982
- movlps %xmm5,0xbabecafe
-
-// CHECK: movlps %xmm5, 305419896
- movlps %xmm5,0x12345678
-
-// CHECK: movmskps %xmm5, %ecx
- movmskps %xmm5,%ecx
-
-// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8)
- movntps %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movntps %xmm5, 69
- movntps %xmm5,0x45
-
-// CHECK: movntps %xmm5, 32493
- movntps %xmm5,0x7eed
-
-// CHECK: movntps %xmm5, 3133065982
- movntps %xmm5,0xbabecafe
-
-// CHECK: movntps %xmm5, 305419896
- movntps %xmm5,0x12345678
-
-// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8)
- movntq %mm3,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movntq %mm3, 69
- movntq %mm3,0x45
-
-// CHECK: movntq %mm3, 32493
- movntq %mm3,0x7eed
-
-// CHECK: movntq %mm3, 3133065982
- movntq %mm3,0xbabecafe
-
-// CHECK: movntq %mm3, 305419896
- movntq %mm3,0x12345678
-
-// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8)
- movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movntdq %xmm5, 69
- movntdq %xmm5,0x45
-
-// CHECK: movntdq %xmm5, 32493
- movntdq %xmm5,0x7eed
-
-// CHECK: movntdq %xmm5, 3133065982
- movntdq %xmm5,0xbabecafe
-
-// CHECK: movntdq %xmm5, 305419896
- movntdq %xmm5,0x12345678
-
-// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5
- movss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movss 69, %xmm5
- movss 0x45,%xmm5
-
-// CHECK: movss 32493, %xmm5
- movss 0x7eed,%xmm5
-
-// CHECK: movss 3133065982, %xmm5
- movss 0xbabecafe,%xmm5
-
-// CHECK: movss 305419896, %xmm5
- movss 0x12345678,%xmm5
-
-// CHECK: movss %xmm5, %xmm5
- movss %xmm5,%xmm5
-
-// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8)
- movss %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movss %xmm5, 69
- movss %xmm5,0x45
-
-// CHECK: movss %xmm5, 32493
- movss %xmm5,0x7eed
-
-// CHECK: movss %xmm5, 3133065982
- movss %xmm5,0xbabecafe
-
-// CHECK: movss %xmm5, 305419896
- movss %xmm5,0x12345678
-
-// CHECK: movss %xmm5, %xmm5
- movss %xmm5,%xmm5
-
-// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5
- movups 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movups 69, %xmm5
- movups 0x45,%xmm5
-
-// CHECK: movups 32493, %xmm5
- movups 0x7eed,%xmm5
-
-// CHECK: movups 3133065982, %xmm5
- movups 0xbabecafe,%xmm5
-
-// CHECK: movups 305419896, %xmm5
- movups 0x12345678,%xmm5
-
-// CHECK: movups %xmm5, %xmm5
- movups %xmm5,%xmm5
-
-// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8)
- movups %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movups %xmm5, 69
- movups %xmm5,0x45
-
-// CHECK: movups %xmm5, 32493
- movups %xmm5,0x7eed
-
-// CHECK: movups %xmm5, 3133065982
- movups %xmm5,0xbabecafe
-
-// CHECK: movups %xmm5, 305419896
- movups %xmm5,0x12345678
-
-// CHECK: movups %xmm5, %xmm5
- movups %xmm5,%xmm5
-
-// CHECK: mulps 3735928559(%ebx,%ecx,8), %xmm5
- mulps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: mulps 69, %xmm5
- mulps 0x45,%xmm5
-
-// CHECK: mulps 32493, %xmm5
- mulps 0x7eed,%xmm5
-
-// CHECK: mulps 3133065982, %xmm5
- mulps 0xbabecafe,%xmm5
-
-// CHECK: mulps 305419896, %xmm5
- mulps 0x12345678,%xmm5
-
-// CHECK: mulps %xmm5, %xmm5
- mulps %xmm5,%xmm5
-
-// CHECK: mulss 3735928559(%ebx,%ecx,8), %xmm5
- mulss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: mulss 69, %xmm5
- mulss 0x45,%xmm5
-
-// CHECK: mulss 32493, %xmm5
- mulss 0x7eed,%xmm5
-
-// CHECK: mulss 3133065982, %xmm5
- mulss 0xbabecafe,%xmm5
-
-// CHECK: mulss 305419896, %xmm5
- mulss 0x12345678,%xmm5
-
-// CHECK: mulss %xmm5, %xmm5
- mulss %xmm5,%xmm5
-
-// CHECK: orps 3735928559(%ebx,%ecx,8), %xmm5
- orps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: orps 69, %xmm5
- orps 0x45,%xmm5
-
-// CHECK: orps 32493, %xmm5
- orps 0x7eed,%xmm5
-
-// CHECK: orps 3133065982, %xmm5
- orps 0xbabecafe,%xmm5
-
-// CHECK: orps 305419896, %xmm5
- orps 0x12345678,%xmm5
-
-// CHECK: orps %xmm5, %xmm5
- orps %xmm5,%xmm5
-
-// CHECK: pavgb 3735928559(%ebx,%ecx,8), %mm3
- pavgb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pavgb 69, %mm3
- pavgb 0x45,%mm3
-
-// CHECK: pavgb 32493, %mm3
- pavgb 0x7eed,%mm3
-
-// CHECK: pavgb 3133065982, %mm3
- pavgb 0xbabecafe,%mm3
-
-// CHECK: pavgb 305419896, %mm3
- pavgb 0x12345678,%mm3
-
-// CHECK: pavgb %mm3, %mm3
- pavgb %mm3,%mm3
-
-// CHECK: pavgb 3735928559(%ebx,%ecx,8), %xmm5
- pavgb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pavgb 69, %xmm5
- pavgb 0x45,%xmm5
-
-// CHECK: pavgb 32493, %xmm5
- pavgb 0x7eed,%xmm5
-
-// CHECK: pavgb 3133065982, %xmm5
- pavgb 0xbabecafe,%xmm5
-
-// CHECK: pavgb 305419896, %xmm5
- pavgb 0x12345678,%xmm5
-
-// CHECK: pavgb %xmm5, %xmm5
- pavgb %xmm5,%xmm5
-
-// CHECK: pavgw 3735928559(%ebx,%ecx,8), %mm3
- pavgw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pavgw 69, %mm3
- pavgw 0x45,%mm3
-
-// CHECK: pavgw 32493, %mm3
- pavgw 0x7eed,%mm3
-
-// CHECK: pavgw 3133065982, %mm3
- pavgw 0xbabecafe,%mm3
-
-// CHECK: pavgw 305419896, %mm3
- pavgw 0x12345678,%mm3
-
-// CHECK: pavgw %mm3, %mm3
- pavgw %mm3,%mm3
-
-// CHECK: pavgw 3735928559(%ebx,%ecx,8), %xmm5
- pavgw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pavgw 69, %xmm5
- pavgw 0x45,%xmm5
-
-// CHECK: pavgw 32493, %xmm5
- pavgw 0x7eed,%xmm5
-
-// CHECK: pavgw 3133065982, %xmm5
- pavgw 0xbabecafe,%xmm5
-
-// CHECK: pavgw 305419896, %xmm5
- pavgw 0x12345678,%xmm5
-
-// CHECK: pavgw %xmm5, %xmm5
- pavgw %xmm5,%xmm5
-
-// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %mm3
- pmaxsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmaxsw 69, %mm3
- pmaxsw 0x45,%mm3
-
-// CHECK: pmaxsw 32493, %mm3
- pmaxsw 0x7eed,%mm3
-
-// CHECK: pmaxsw 3133065982, %mm3
- pmaxsw 0xbabecafe,%mm3
-
-// CHECK: pmaxsw 305419896, %mm3
- pmaxsw 0x12345678,%mm3
-
-// CHECK: pmaxsw %mm3, %mm3
- pmaxsw %mm3,%mm3
-
-// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %xmm5
- pmaxsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaxsw 69, %xmm5
- pmaxsw 0x45,%xmm5
-
-// CHECK: pmaxsw 32493, %xmm5
- pmaxsw 0x7eed,%xmm5
-
-// CHECK: pmaxsw 3133065982, %xmm5
- pmaxsw 0xbabecafe,%xmm5
-
-// CHECK: pmaxsw 305419896, %xmm5
- pmaxsw 0x12345678,%xmm5
-
-// CHECK: pmaxsw %xmm5, %xmm5
- pmaxsw %xmm5,%xmm5
-
-// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %mm3
- pmaxub 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmaxub 69, %mm3
- pmaxub 0x45,%mm3
-
-// CHECK: pmaxub 32493, %mm3
- pmaxub 0x7eed,%mm3
-
-// CHECK: pmaxub 3133065982, %mm3
- pmaxub 0xbabecafe,%mm3
-
-// CHECK: pmaxub 305419896, %mm3
- pmaxub 0x12345678,%mm3
-
-// CHECK: pmaxub %mm3, %mm3
- pmaxub %mm3,%mm3
-
-// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %xmm5
- pmaxub 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaxub 69, %xmm5
- pmaxub 0x45,%xmm5
-
-// CHECK: pmaxub 32493, %xmm5
- pmaxub 0x7eed,%xmm5
-
-// CHECK: pmaxub 3133065982, %xmm5
- pmaxub 0xbabecafe,%xmm5
-
-// CHECK: pmaxub 305419896, %xmm5
- pmaxub 0x12345678,%xmm5
-
-// CHECK: pmaxub %xmm5, %xmm5
- pmaxub %xmm5,%xmm5
-
-// CHECK: pminsw 3735928559(%ebx,%ecx,8), %mm3
- pminsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pminsw 69, %mm3
- pminsw 0x45,%mm3
-
-// CHECK: pminsw 32493, %mm3
- pminsw 0x7eed,%mm3
-
-// CHECK: pminsw 3133065982, %mm3
- pminsw 0xbabecafe,%mm3
-
-// CHECK: pminsw 305419896, %mm3
- pminsw 0x12345678,%mm3
-
-// CHECK: pminsw %mm3, %mm3
- pminsw %mm3,%mm3
-
-// CHECK: pminsw 3735928559(%ebx,%ecx,8), %xmm5
- pminsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pminsw 69, %xmm5
- pminsw 0x45,%xmm5
-
-// CHECK: pminsw 32493, %xmm5
- pminsw 0x7eed,%xmm5
-
-// CHECK: pminsw 3133065982, %xmm5
- pminsw 0xbabecafe,%xmm5
-
-// CHECK: pminsw 305419896, %xmm5
- pminsw 0x12345678,%xmm5
-
-// CHECK: pminsw %xmm5, %xmm5
- pminsw %xmm5,%xmm5
-
-// CHECK: pminub 3735928559(%ebx,%ecx,8), %mm3
- pminub 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pminub 69, %mm3
- pminub 0x45,%mm3
-
-// CHECK: pminub 32493, %mm3
- pminub 0x7eed,%mm3
-
-// CHECK: pminub 3133065982, %mm3
- pminub 0xbabecafe,%mm3
-
-// CHECK: pminub 305419896, %mm3
- pminub 0x12345678,%mm3
-
-// CHECK: pminub %mm3, %mm3
- pminub %mm3,%mm3
-
-// CHECK: pminub 3735928559(%ebx,%ecx,8), %xmm5
- pminub 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pminub 69, %xmm5
- pminub 0x45,%xmm5
-
-// CHECK: pminub 32493, %xmm5
- pminub 0x7eed,%xmm5
-
-// CHECK: pminub 3133065982, %xmm5
- pminub 0xbabecafe,%xmm5
-
-// CHECK: pminub 305419896, %xmm5
- pminub 0x12345678,%xmm5
-
-// CHECK: pminub %xmm5, %xmm5
- pminub %xmm5,%xmm5
-
-// CHECK: pmovmskb %mm3, %ecx
- pmovmskb %mm3,%ecx
-
-// CHECK: pmovmskb %xmm5, %ecx
- pmovmskb %xmm5,%ecx
-
-// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %mm3
- pmulhuw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmulhuw 69, %mm3
- pmulhuw 0x45,%mm3
-
-// CHECK: pmulhuw 32493, %mm3
- pmulhuw 0x7eed,%mm3
-
-// CHECK: pmulhuw 3133065982, %mm3
- pmulhuw 0xbabecafe,%mm3
-
-// CHECK: pmulhuw 305419896, %mm3
- pmulhuw 0x12345678,%mm3
-
-// CHECK: pmulhuw %mm3, %mm3
- pmulhuw %mm3,%mm3
-
-// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %xmm5
- pmulhuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmulhuw 69, %xmm5
- pmulhuw 0x45,%xmm5
-
-// CHECK: pmulhuw 32493, %xmm5
- pmulhuw 0x7eed,%xmm5
-
-// CHECK: pmulhuw 3133065982, %xmm5
- pmulhuw 0xbabecafe,%xmm5
-
-// CHECK: pmulhuw 305419896, %xmm5
- pmulhuw 0x12345678,%xmm5
-
-// CHECK: pmulhuw %xmm5, %xmm5
- pmulhuw %xmm5,%xmm5
-
-// CHECK: prefetchnta 3735928559(%ebx,%ecx,8)
- prefetchnta 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetchnta 32493
- prefetchnta 0x7eed
-
-// CHECK: prefetchnta 3133065982
- prefetchnta 0xbabecafe
-
-// CHECK: prefetchnta 305419896
- prefetchnta 0x12345678
-
-// CHECK: prefetcht0 3735928559(%ebx,%ecx,8)
- prefetcht0 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetcht0 32493
- prefetcht0 0x7eed
-
-// CHECK: prefetcht0 3133065982
- prefetcht0 0xbabecafe
-
-// CHECK: prefetcht0 305419896
- prefetcht0 0x12345678
-
-// CHECK: prefetcht1 3735928559(%ebx,%ecx,8)
- prefetcht1 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetcht1 32493
- prefetcht1 0x7eed
-
-// CHECK: prefetcht1 3133065982
- prefetcht1 0xbabecafe
-
-// CHECK: prefetcht1 305419896
- prefetcht1 0x12345678
-
-// CHECK: prefetcht2 3735928559(%ebx,%ecx,8)
- prefetcht2 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: prefetcht2 32493
- prefetcht2 0x7eed
-
-// CHECK: prefetcht2 3133065982
- prefetcht2 0xbabecafe
-
-// CHECK: prefetcht2 305419896
- prefetcht2 0x12345678
-
-// CHECK: psadbw 3735928559(%ebx,%ecx,8), %mm3
- psadbw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psadbw 69, %mm3
- psadbw 0x45,%mm3
-
-// CHECK: psadbw 32493, %mm3
- psadbw 0x7eed,%mm3
-
-// CHECK: psadbw 3133065982, %mm3
- psadbw 0xbabecafe,%mm3
-
-// CHECK: psadbw 305419896, %mm3
- psadbw 0x12345678,%mm3
-
-// CHECK: psadbw %mm3, %mm3
- psadbw %mm3,%mm3
-
-// CHECK: psadbw 3735928559(%ebx,%ecx,8), %xmm5
- psadbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psadbw 69, %xmm5
- psadbw 0x45,%xmm5
-
-// CHECK: psadbw 32493, %xmm5
- psadbw 0x7eed,%xmm5
-
-// CHECK: psadbw 3133065982, %xmm5
- psadbw 0xbabecafe,%xmm5
-
-// CHECK: psadbw 305419896, %xmm5
- psadbw 0x12345678,%xmm5
-
-// CHECK: psadbw %xmm5, %xmm5
- psadbw %xmm5,%xmm5
-
-// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5
- rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rcpps 69, %xmm5
- rcpps 0x45,%xmm5
-
-// CHECK: rcpps 32493, %xmm5
- rcpps 0x7eed,%xmm5
-
-// CHECK: rcpps 3133065982, %xmm5
- rcpps 0xbabecafe,%xmm5
-
-// CHECK: rcpps 305419896, %xmm5
- rcpps 0x12345678,%xmm5
-
-// CHECK: rcpps %xmm5, %xmm5
- rcpps %xmm5,%xmm5
-
-// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5
- rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rcpss 69, %xmm5
- rcpss 0x45,%xmm5
-
-// CHECK: rcpss 32493, %xmm5
- rcpss 0x7eed,%xmm5
-
-// CHECK: rcpss 3133065982, %xmm5
- rcpss 0xbabecafe,%xmm5
-
-// CHECK: rcpss 305419896, %xmm5
- rcpss 0x12345678,%xmm5
-
-// CHECK: rcpss %xmm5, %xmm5
- rcpss %xmm5,%xmm5
-
-// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5
- rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rsqrtps 69, %xmm5
- rsqrtps 0x45,%xmm5
-
-// CHECK: rsqrtps 32493, %xmm5
- rsqrtps 0x7eed,%xmm5
-
-// CHECK: rsqrtps 3133065982, %xmm5
- rsqrtps 0xbabecafe,%xmm5
-
-// CHECK: rsqrtps 305419896, %xmm5
- rsqrtps 0x12345678,%xmm5
-
-// CHECK: rsqrtps %xmm5, %xmm5
- rsqrtps %xmm5,%xmm5
-
-// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5
- rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: rsqrtss 69, %xmm5
- rsqrtss 0x45,%xmm5
-
-// CHECK: rsqrtss 32493, %xmm5
- rsqrtss 0x7eed,%xmm5
-
-// CHECK: rsqrtss 3133065982, %xmm5
- rsqrtss 0xbabecafe,%xmm5
-
-// CHECK: rsqrtss 305419896, %xmm5
- rsqrtss 0x12345678,%xmm5
-
-// CHECK: rsqrtss %xmm5, %xmm5
- rsqrtss %xmm5,%xmm5
-
-// CHECK: sfence
- sfence
-
-// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5
- sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtps 69, %xmm5
- sqrtps 0x45,%xmm5
-
-// CHECK: sqrtps 32493, %xmm5
- sqrtps 0x7eed,%xmm5
-
-// CHECK: sqrtps 3133065982, %xmm5
- sqrtps 0xbabecafe,%xmm5
-
-// CHECK: sqrtps 305419896, %xmm5
- sqrtps 0x12345678,%xmm5
-
-// CHECK: sqrtps %xmm5, %xmm5
- sqrtps %xmm5,%xmm5
-
-// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5
- sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtss 69, %xmm5
- sqrtss 0x45,%xmm5
-
-// CHECK: sqrtss 32493, %xmm5
- sqrtss 0x7eed,%xmm5
-
-// CHECK: sqrtss 3133065982, %xmm5
- sqrtss 0xbabecafe,%xmm5
-
-// CHECK: sqrtss 305419896, %xmm5
- sqrtss 0x12345678,%xmm5
-
-// CHECK: sqrtss %xmm5, %xmm5
- sqrtss %xmm5,%xmm5
-
-// CHECK: stmxcsr 3735928559(%ebx,%ecx,8)
- stmxcsr 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: stmxcsr 32493
- stmxcsr 0x7eed
-
-// CHECK: stmxcsr 3133065982
- stmxcsr 0xbabecafe
-
-// CHECK: stmxcsr 305419896
- stmxcsr 0x12345678
-
-// CHECK: subps 3735928559(%ebx,%ecx,8), %xmm5
- subps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: subps 69, %xmm5
- subps 0x45,%xmm5
-
-// CHECK: subps 32493, %xmm5
- subps 0x7eed,%xmm5
-
-// CHECK: subps 3133065982, %xmm5
- subps 0xbabecafe,%xmm5
-
-// CHECK: subps 305419896, %xmm5
- subps 0x12345678,%xmm5
-
-// CHECK: subps %xmm5, %xmm5
- subps %xmm5,%xmm5
-
-// CHECK: subss 3735928559(%ebx,%ecx,8), %xmm5
- subss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: subss 69, %xmm5
- subss 0x45,%xmm5
-
-// CHECK: subss 32493, %xmm5
- subss 0x7eed,%xmm5
-
-// CHECK: subss 3133065982, %xmm5
- subss 0xbabecafe,%xmm5
-
-// CHECK: subss 305419896, %xmm5
- subss 0x12345678,%xmm5
-
-// CHECK: subss %xmm5, %xmm5
- subss %xmm5,%xmm5
-
-// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5
- ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: ucomiss 69, %xmm5
- ucomiss 0x45,%xmm5
-
-// CHECK: ucomiss 32493, %xmm5
- ucomiss 0x7eed,%xmm5
-
-// CHECK: ucomiss 3133065982, %xmm5
- ucomiss 0xbabecafe,%xmm5
-
-// CHECK: ucomiss 305419896, %xmm5
- ucomiss 0x12345678,%xmm5
-
-// CHECK: ucomiss %xmm5, %xmm5
- ucomiss %xmm5,%xmm5
-
-// CHECK: unpckhps 3735928559(%ebx,%ecx,8), %xmm5
- unpckhps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: unpckhps 69, %xmm5
- unpckhps 0x45,%xmm5
-
-// CHECK: unpckhps 32493, %xmm5
- unpckhps 0x7eed,%xmm5
-
-// CHECK: unpckhps 3133065982, %xmm5
- unpckhps 0xbabecafe,%xmm5
-
-// CHECK: unpckhps 305419896, %xmm5
- unpckhps 0x12345678,%xmm5
-
-// CHECK: unpckhps %xmm5, %xmm5
- unpckhps %xmm5,%xmm5
-
-// CHECK: unpcklps 3735928559(%ebx,%ecx,8), %xmm5
- unpcklps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: unpcklps 69, %xmm5
- unpcklps 0x45,%xmm5
-
-// CHECK: unpcklps 32493, %xmm5
- unpcklps 0x7eed,%xmm5
-
-// CHECK: unpcklps 3133065982, %xmm5
- unpcklps 0xbabecafe,%xmm5
-
-// CHECK: unpcklps 305419896, %xmm5
- unpcklps 0x12345678,%xmm5
-
-// CHECK: unpcklps %xmm5, %xmm5
- unpcklps %xmm5,%xmm5
-
-// CHECK: xorps 3735928559(%ebx,%ecx,8), %xmm5
- xorps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: xorps 69, %xmm5
- xorps 0x45,%xmm5
-
-// CHECK: xorps 32493, %xmm5
- xorps 0x7eed,%xmm5
-
-// CHECK: xorps 3133065982, %xmm5
- xorps 0xbabecafe,%xmm5
-
-// CHECK: xorps 305419896, %xmm5
- xorps 0x12345678,%xmm5
-
-// CHECK: xorps %xmm5, %xmm5
- xorps %xmm5,%xmm5
-
-// CHECK: addpd 3735928559(%ebx,%ecx,8), %xmm5
- addpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: addpd 69, %xmm5
- addpd 0x45,%xmm5
-
-// CHECK: addpd 32493, %xmm5
- addpd 0x7eed,%xmm5
-
-// CHECK: addpd 3133065982, %xmm5
- addpd 0xbabecafe,%xmm5
-
-// CHECK: addpd 305419896, %xmm5
- addpd 0x12345678,%xmm5
-
-// CHECK: addpd %xmm5, %xmm5
- addpd %xmm5,%xmm5
-
-// CHECK: addsd 3735928559(%ebx,%ecx,8), %xmm5
- addsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: addsd 69, %xmm5
- addsd 0x45,%xmm5
-
-// CHECK: addsd 32493, %xmm5
- addsd 0x7eed,%xmm5
-
-// CHECK: addsd 3133065982, %xmm5
- addsd 0xbabecafe,%xmm5
-
-// CHECK: addsd 305419896, %xmm5
- addsd 0x12345678,%xmm5
-
-// CHECK: addsd %xmm5, %xmm5
- addsd %xmm5,%xmm5
-
-// CHECK: andnpd 3735928559(%ebx,%ecx,8), %xmm5
- andnpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: andnpd 69, %xmm5
- andnpd 0x45,%xmm5
-
-// CHECK: andnpd 32493, %xmm5
- andnpd 0x7eed,%xmm5
-
-// CHECK: andnpd 3133065982, %xmm5
- andnpd 0xbabecafe,%xmm5
-
-// CHECK: andnpd 305419896, %xmm5
- andnpd 0x12345678,%xmm5
-
-// CHECK: andnpd %xmm5, %xmm5
- andnpd %xmm5,%xmm5
-
-// CHECK: andpd 3735928559(%ebx,%ecx,8), %xmm5
- andpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: andpd 69, %xmm5
- andpd 0x45,%xmm5
-
-// CHECK: andpd 32493, %xmm5
- andpd 0x7eed,%xmm5
-
-// CHECK: andpd 3133065982, %xmm5
- andpd 0xbabecafe,%xmm5
-
-// CHECK: andpd 305419896, %xmm5
- andpd 0x12345678,%xmm5
-
-// CHECK: andpd %xmm5, %xmm5
- andpd %xmm5,%xmm5
-
-// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5
- comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: comisd 69, %xmm5
- comisd 0x45,%xmm5
-
-// CHECK: comisd 32493, %xmm5
- comisd 0x7eed,%xmm5
-
-// CHECK: comisd 3133065982, %xmm5
- comisd 0xbabecafe,%xmm5
-
-// CHECK: comisd 305419896, %xmm5
- comisd 0x12345678,%xmm5
-
-// CHECK: comisd %xmm5, %xmm5
- comisd %xmm5,%xmm5
-
-// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5
- cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpi2pd 69, %xmm5
- cvtpi2pd 0x45,%xmm5
-
-// CHECK: cvtpi2pd 32493, %xmm5
- cvtpi2pd 0x7eed,%xmm5
-
-// CHECK: cvtpi2pd 3133065982, %xmm5
- cvtpi2pd 0xbabecafe,%xmm5
-
-// CHECK: cvtpi2pd 305419896, %xmm5
- cvtpi2pd 0x12345678,%xmm5
-
-// CHECK: cvtpi2pd %mm3, %xmm5
- cvtpi2pd %mm3,%xmm5
-
-// CHECK: cvtsi2sd %ecx, %xmm5
- cvtsi2sd %ecx,%xmm5
-
-// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5
- cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtsi2sd 69, %xmm5
- cvtsi2sd 0x45,%xmm5
-
-// CHECK: cvtsi2sd 32493, %xmm5
- cvtsi2sd 0x7eed,%xmm5
-
-// CHECK: cvtsi2sd 3133065982, %xmm5
- cvtsi2sd 0xbabecafe,%xmm5
-
-// CHECK: cvtsi2sd 305419896, %xmm5
- cvtsi2sd 0x12345678,%xmm5
-
-// CHECK: divpd 3735928559(%ebx,%ecx,8), %xmm5
- divpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: divpd 69, %xmm5
- divpd 0x45,%xmm5
-
-// CHECK: divpd 32493, %xmm5
- divpd 0x7eed,%xmm5
-
-// CHECK: divpd 3133065982, %xmm5
- divpd 0xbabecafe,%xmm5
-
-// CHECK: divpd 305419896, %xmm5
- divpd 0x12345678,%xmm5
-
-// CHECK: divpd %xmm5, %xmm5
- divpd %xmm5,%xmm5
-
-// CHECK: divsd 3735928559(%ebx,%ecx,8), %xmm5
- divsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: divsd 69, %xmm5
- divsd 0x45,%xmm5
-
-// CHECK: divsd 32493, %xmm5
- divsd 0x7eed,%xmm5
-
-// CHECK: divsd 3133065982, %xmm5
- divsd 0xbabecafe,%xmm5
-
-// CHECK: divsd 305419896, %xmm5
- divsd 0x12345678,%xmm5
-
-// CHECK: divsd %xmm5, %xmm5
- divsd %xmm5,%xmm5
-
-// CHECK: maxpd 3735928559(%ebx,%ecx,8), %xmm5
- maxpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: maxpd 69, %xmm5
- maxpd 0x45,%xmm5
-
-// CHECK: maxpd 32493, %xmm5
- maxpd 0x7eed,%xmm5
-
-// CHECK: maxpd 3133065982, %xmm5
- maxpd 0xbabecafe,%xmm5
-
-// CHECK: maxpd 305419896, %xmm5
- maxpd 0x12345678,%xmm5
-
-// CHECK: maxpd %xmm5, %xmm5
- maxpd %xmm5,%xmm5
-
-// CHECK: maxsd 3735928559(%ebx,%ecx,8), %xmm5
- maxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: maxsd 69, %xmm5
- maxsd 0x45,%xmm5
-
-// CHECK: maxsd 32493, %xmm5
- maxsd 0x7eed,%xmm5
-
-// CHECK: maxsd 3133065982, %xmm5
- maxsd 0xbabecafe,%xmm5
-
-// CHECK: maxsd 305419896, %xmm5
- maxsd 0x12345678,%xmm5
-
-// CHECK: maxsd %xmm5, %xmm5
- maxsd %xmm5,%xmm5
-
-// CHECK: minpd 3735928559(%ebx,%ecx,8), %xmm5
- minpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: minpd 69, %xmm5
- minpd 0x45,%xmm5
-
-// CHECK: minpd 32493, %xmm5
- minpd 0x7eed,%xmm5
-
-// CHECK: minpd 3133065982, %xmm5
- minpd 0xbabecafe,%xmm5
-
-// CHECK: minpd 305419896, %xmm5
- minpd 0x12345678,%xmm5
-
-// CHECK: minpd %xmm5, %xmm5
- minpd %xmm5,%xmm5
-
-// CHECK: minsd 3735928559(%ebx,%ecx,8), %xmm5
- minsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: minsd 69, %xmm5
- minsd 0x45,%xmm5
-
-// CHECK: minsd 32493, %xmm5
- minsd 0x7eed,%xmm5
-
-// CHECK: minsd 3133065982, %xmm5
- minsd 0xbabecafe,%xmm5
-
-// CHECK: minsd 305419896, %xmm5
- minsd 0x12345678,%xmm5
-
-// CHECK: minsd %xmm5, %xmm5
- minsd %xmm5,%xmm5
-
-// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5
- movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movapd 69, %xmm5
- movapd 0x45,%xmm5
-
-// CHECK: movapd 32493, %xmm5
- movapd 0x7eed,%xmm5
-
-// CHECK: movapd 3133065982, %xmm5
- movapd 0xbabecafe,%xmm5
-
-// CHECK: movapd 305419896, %xmm5
- movapd 0x12345678,%xmm5
-
-// CHECK: movapd %xmm5, %xmm5
- movapd %xmm5,%xmm5
-
-// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8)
- movapd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movapd %xmm5, 69
- movapd %xmm5,0x45
-
-// CHECK: movapd %xmm5, 32493
- movapd %xmm5,0x7eed
-
-// CHECK: movapd %xmm5, 3133065982
- movapd %xmm5,0xbabecafe
-
-// CHECK: movapd %xmm5, 305419896
- movapd %xmm5,0x12345678
-
-// CHECK: movapd %xmm5, %xmm5
- movapd %xmm5,%xmm5
-
-// CHECK: movhpd 3735928559(%ebx,%ecx,8), %xmm5
- movhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movhpd 69, %xmm5
- movhpd 0x45,%xmm5
-
-// CHECK: movhpd 32493, %xmm5
- movhpd 0x7eed,%xmm5
-
-// CHECK: movhpd 3133065982, %xmm5
- movhpd 0xbabecafe,%xmm5
-
-// CHECK: movhpd 305419896, %xmm5
- movhpd 0x12345678,%xmm5
-
-// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8)
- movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movhpd %xmm5, 69
- movhpd %xmm5,0x45
-
-// CHECK: movhpd %xmm5, 32493
- movhpd %xmm5,0x7eed
-
-// CHECK: movhpd %xmm5, 3133065982
- movhpd %xmm5,0xbabecafe
-
-// CHECK: movhpd %xmm5, 305419896
- movhpd %xmm5,0x12345678
-
-// CHECK: movlpd 3735928559(%ebx,%ecx,8), %xmm5
- movlpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movlpd 69, %xmm5
- movlpd 0x45,%xmm5
-
-// CHECK: movlpd 32493, %xmm5
- movlpd 0x7eed,%xmm5
-
-// CHECK: movlpd 3133065982, %xmm5
- movlpd 0xbabecafe,%xmm5
-
-// CHECK: movlpd 305419896, %xmm5
- movlpd 0x12345678,%xmm5
-
-// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8)
- movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movlpd %xmm5, 69
- movlpd %xmm5,0x45
-
-// CHECK: movlpd %xmm5, 32493
- movlpd %xmm5,0x7eed
-
-// CHECK: movlpd %xmm5, 3133065982
- movlpd %xmm5,0xbabecafe
-
-// CHECK: movlpd %xmm5, 305419896
- movlpd %xmm5,0x12345678
-
-// CHECK: movmskpd %xmm5, %ecx
- movmskpd %xmm5,%ecx
-
-// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8)
- movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movntpd %xmm5, 69
- movntpd %xmm5,0x45
-
-// CHECK: movntpd %xmm5, 32493
- movntpd %xmm5,0x7eed
-
-// CHECK: movntpd %xmm5, 3133065982
- movntpd %xmm5,0xbabecafe
-
-// CHECK: movntpd %xmm5, 305419896
- movntpd %xmm5,0x12345678
-
-// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5
- movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movsd 69, %xmm5
- movsd 0x45,%xmm5
-
-// CHECK: movsd 32493, %xmm5
- movsd 0x7eed,%xmm5
-
-// CHECK: movsd 3133065982, %xmm5
- movsd 0xbabecafe,%xmm5
-
-// CHECK: movsd 305419896, %xmm5
- movsd 0x12345678,%xmm5
-
-// CHECK: movsd %xmm5, %xmm5
- movsd %xmm5,%xmm5
-
-// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8)
- movsd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movsd %xmm5, 69
- movsd %xmm5,0x45
-
-// CHECK: movsd %xmm5, 32493
- movsd %xmm5,0x7eed
-
-// CHECK: movsd %xmm5, 3133065982
- movsd %xmm5,0xbabecafe
-
-// CHECK: movsd %xmm5, 305419896
- movsd %xmm5,0x12345678
-
-// CHECK: movsd %xmm5, %xmm5
- movsd %xmm5,%xmm5
-
-// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5
- movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movupd 69, %xmm5
- movupd 0x45,%xmm5
-
-// CHECK: movupd 32493, %xmm5
- movupd 0x7eed,%xmm5
-
-// CHECK: movupd 3133065982, %xmm5
- movupd 0xbabecafe,%xmm5
-
-// CHECK: movupd 305419896, %xmm5
- movupd 0x12345678,%xmm5
-
-// CHECK: movupd %xmm5, %xmm5
- movupd %xmm5,%xmm5
-
-// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8)
- movupd %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movupd %xmm5, 69
- movupd %xmm5,0x45
-
-// CHECK: movupd %xmm5, 32493
- movupd %xmm5,0x7eed
-
-// CHECK: movupd %xmm5, 3133065982
- movupd %xmm5,0xbabecafe
-
-// CHECK: movupd %xmm5, 305419896
- movupd %xmm5,0x12345678
-
-// CHECK: movupd %xmm5, %xmm5
- movupd %xmm5,%xmm5
-
-// CHECK: mulpd 3735928559(%ebx,%ecx,8), %xmm5
- mulpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: mulpd 69, %xmm5
- mulpd 0x45,%xmm5
-
-// CHECK: mulpd 32493, %xmm5
- mulpd 0x7eed,%xmm5
-
-// CHECK: mulpd 3133065982, %xmm5
- mulpd 0xbabecafe,%xmm5
-
-// CHECK: mulpd 305419896, %xmm5
- mulpd 0x12345678,%xmm5
-
-// CHECK: mulpd %xmm5, %xmm5
- mulpd %xmm5,%xmm5
-
-// CHECK: mulsd 3735928559(%ebx,%ecx,8), %xmm5
- mulsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: mulsd 69, %xmm5
- mulsd 0x45,%xmm5
-
-// CHECK: mulsd 32493, %xmm5
- mulsd 0x7eed,%xmm5
-
-// CHECK: mulsd 3133065982, %xmm5
- mulsd 0xbabecafe,%xmm5
-
-// CHECK: mulsd 305419896, %xmm5
- mulsd 0x12345678,%xmm5
-
-// CHECK: mulsd %xmm5, %xmm5
- mulsd %xmm5,%xmm5
-
-// CHECK: orpd 3735928559(%ebx,%ecx,8), %xmm5
- orpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: orpd 69, %xmm5
- orpd 0x45,%xmm5
-
-// CHECK: orpd 32493, %xmm5
- orpd 0x7eed,%xmm5
-
-// CHECK: orpd 3133065982, %xmm5
- orpd 0xbabecafe,%xmm5
-
-// CHECK: orpd 305419896, %xmm5
- orpd 0x12345678,%xmm5
-
-// CHECK: orpd %xmm5, %xmm5
- orpd %xmm5,%xmm5
-
-// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5
- sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtpd 69, %xmm5
- sqrtpd 0x45,%xmm5
-
-// CHECK: sqrtpd 32493, %xmm5
- sqrtpd 0x7eed,%xmm5
-
-// CHECK: sqrtpd 3133065982, %xmm5
- sqrtpd 0xbabecafe,%xmm5
-
-// CHECK: sqrtpd 305419896, %xmm5
- sqrtpd 0x12345678,%xmm5
-
-// CHECK: sqrtpd %xmm5, %xmm5
- sqrtpd %xmm5,%xmm5
-
-// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5
- sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: sqrtsd 69, %xmm5
- sqrtsd 0x45,%xmm5
-
-// CHECK: sqrtsd 32493, %xmm5
- sqrtsd 0x7eed,%xmm5
-
-// CHECK: sqrtsd 3133065982, %xmm5
- sqrtsd 0xbabecafe,%xmm5
-
-// CHECK: sqrtsd 305419896, %xmm5
- sqrtsd 0x12345678,%xmm5
-
-// CHECK: sqrtsd %xmm5, %xmm5
- sqrtsd %xmm5,%xmm5
-
-// CHECK: subpd 3735928559(%ebx,%ecx,8), %xmm5
- subpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: subpd 69, %xmm5
- subpd 0x45,%xmm5
-
-// CHECK: subpd 32493, %xmm5
- subpd 0x7eed,%xmm5
-
-// CHECK: subpd 3133065982, %xmm5
- subpd 0xbabecafe,%xmm5
-
-// CHECK: subpd 305419896, %xmm5
- subpd 0x12345678,%xmm5
-
-// CHECK: subpd %xmm5, %xmm5
- subpd %xmm5,%xmm5
-
-// CHECK: subsd 3735928559(%ebx,%ecx,8), %xmm5
- subsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: subsd 69, %xmm5
- subsd 0x45,%xmm5
-
-// CHECK: subsd 32493, %xmm5
- subsd 0x7eed,%xmm5
-
-// CHECK: subsd 3133065982, %xmm5
- subsd 0xbabecafe,%xmm5
-
-// CHECK: subsd 305419896, %xmm5
- subsd 0x12345678,%xmm5
-
-// CHECK: subsd %xmm5, %xmm5
- subsd %xmm5,%xmm5
-
-// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5
- ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: ucomisd 69, %xmm5
- ucomisd 0x45,%xmm5
-
-// CHECK: ucomisd 32493, %xmm5
- ucomisd 0x7eed,%xmm5
-
-// CHECK: ucomisd 3133065982, %xmm5
- ucomisd 0xbabecafe,%xmm5
-
-// CHECK: ucomisd 305419896, %xmm5
- ucomisd 0x12345678,%xmm5
-
-// CHECK: ucomisd %xmm5, %xmm5
- ucomisd %xmm5,%xmm5
-
-// CHECK: unpckhpd 3735928559(%ebx,%ecx,8), %xmm5
- unpckhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: unpckhpd 69, %xmm5
- unpckhpd 0x45,%xmm5
-
-// CHECK: unpckhpd 32493, %xmm5
- unpckhpd 0x7eed,%xmm5
-
-// CHECK: unpckhpd 3133065982, %xmm5
- unpckhpd 0xbabecafe,%xmm5
-
-// CHECK: unpckhpd 305419896, %xmm5
- unpckhpd 0x12345678,%xmm5
-
-// CHECK: unpckhpd %xmm5, %xmm5
- unpckhpd %xmm5,%xmm5
-
-// CHECK: unpcklpd 3735928559(%ebx,%ecx,8), %xmm5
- unpcklpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: unpcklpd 69, %xmm5
- unpcklpd 0x45,%xmm5
-
-// CHECK: unpcklpd 32493, %xmm5
- unpcklpd 0x7eed,%xmm5
-
-// CHECK: unpcklpd 3133065982, %xmm5
- unpcklpd 0xbabecafe,%xmm5
-
-// CHECK: unpcklpd 305419896, %xmm5
- unpcklpd 0x12345678,%xmm5
-
-// CHECK: unpcklpd %xmm5, %xmm5
- unpcklpd %xmm5,%xmm5
-
-// CHECK: xorpd 3735928559(%ebx,%ecx,8), %xmm5
- xorpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: xorpd 69, %xmm5
- xorpd 0x45,%xmm5
-
-// CHECK: xorpd 32493, %xmm5
- xorpd 0x7eed,%xmm5
-
-// CHECK: xorpd 3133065982, %xmm5
- xorpd 0xbabecafe,%xmm5
-
-// CHECK: xorpd 305419896, %xmm5
- xorpd 0x12345678,%xmm5
-
-// CHECK: xorpd %xmm5, %xmm5
- xorpd %xmm5,%xmm5
-
-// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5
- cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtdq2pd 69, %xmm5
- cvtdq2pd 0x45,%xmm5
-
-// CHECK: cvtdq2pd 32493, %xmm5
- cvtdq2pd 0x7eed,%xmm5
-
-// CHECK: cvtdq2pd 3133065982, %xmm5
- cvtdq2pd 0xbabecafe,%xmm5
-
-// CHECK: cvtdq2pd 305419896, %xmm5
- cvtdq2pd 0x12345678,%xmm5
-
-// CHECK: cvtdq2pd %xmm5, %xmm5
- cvtdq2pd %xmm5,%xmm5
-
-// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5
- cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpd2dq 69, %xmm5
- cvtpd2dq 0x45,%xmm5
-
-// CHECK: cvtpd2dq 32493, %xmm5
- cvtpd2dq 0x7eed,%xmm5
-
-// CHECK: cvtpd2dq 3133065982, %xmm5
- cvtpd2dq 0xbabecafe,%xmm5
-
-// CHECK: cvtpd2dq 305419896, %xmm5
- cvtpd2dq 0x12345678,%xmm5
-
-// CHECK: cvtpd2dq %xmm5, %xmm5
- cvtpd2dq %xmm5,%xmm5
-
-// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5
- cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtdq2ps 69, %xmm5
- cvtdq2ps 0x45,%xmm5
-
-// CHECK: cvtdq2ps 32493, %xmm5
- cvtdq2ps 0x7eed,%xmm5
-
-// CHECK: cvtdq2ps 3133065982, %xmm5
- cvtdq2ps 0xbabecafe,%xmm5
-
-// CHECK: cvtdq2ps 305419896, %xmm5
- cvtdq2ps 0x12345678,%xmm5
-
-// CHECK: cvtdq2ps %xmm5, %xmm5
- cvtdq2ps %xmm5,%xmm5
-
-// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3
- cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvtpd2pi 69, %mm3
- cvtpd2pi 0x45,%mm3
-
-// CHECK: cvtpd2pi 32493, %mm3
- cvtpd2pi 0x7eed,%mm3
-
-// CHECK: cvtpd2pi 3133065982, %mm3
- cvtpd2pi 0xbabecafe,%mm3
-
-// CHECK: cvtpd2pi 305419896, %mm3
- cvtpd2pi 0x12345678,%mm3
-
-// CHECK: cvtpd2pi %xmm5, %mm3
- cvtpd2pi %xmm5,%mm3
-
-// CHECK: cvtpd2ps 3735928559(%ebx,%ecx,8), %xmm5
- cvtpd2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtpd2ps 69, %xmm5
- cvtpd2ps 0x45,%xmm5
-
-// CHECK: cvtpd2ps 32493, %xmm5
- cvtpd2ps 0x7eed,%xmm5
-
-// CHECK: cvtpd2ps 3133065982, %xmm5
- cvtpd2ps 0xbabecafe,%xmm5
-
-// CHECK: cvtpd2ps 305419896, %xmm5
- cvtpd2ps 0x12345678,%xmm5
-
-// CHECK: cvtpd2ps %xmm5, %xmm5
- cvtpd2ps %xmm5,%xmm5
-
-// CHECK: cvtps2pd 3735928559(%ebx,%ecx,8), %xmm5
- cvtps2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtps2pd 69, %xmm5
- cvtps2pd 0x45,%xmm5
-
-// CHECK: cvtps2pd 32493, %xmm5
- cvtps2pd 0x7eed,%xmm5
-
-// CHECK: cvtps2pd 3133065982, %xmm5
- cvtps2pd 0xbabecafe,%xmm5
-
-// CHECK: cvtps2pd 305419896, %xmm5
- cvtps2pd 0x12345678,%xmm5
-
-// CHECK: cvtps2pd %xmm5, %xmm5
- cvtps2pd %xmm5,%xmm5
-
-// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5
- cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtps2dq 69, %xmm5
- cvtps2dq 0x45,%xmm5
-
-// CHECK: cvtps2dq 32493, %xmm5
- cvtps2dq 0x7eed,%xmm5
-
-// CHECK: cvtps2dq 3133065982, %xmm5
- cvtps2dq 0xbabecafe,%xmm5
-
-// CHECK: cvtps2dq 305419896, %xmm5
- cvtps2dq 0x12345678,%xmm5
-
-// CHECK: cvtps2dq %xmm5, %xmm5
- cvtps2dq %xmm5,%xmm5
-
-// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5
- cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtsd2ss 69, %xmm5
- cvtsd2ss 0x45,%xmm5
-
-// CHECK: cvtsd2ss 32493, %xmm5
- cvtsd2ss 0x7eed,%xmm5
-
-// CHECK: cvtsd2ss 3133065982, %xmm5
- cvtsd2ss 0xbabecafe,%xmm5
-
-// CHECK: cvtsd2ss 305419896, %xmm5
- cvtsd2ss 0x12345678,%xmm5
-
-// CHECK: cvtsd2ss %xmm5, %xmm5
- cvtsd2ss %xmm5,%xmm5
-
-// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5
- cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvtss2sd 69, %xmm5
- cvtss2sd 0x45,%xmm5
-
-// CHECK: cvtss2sd 32493, %xmm5
- cvtss2sd 0x7eed,%xmm5
-
-// CHECK: cvtss2sd 3133065982, %xmm5
- cvtss2sd 0xbabecafe,%xmm5
-
-// CHECK: cvtss2sd 305419896, %xmm5
- cvtss2sd 0x12345678,%xmm5
-
-// CHECK: cvtss2sd %xmm5, %xmm5
- cvtss2sd %xmm5,%xmm5
-
-// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3
- cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: cvttpd2pi 69, %mm3
- cvttpd2pi 0x45,%mm3
-
-// CHECK: cvttpd2pi 32493, %mm3
- cvttpd2pi 0x7eed,%mm3
-
-// CHECK: cvttpd2pi 3133065982, %mm3
- cvttpd2pi 0xbabecafe,%mm3
-
-// CHECK: cvttpd2pi 305419896, %mm3
- cvttpd2pi 0x12345678,%mm3
-
-// CHECK: cvttpd2pi %xmm5, %mm3
- cvttpd2pi %xmm5,%mm3
-
-// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx
- cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: cvttsd2si 69, %ecx
- cvttsd2si 0x45,%ecx
-
-// CHECK: cvttsd2si 32493, %ecx
- cvttsd2si 0x7eed,%ecx
-
-// CHECK: cvttsd2si 3133065982, %ecx
- cvttsd2si 0xbabecafe,%ecx
-
-// CHECK: cvttsd2si 305419896, %ecx
- cvttsd2si 0x12345678,%ecx
-
-// CHECK: cvttsd2si %xmm5, %ecx
- cvttsd2si %xmm5,%ecx
-
-// CHECK: cvttps2dq 3735928559(%ebx,%ecx,8), %xmm5
- cvttps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: cvttps2dq 69, %xmm5
- cvttps2dq 0x45,%xmm5
-
-// CHECK: cvttps2dq 32493, %xmm5
- cvttps2dq 0x7eed,%xmm5
-
-// CHECK: cvttps2dq 3133065982, %xmm5
- cvttps2dq 0xbabecafe,%xmm5
-
-// CHECK: cvttps2dq 305419896, %xmm5
- cvttps2dq 0x12345678,%xmm5
-
-// CHECK: cvttps2dq %xmm5, %xmm5
- cvttps2dq %xmm5,%xmm5
-
-// CHECK: maskmovdqu %xmm5, %xmm5
- maskmovdqu %xmm5,%xmm5
-
-// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5
- movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movdqa 69, %xmm5
- movdqa 0x45,%xmm5
-
-// CHECK: movdqa 32493, %xmm5
- movdqa 0x7eed,%xmm5
-
-// CHECK: movdqa 3133065982, %xmm5
- movdqa 0xbabecafe,%xmm5
-
-// CHECK: movdqa 305419896, %xmm5
- movdqa 0x12345678,%xmm5
-
-// CHECK: movdqa %xmm5, %xmm5
- movdqa %xmm5,%xmm5
-
-// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8)
- movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movdqa %xmm5, 69
- movdqa %xmm5,0x45
-
-// CHECK: movdqa %xmm5, 32493
- movdqa %xmm5,0x7eed
-
-// CHECK: movdqa %xmm5, 3133065982
- movdqa %xmm5,0xbabecafe
-
-// CHECK: movdqa %xmm5, 305419896
- movdqa %xmm5,0x12345678
-
-// CHECK: movdqa %xmm5, %xmm5
- movdqa %xmm5,%xmm5
-
-// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5
- movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movdqu 69, %xmm5
- movdqu 0x45,%xmm5
-
-// CHECK: movdqu 32493, %xmm5
- movdqu 0x7eed,%xmm5
-
-// CHECK: movdqu 3133065982, %xmm5
- movdqu 0xbabecafe,%xmm5
-
-// CHECK: movdqu 305419896, %xmm5
- movdqu 0x12345678,%xmm5
-
-// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8)
- movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: movdqu %xmm5, 69
- movdqu %xmm5,0x45
-
-// CHECK: movdqu %xmm5, 32493
- movdqu %xmm5,0x7eed
-
-// CHECK: movdqu %xmm5, 3133065982
- movdqu %xmm5,0xbabecafe
-
-// CHECK: movdqu %xmm5, 305419896
- movdqu %xmm5,0x12345678
-
-// CHECK: movdq2q %xmm5, %mm3
- movdq2q %xmm5,%mm3
-
-// CHECK: movq2dq %mm3, %xmm5
- movq2dq %mm3,%xmm5
-
-// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %mm3
- pmuludq 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmuludq 69, %mm3
- pmuludq 0x45,%mm3
-
-// CHECK: pmuludq 32493, %mm3
- pmuludq 0x7eed,%mm3
-
-// CHECK: pmuludq 3133065982, %mm3
- pmuludq 0xbabecafe,%mm3
-
-// CHECK: pmuludq 305419896, %mm3
- pmuludq 0x12345678,%mm3
-
-// CHECK: pmuludq %mm3, %mm3
- pmuludq %mm3,%mm3
-
-// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %xmm5
- pmuludq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmuludq 69, %xmm5
- pmuludq 0x45,%xmm5
-
-// CHECK: pmuludq 32493, %xmm5
- pmuludq 0x7eed,%xmm5
-
-// CHECK: pmuludq 3133065982, %xmm5
- pmuludq 0xbabecafe,%xmm5
-
-// CHECK: pmuludq 305419896, %xmm5
- pmuludq 0x12345678,%xmm5
-
-// CHECK: pmuludq %xmm5, %xmm5
- pmuludq %xmm5,%xmm5
-
-// CHECK: pslldq $127, %xmm5
- pslldq $0x7f,%xmm5
-
-// CHECK: psrldq $127, %xmm5
- psrldq $0x7f,%xmm5
-
-// CHECK: punpckhqdq 3735928559(%ebx,%ecx,8), %xmm5
- punpckhqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpckhqdq 69, %xmm5
- punpckhqdq 0x45,%xmm5
-
-// CHECK: punpckhqdq 32493, %xmm5
- punpckhqdq 0x7eed,%xmm5
-
-// CHECK: punpckhqdq 3133065982, %xmm5
- punpckhqdq 0xbabecafe,%xmm5
-
-// CHECK: punpckhqdq 305419896, %xmm5
- punpckhqdq 0x12345678,%xmm5
-
-// CHECK: punpckhqdq %xmm5, %xmm5
- punpckhqdq %xmm5,%xmm5
-
-// CHECK: punpcklqdq 3735928559(%ebx,%ecx,8), %xmm5
- punpcklqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: punpcklqdq 69, %xmm5
- punpcklqdq 0x45,%xmm5
-
-// CHECK: punpcklqdq 32493, %xmm5
- punpcklqdq 0x7eed,%xmm5
-
-// CHECK: punpcklqdq 3133065982, %xmm5
- punpcklqdq 0xbabecafe,%xmm5
-
-// CHECK: punpcklqdq 305419896, %xmm5
- punpcklqdq 0x12345678,%xmm5
-
-// CHECK: punpcklqdq %xmm5, %xmm5
- punpcklqdq %xmm5,%xmm5
-
-// CHECK: addsubpd 3735928559(%ebx,%ecx,8), %xmm5
- addsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: addsubpd 69, %xmm5
- addsubpd 0x45,%xmm5
-
-// CHECK: addsubpd 32493, %xmm5
- addsubpd 0x7eed,%xmm5
-
-// CHECK: addsubpd 3133065982, %xmm5
- addsubpd 0xbabecafe,%xmm5
-
-// CHECK: addsubpd 305419896, %xmm5
- addsubpd 0x12345678,%xmm5
-
-// CHECK: addsubpd %xmm5, %xmm5
- addsubpd %xmm5,%xmm5
-
-// CHECK: addsubps 3735928559(%ebx,%ecx,8), %xmm5
- addsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: addsubps 69, %xmm5
- addsubps 0x45,%xmm5
-
-// CHECK: addsubps 32493, %xmm5
- addsubps 0x7eed,%xmm5
-
-// CHECK: addsubps 3133065982, %xmm5
- addsubps 0xbabecafe,%xmm5
-
-// CHECK: addsubps 305419896, %xmm5
- addsubps 0x12345678,%xmm5
-
-// CHECK: addsubps %xmm5, %xmm5
- addsubps %xmm5,%xmm5
-
-// CHECK: fisttpl 3735928559(%ebx,%ecx,8)
- fisttpl 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: fisttpl 3133065982
- fisttpl 0xbabecafe
-
-// CHECK: fisttpl 305419896
- fisttpl 0x12345678
-
-// CHECK: haddpd 3735928559(%ebx,%ecx,8), %xmm5
- haddpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: haddpd 69, %xmm5
- haddpd 0x45,%xmm5
-
-// CHECK: haddpd 32493, %xmm5
- haddpd 0x7eed,%xmm5
-
-// CHECK: haddpd 3133065982, %xmm5
- haddpd 0xbabecafe,%xmm5
-
-// CHECK: haddpd 305419896, %xmm5
- haddpd 0x12345678,%xmm5
-
-// CHECK: haddpd %xmm5, %xmm5
- haddpd %xmm5,%xmm5
-
-// CHECK: haddps 3735928559(%ebx,%ecx,8), %xmm5
- haddps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: haddps 69, %xmm5
- haddps 0x45,%xmm5
-
-// CHECK: haddps 32493, %xmm5
- haddps 0x7eed,%xmm5
-
-// CHECK: haddps 3133065982, %xmm5
- haddps 0xbabecafe,%xmm5
-
-// CHECK: haddps 305419896, %xmm5
- haddps 0x12345678,%xmm5
-
-// CHECK: haddps %xmm5, %xmm5
- haddps %xmm5,%xmm5
-
-// CHECK: hsubpd 3735928559(%ebx,%ecx,8), %xmm5
- hsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: hsubpd 69, %xmm5
- hsubpd 0x45,%xmm5
-
-// CHECK: hsubpd 32493, %xmm5
- hsubpd 0x7eed,%xmm5
-
-// CHECK: hsubpd 3133065982, %xmm5
- hsubpd 0xbabecafe,%xmm5
-
-// CHECK: hsubpd 305419896, %xmm5
- hsubpd 0x12345678,%xmm5
-
-// CHECK: hsubpd %xmm5, %xmm5
- hsubpd %xmm5,%xmm5
-
-// CHECK: hsubps 3735928559(%ebx,%ecx,8), %xmm5
- hsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: hsubps 69, %xmm5
- hsubps 0x45,%xmm5
-
-// CHECK: hsubps 32493, %xmm5
- hsubps 0x7eed,%xmm5
-
-// CHECK: hsubps 3133065982, %xmm5
- hsubps 0xbabecafe,%xmm5
-
-// CHECK: hsubps 305419896, %xmm5
- hsubps 0x12345678,%xmm5
-
-// CHECK: hsubps %xmm5, %xmm5
- hsubps %xmm5,%xmm5
-
-// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5
- lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: lddqu 69, %xmm5
- lddqu 0x45,%xmm5
-
-// CHECK: lddqu 32493, %xmm5
- lddqu 0x7eed,%xmm5
-
-// CHECK: lddqu 3133065982, %xmm5
- lddqu 0xbabecafe,%xmm5
-
-// CHECK: lddqu 305419896, %xmm5
- lddqu 0x12345678,%xmm5
-
-// CHECK: monitor
- monitor
-
-// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5
- movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movddup 69, %xmm5
- movddup 0x45,%xmm5
-
-// CHECK: movddup 32493, %xmm5
- movddup 0x7eed,%xmm5
-
-// CHECK: movddup 3133065982, %xmm5
- movddup 0xbabecafe,%xmm5
-
-// CHECK: movddup 305419896, %xmm5
- movddup 0x12345678,%xmm5
-
-// CHECK: movddup %xmm5, %xmm5
- movddup %xmm5,%xmm5
-
-// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5
- movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movshdup 69, %xmm5
- movshdup 0x45,%xmm5
-
-// CHECK: movshdup 32493, %xmm5
- movshdup 0x7eed,%xmm5
-
-// CHECK: movshdup 3133065982, %xmm5
- movshdup 0xbabecafe,%xmm5
-
-// CHECK: movshdup 305419896, %xmm5
- movshdup 0x12345678,%xmm5
-
-// CHECK: movshdup %xmm5, %xmm5
- movshdup %xmm5,%xmm5
-
-// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5
- movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movsldup 69, %xmm5
- movsldup 0x45,%xmm5
-
-// CHECK: movsldup 32493, %xmm5
- movsldup 0x7eed,%xmm5
-
-// CHECK: movsldup 3133065982, %xmm5
- movsldup 0xbabecafe,%xmm5
-
-// CHECK: movsldup 305419896, %xmm5
- movsldup 0x12345678,%xmm5
-
-// CHECK: movsldup %xmm5, %xmm5
- movsldup %xmm5,%xmm5
-
-// CHECK: mwait
- mwait
-
-// CHECK: vmcall
- vmcall
-
-// CHECK: vmclear 3735928559(%ebx,%ecx,8)
- vmclear 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: vmclear 32493
- vmclear 0x7eed
-
-// CHECK: vmclear 3133065982
- vmclear 0xbabecafe
-
-// CHECK: vmclear 305419896
- vmclear 0x12345678
-
-// CHECK: vmlaunch
- vmlaunch
-
-// CHECK: vmresume
- vmresume
-
-// CHECK: vmptrld 3735928559(%ebx,%ecx,8)
- vmptrld 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: vmptrld 32493
- vmptrld 0x7eed
-
-// CHECK: vmptrld 3133065982
- vmptrld 0xbabecafe
-
-// CHECK: vmptrld 305419896
- vmptrld 0x12345678
-
-// CHECK: vmptrst 3735928559(%ebx,%ecx,8)
- vmptrst 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: vmptrst 32493
- vmptrst 0x7eed
-
-// CHECK: vmptrst 3133065982
- vmptrst 0xbabecafe
-
-// CHECK: vmptrst 305419896
- vmptrst 0x12345678
-
-// CHECK: vmxoff
- vmxoff
-
-// CHECK: vmxon 3735928559(%ebx,%ecx,8)
- vmxon 0xdeadbeef(%ebx,%ecx,8)
-
-// CHECK: vmxon 32493
- vmxon 0x7eed
-
-// CHECK: vmxon 3133065982
- vmxon 0xbabecafe
-
-// CHECK: vmxon 305419896
- vmxon 0x12345678
-
-// CHECK: phaddw 3735928559(%ebx,%ecx,8), %mm3
- phaddw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: phaddw 69, %mm3
- phaddw 0x45,%mm3
-
-// CHECK: phaddw 32493, %mm3
- phaddw 0x7eed,%mm3
-
-// CHECK: phaddw 3133065982, %mm3
- phaddw 0xbabecafe,%mm3
-
-// CHECK: phaddw 305419896, %mm3
- phaddw 0x12345678,%mm3
-
-// CHECK: phaddw %mm3, %mm3
- phaddw %mm3,%mm3
-
-// CHECK: phaddw 3735928559(%ebx,%ecx,8), %xmm5
- phaddw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phaddw 69, %xmm5
- phaddw 0x45,%xmm5
-
-// CHECK: phaddw 32493, %xmm5
- phaddw 0x7eed,%xmm5
-
-// CHECK: phaddw 3133065982, %xmm5
- phaddw 0xbabecafe,%xmm5
-
-// CHECK: phaddw 305419896, %xmm5
- phaddw 0x12345678,%xmm5
-
-// CHECK: phaddw %xmm5, %xmm5
- phaddw %xmm5,%xmm5
-
-// CHECK: phaddd 3735928559(%ebx,%ecx,8), %mm3
- phaddd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: phaddd 69, %mm3
- phaddd 0x45,%mm3
-
-// CHECK: phaddd 32493, %mm3
- phaddd 0x7eed,%mm3
-
-// CHECK: phaddd 3133065982, %mm3
- phaddd 0xbabecafe,%mm3
-
-// CHECK: phaddd 305419896, %mm3
- phaddd 0x12345678,%mm3
-
-// CHECK: phaddd %mm3, %mm3
- phaddd %mm3,%mm3
-
-// CHECK: phaddd 3735928559(%ebx,%ecx,8), %xmm5
- phaddd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phaddd 69, %xmm5
- phaddd 0x45,%xmm5
-
-// CHECK: phaddd 32493, %xmm5
- phaddd 0x7eed,%xmm5
-
-// CHECK: phaddd 3133065982, %xmm5
- phaddd 0xbabecafe,%xmm5
-
-// CHECK: phaddd 305419896, %xmm5
- phaddd 0x12345678,%xmm5
-
-// CHECK: phaddd %xmm5, %xmm5
- phaddd %xmm5,%xmm5
-
-// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %mm3
- phaddsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: phaddsw 69, %mm3
- phaddsw 0x45,%mm3
-
-// CHECK: phaddsw 32493, %mm3
- phaddsw 0x7eed,%mm3
-
-// CHECK: phaddsw 3133065982, %mm3
- phaddsw 0xbabecafe,%mm3
-
-// CHECK: phaddsw 305419896, %mm3
- phaddsw 0x12345678,%mm3
-
-// CHECK: phaddsw %mm3, %mm3
- phaddsw %mm3,%mm3
-
-// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %xmm5
- phaddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phaddsw 69, %xmm5
- phaddsw 0x45,%xmm5
-
-// CHECK: phaddsw 32493, %xmm5
- phaddsw 0x7eed,%xmm5
-
-// CHECK: phaddsw 3133065982, %xmm5
- phaddsw 0xbabecafe,%xmm5
-
-// CHECK: phaddsw 305419896, %xmm5
- phaddsw 0x12345678,%xmm5
-
-// CHECK: phaddsw %xmm5, %xmm5
- phaddsw %xmm5,%xmm5
-
-// CHECK: phsubw 3735928559(%ebx,%ecx,8), %mm3
- phsubw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: phsubw 69, %mm3
- phsubw 0x45,%mm3
-
-// CHECK: phsubw 32493, %mm3
- phsubw 0x7eed,%mm3
-
-// CHECK: phsubw 3133065982, %mm3
- phsubw 0xbabecafe,%mm3
-
-// CHECK: phsubw 305419896, %mm3
- phsubw 0x12345678,%mm3
-
-// CHECK: phsubw %mm3, %mm3
- phsubw %mm3,%mm3
-
-// CHECK: phsubw 3735928559(%ebx,%ecx,8), %xmm5
- phsubw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phsubw 69, %xmm5
- phsubw 0x45,%xmm5
-
-// CHECK: phsubw 32493, %xmm5
- phsubw 0x7eed,%xmm5
-
-// CHECK: phsubw 3133065982, %xmm5
- phsubw 0xbabecafe,%xmm5
-
-// CHECK: phsubw 305419896, %xmm5
- phsubw 0x12345678,%xmm5
-
-// CHECK: phsubw %xmm5, %xmm5
- phsubw %xmm5,%xmm5
-
-// CHECK: phsubd 3735928559(%ebx,%ecx,8), %mm3
- phsubd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: phsubd 69, %mm3
- phsubd 0x45,%mm3
-
-// CHECK: phsubd 32493, %mm3
- phsubd 0x7eed,%mm3
-
-// CHECK: phsubd 3133065982, %mm3
- phsubd 0xbabecafe,%mm3
-
-// CHECK: phsubd 305419896, %mm3
- phsubd 0x12345678,%mm3
-
-// CHECK: phsubd %mm3, %mm3
- phsubd %mm3,%mm3
-
-// CHECK: phsubd 3735928559(%ebx,%ecx,8), %xmm5
- phsubd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phsubd 69, %xmm5
- phsubd 0x45,%xmm5
-
-// CHECK: phsubd 32493, %xmm5
- phsubd 0x7eed,%xmm5
-
-// CHECK: phsubd 3133065982, %xmm5
- phsubd 0xbabecafe,%xmm5
-
-// CHECK: phsubd 305419896, %xmm5
- phsubd 0x12345678,%xmm5
-
-// CHECK: phsubd %xmm5, %xmm5
- phsubd %xmm5,%xmm5
-
-// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %mm3
- phsubsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: phsubsw 69, %mm3
- phsubsw 0x45,%mm3
-
-// CHECK: phsubsw 32493, %mm3
- phsubsw 0x7eed,%mm3
-
-// CHECK: phsubsw 3133065982, %mm3
- phsubsw 0xbabecafe,%mm3
-
-// CHECK: phsubsw 305419896, %mm3
- phsubsw 0x12345678,%mm3
-
-// CHECK: phsubsw %mm3, %mm3
- phsubsw %mm3,%mm3
-
-// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %xmm5
- phsubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phsubsw 69, %xmm5
- phsubsw 0x45,%xmm5
-
-// CHECK: phsubsw 32493, %xmm5
- phsubsw 0x7eed,%xmm5
-
-// CHECK: phsubsw 3133065982, %xmm5
- phsubsw 0xbabecafe,%xmm5
-
-// CHECK: phsubsw 305419896, %xmm5
- phsubsw 0x12345678,%xmm5
-
-// CHECK: phsubsw %xmm5, %xmm5
- phsubsw %xmm5,%xmm5
-
-// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %mm3
- pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmaddubsw 69, %mm3
- pmaddubsw 0x45,%mm3
-
-// CHECK: pmaddubsw 32493, %mm3
- pmaddubsw 0x7eed,%mm3
-
-// CHECK: pmaddubsw 3133065982, %mm3
- pmaddubsw 0xbabecafe,%mm3
-
-// CHECK: pmaddubsw 305419896, %mm3
- pmaddubsw 0x12345678,%mm3
-
-// CHECK: pmaddubsw %mm3, %mm3
- pmaddubsw %mm3,%mm3
-
-// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %xmm5
- pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaddubsw 69, %xmm5
- pmaddubsw 0x45,%xmm5
-
-// CHECK: pmaddubsw 32493, %xmm5
- pmaddubsw 0x7eed,%xmm5
-
-// CHECK: pmaddubsw 3133065982, %xmm5
- pmaddubsw 0xbabecafe,%xmm5
-
-// CHECK: pmaddubsw 305419896, %xmm5
- pmaddubsw 0x12345678,%xmm5
-
-// CHECK: pmaddubsw %xmm5, %xmm5
- pmaddubsw %xmm5,%xmm5
-
-// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %mm3
- pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pmulhrsw 69, %mm3
- pmulhrsw 0x45,%mm3
-
-// CHECK: pmulhrsw 32493, %mm3
- pmulhrsw 0x7eed,%mm3
-
-// CHECK: pmulhrsw 3133065982, %mm3
- pmulhrsw 0xbabecafe,%mm3
-
-// CHECK: pmulhrsw 305419896, %mm3
- pmulhrsw 0x12345678,%mm3
-
-// CHECK: pmulhrsw %mm3, %mm3
- pmulhrsw %mm3,%mm3
-
-// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %xmm5
- pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmulhrsw 69, %xmm5
- pmulhrsw 0x45,%xmm5
-
-// CHECK: pmulhrsw 32493, %xmm5
- pmulhrsw 0x7eed,%xmm5
-
-// CHECK: pmulhrsw 3133065982, %xmm5
- pmulhrsw 0xbabecafe,%xmm5
-
-// CHECK: pmulhrsw 305419896, %xmm5
- pmulhrsw 0x12345678,%xmm5
-
-// CHECK: pmulhrsw %xmm5, %xmm5
- pmulhrsw %xmm5,%xmm5
-
-// CHECK: pshufb 3735928559(%ebx,%ecx,8), %mm3
- pshufb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pshufb 69, %mm3
- pshufb 0x45,%mm3
-
-// CHECK: pshufb 32493, %mm3
- pshufb 0x7eed,%mm3
-
-// CHECK: pshufb 3133065982, %mm3
- pshufb 0xbabecafe,%mm3
-
-// CHECK: pshufb 305419896, %mm3
- pshufb 0x12345678,%mm3
-
-// CHECK: pshufb %mm3, %mm3
- pshufb %mm3,%mm3
-
-// CHECK: pshufb 3735928559(%ebx,%ecx,8), %xmm5
- pshufb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pshufb 69, %xmm5
- pshufb 0x45,%xmm5
-
-// CHECK: pshufb 32493, %xmm5
- pshufb 0x7eed,%xmm5
-
-// CHECK: pshufb 3133065982, %xmm5
- pshufb 0xbabecafe,%xmm5
-
-// CHECK: pshufb 305419896, %xmm5
- pshufb 0x12345678,%xmm5
-
-// CHECK: pshufb %xmm5, %xmm5
- pshufb %xmm5,%xmm5
-
-// CHECK: psignb 3735928559(%ebx,%ecx,8), %mm3
- psignb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psignb 69, %mm3
- psignb 0x45,%mm3
-
-// CHECK: psignb 32493, %mm3
- psignb 0x7eed,%mm3
-
-// CHECK: psignb 3133065982, %mm3
- psignb 0xbabecafe,%mm3
-
-// CHECK: psignb 305419896, %mm3
- psignb 0x12345678,%mm3
-
-// CHECK: psignb %mm3, %mm3
- psignb %mm3,%mm3
-
-// CHECK: psignb 3735928559(%ebx,%ecx,8), %xmm5
- psignb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psignb 69, %xmm5
- psignb 0x45,%xmm5
-
-// CHECK: psignb 32493, %xmm5
- psignb 0x7eed,%xmm5
-
-// CHECK: psignb 3133065982, %xmm5
- psignb 0xbabecafe,%xmm5
-
-// CHECK: psignb 305419896, %xmm5
- psignb 0x12345678,%xmm5
-
-// CHECK: psignb %xmm5, %xmm5
- psignb %xmm5,%xmm5
-
-// CHECK: psignw 3735928559(%ebx,%ecx,8), %mm3
- psignw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psignw 69, %mm3
- psignw 0x45,%mm3
-
-// CHECK: psignw 32493, %mm3
- psignw 0x7eed,%mm3
-
-// CHECK: psignw 3133065982, %mm3
- psignw 0xbabecafe,%mm3
-
-// CHECK: psignw 305419896, %mm3
- psignw 0x12345678,%mm3
-
-// CHECK: psignw %mm3, %mm3
- psignw %mm3,%mm3
-
-// CHECK: psignw 3735928559(%ebx,%ecx,8), %xmm5
- psignw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psignw 69, %xmm5
- psignw 0x45,%xmm5
-
-// CHECK: psignw 32493, %xmm5
- psignw 0x7eed,%xmm5
-
-// CHECK: psignw 3133065982, %xmm5
- psignw 0xbabecafe,%xmm5
-
-// CHECK: psignw 305419896, %xmm5
- psignw 0x12345678,%xmm5
-
-// CHECK: psignw %xmm5, %xmm5
- psignw %xmm5,%xmm5
-
-// CHECK: psignd 3735928559(%ebx,%ecx,8), %mm3
- psignd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: psignd 69, %mm3
- psignd 0x45,%mm3
-
-// CHECK: psignd 32493, %mm3
- psignd 0x7eed,%mm3
-
-// CHECK: psignd 3133065982, %mm3
- psignd 0xbabecafe,%mm3
-
-// CHECK: psignd 305419896, %mm3
- psignd 0x12345678,%mm3
-
-// CHECK: psignd %mm3, %mm3
- psignd %mm3,%mm3
-
-// CHECK: psignd 3735928559(%ebx,%ecx,8), %xmm5
- psignd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: psignd 69, %xmm5
- psignd 0x45,%xmm5
-
-// CHECK: psignd 32493, %xmm5
- psignd 0x7eed,%xmm5
-
-// CHECK: psignd 3133065982, %xmm5
- psignd 0xbabecafe,%xmm5
-
-// CHECK: psignd 305419896, %xmm5
- psignd 0x12345678,%xmm5
-
-// CHECK: psignd %xmm5, %xmm5
- psignd %xmm5,%xmm5
-
-// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3
- pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pabsb 69, %mm3
- pabsb 0x45,%mm3
-
-// CHECK: pabsb 32493, %mm3
- pabsb 0x7eed,%mm3
-
-// CHECK: pabsb 3133065982, %mm3
- pabsb 0xbabecafe,%mm3
-
-// CHECK: pabsb 305419896, %mm3
- pabsb 0x12345678,%mm3
-
-// CHECK: pabsb %mm3, %mm3
- pabsb %mm3,%mm3
-
-// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5
- pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pabsb 69, %xmm5
- pabsb 0x45,%xmm5
-
-// CHECK: pabsb 32493, %xmm5
- pabsb 0x7eed,%xmm5
-
-// CHECK: pabsb 3133065982, %xmm5
- pabsb 0xbabecafe,%xmm5
-
-// CHECK: pabsb 305419896, %xmm5
- pabsb 0x12345678,%xmm5
-
-// CHECK: pabsb %xmm5, %xmm5
- pabsb %xmm5,%xmm5
-
-// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3
- pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pabsw 69, %mm3
- pabsw 0x45,%mm3
-
-// CHECK: pabsw 32493, %mm3
- pabsw 0x7eed,%mm3
-
-// CHECK: pabsw 3133065982, %mm3
- pabsw 0xbabecafe,%mm3
-
-// CHECK: pabsw 305419896, %mm3
- pabsw 0x12345678,%mm3
-
-// CHECK: pabsw %mm3, %mm3
- pabsw %mm3,%mm3
-
-// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5
- pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pabsw 69, %xmm5
- pabsw 0x45,%xmm5
-
-// CHECK: pabsw 32493, %xmm5
- pabsw 0x7eed,%xmm5
-
-// CHECK: pabsw 3133065982, %xmm5
- pabsw 0xbabecafe,%xmm5
-
-// CHECK: pabsw 305419896, %xmm5
- pabsw 0x12345678,%xmm5
-
-// CHECK: pabsw %xmm5, %xmm5
- pabsw %xmm5,%xmm5
-
-// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3
- pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3
-
-// CHECK: pabsd 69, %mm3
- pabsd 0x45,%mm3
-
-// CHECK: pabsd 32493, %mm3
- pabsd 0x7eed,%mm3
-
-// CHECK: pabsd 3133065982, %mm3
- pabsd 0xbabecafe,%mm3
-
-// CHECK: pabsd 305419896, %mm3
- pabsd 0x12345678,%mm3
-
-// CHECK: pabsd %mm3, %mm3
- pabsd %mm3,%mm3
-
-// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5
- pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pabsd 69, %xmm5
- pabsd 0x45,%xmm5
-
-// CHECK: pabsd 32493, %xmm5
- pabsd 0x7eed,%xmm5
-
-// CHECK: pabsd 3133065982, %xmm5
- pabsd 0xbabecafe,%xmm5
-
-// CHECK: pabsd 305419896, %xmm5
- pabsd 0x12345678,%xmm5
-
-// CHECK: pabsd %xmm5, %xmm5
- pabsd %xmm5,%xmm5
-
-// CHECK: femms
- femms
-
-// CHECK: movntdqa 3735928559(%ebx,%ecx,8), %xmm5
- movntdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: movntdqa 69, %xmm5
- movntdqa 0x45,%xmm5
-
-// CHECK: movntdqa 32493, %xmm5
- movntdqa 0x7eed,%xmm5
-
-// CHECK: movntdqa 3133065982, %xmm5
- movntdqa 0xbabecafe,%xmm5
-
-// CHECK: movntdqa 305419896, %xmm5
- movntdqa 0x12345678,%xmm5
-
-// CHECK: packusdw 3735928559(%ebx,%ecx,8), %xmm5
- packusdw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: packusdw 69, %xmm5
- packusdw 0x45,%xmm5
-
-// CHECK: packusdw 32493, %xmm5
- packusdw 0x7eed,%xmm5
-
-// CHECK: packusdw 3133065982, %xmm5
- packusdw 0xbabecafe,%xmm5
-
-// CHECK: packusdw 305419896, %xmm5
- packusdw 0x12345678,%xmm5
-
-// CHECK: packusdw %xmm5, %xmm5
- packusdw %xmm5,%xmm5
-
-// CHECK: pcmpeqq 3735928559(%ebx,%ecx,8), %xmm5
- pcmpeqq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpeqq 69, %xmm5
- pcmpeqq 0x45,%xmm5
-
-// CHECK: pcmpeqq 32493, %xmm5
- pcmpeqq 0x7eed,%xmm5
-
-// CHECK: pcmpeqq 3133065982, %xmm5
- pcmpeqq 0xbabecafe,%xmm5
-
-// CHECK: pcmpeqq 305419896, %xmm5
- pcmpeqq 0x12345678,%xmm5
-
-// CHECK: pcmpeqq %xmm5, %xmm5
- pcmpeqq %xmm5,%xmm5
-
-// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5
- phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: phminposuw 69, %xmm5
- phminposuw 0x45,%xmm5
-
-// CHECK: phminposuw 32493, %xmm5
- phminposuw 0x7eed,%xmm5
-
-// CHECK: phminposuw 3133065982, %xmm5
- phminposuw 0xbabecafe,%xmm5
-
-// CHECK: phminposuw 305419896, %xmm5
- phminposuw 0x12345678,%xmm5
-
-// CHECK: phminposuw %xmm5, %xmm5
- phminposuw %xmm5,%xmm5
-
-// CHECK: pmaxsb 3735928559(%ebx,%ecx,8), %xmm5
- pmaxsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaxsb 69, %xmm5
- pmaxsb 0x45,%xmm5
-
-// CHECK: pmaxsb 32493, %xmm5
- pmaxsb 0x7eed,%xmm5
-
-// CHECK: pmaxsb 3133065982, %xmm5
- pmaxsb 0xbabecafe,%xmm5
-
-// CHECK: pmaxsb 305419896, %xmm5
- pmaxsb 0x12345678,%xmm5
-
-// CHECK: pmaxsb %xmm5, %xmm5
- pmaxsb %xmm5,%xmm5
-
-// CHECK: pmaxsd 3735928559(%ebx,%ecx,8), %xmm5
- pmaxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaxsd 69, %xmm5
- pmaxsd 0x45,%xmm5
-
-// CHECK: pmaxsd 32493, %xmm5
- pmaxsd 0x7eed,%xmm5
-
-// CHECK: pmaxsd 3133065982, %xmm5
- pmaxsd 0xbabecafe,%xmm5
-
-// CHECK: pmaxsd 305419896, %xmm5
- pmaxsd 0x12345678,%xmm5
-
-// CHECK: pmaxsd %xmm5, %xmm5
- pmaxsd %xmm5,%xmm5
-
-// CHECK: pmaxud 3735928559(%ebx,%ecx,8), %xmm5
- pmaxud 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaxud 69, %xmm5
- pmaxud 0x45,%xmm5
-
-// CHECK: pmaxud 32493, %xmm5
- pmaxud 0x7eed,%xmm5
-
-// CHECK: pmaxud 3133065982, %xmm5
- pmaxud 0xbabecafe,%xmm5
-
-// CHECK: pmaxud 305419896, %xmm5
- pmaxud 0x12345678,%xmm5
-
-// CHECK: pmaxud %xmm5, %xmm5
- pmaxud %xmm5,%xmm5
-
-// CHECK: pmaxuw 3735928559(%ebx,%ecx,8), %xmm5
- pmaxuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmaxuw 69, %xmm5
- pmaxuw 0x45,%xmm5
-
-// CHECK: pmaxuw 32493, %xmm5
- pmaxuw 0x7eed,%xmm5
-
-// CHECK: pmaxuw 3133065982, %xmm5
- pmaxuw 0xbabecafe,%xmm5
-
-// CHECK: pmaxuw 305419896, %xmm5
- pmaxuw 0x12345678,%xmm5
-
-// CHECK: pmaxuw %xmm5, %xmm5
- pmaxuw %xmm5,%xmm5
-
-// CHECK: pminsb 3735928559(%ebx,%ecx,8), %xmm5
- pminsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pminsb 69, %xmm5
- pminsb 0x45,%xmm5
-
-// CHECK: pminsb 32493, %xmm5
- pminsb 0x7eed,%xmm5
-
-// CHECK: pminsb 3133065982, %xmm5
- pminsb 0xbabecafe,%xmm5
-
-// CHECK: pminsb 305419896, %xmm5
- pminsb 0x12345678,%xmm5
-
-// CHECK: pminsb %xmm5, %xmm5
- pminsb %xmm5,%xmm5
-
-// CHECK: pminsd 3735928559(%ebx,%ecx,8), %xmm5
- pminsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pminsd 69, %xmm5
- pminsd 0x45,%xmm5
-
-// CHECK: pminsd 32493, %xmm5
- pminsd 0x7eed,%xmm5
-
-// CHECK: pminsd 3133065982, %xmm5
- pminsd 0xbabecafe,%xmm5
-
-// CHECK: pminsd 305419896, %xmm5
- pminsd 0x12345678,%xmm5
-
-// CHECK: pminsd %xmm5, %xmm5
- pminsd %xmm5,%xmm5
-
-// CHECK: pminud 3735928559(%ebx,%ecx,8), %xmm5
- pminud 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pminud 69, %xmm5
- pminud 0x45,%xmm5
-
-// CHECK: pminud 32493, %xmm5
- pminud 0x7eed,%xmm5
-
-// CHECK: pminud 3133065982, %xmm5
- pminud 0xbabecafe,%xmm5
-
-// CHECK: pminud 305419896, %xmm5
- pminud 0x12345678,%xmm5
-
-// CHECK: pminud %xmm5, %xmm5
- pminud %xmm5,%xmm5
-
-// CHECK: pminuw 3735928559(%ebx,%ecx,8), %xmm5
- pminuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pminuw 69, %xmm5
- pminuw 0x45,%xmm5
-
-// CHECK: pminuw 32493, %xmm5
- pminuw 0x7eed,%xmm5
-
-// CHECK: pminuw 3133065982, %xmm5
- pminuw 0xbabecafe,%xmm5
-
-// CHECK: pminuw 305419896, %xmm5
- pminuw 0x12345678,%xmm5
-
-// CHECK: pminuw %xmm5, %xmm5
- pminuw %xmm5,%xmm5
-
-// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxbw 69, %xmm5
- pmovsxbw 0x45,%xmm5
-
-// CHECK: pmovsxbw 32493, %xmm5
- pmovsxbw 0x7eed,%xmm5
-
-// CHECK: pmovsxbw 3133065982, %xmm5
- pmovsxbw 0xbabecafe,%xmm5
-
-// CHECK: pmovsxbw 305419896, %xmm5
- pmovsxbw 0x12345678,%xmm5
-
-// CHECK: pmovsxbw %xmm5, %xmm5
- pmovsxbw %xmm5,%xmm5
-
-// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxbd 69, %xmm5
- pmovsxbd 0x45,%xmm5
-
-// CHECK: pmovsxbd 32493, %xmm5
- pmovsxbd 0x7eed,%xmm5
-
-// CHECK: pmovsxbd 3133065982, %xmm5
- pmovsxbd 0xbabecafe,%xmm5
-
-// CHECK: pmovsxbd 305419896, %xmm5
- pmovsxbd 0x12345678,%xmm5
-
-// CHECK: pmovsxbd %xmm5, %xmm5
- pmovsxbd %xmm5,%xmm5
-
-// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxbq 69, %xmm5
- pmovsxbq 0x45,%xmm5
-
-// CHECK: pmovsxbq 32493, %xmm5
- pmovsxbq 0x7eed,%xmm5
-
-// CHECK: pmovsxbq 3133065982, %xmm5
- pmovsxbq 0xbabecafe,%xmm5
-
-// CHECK: pmovsxbq 305419896, %xmm5
- pmovsxbq 0x12345678,%xmm5
-
-// CHECK: pmovsxbq %xmm5, %xmm5
- pmovsxbq %xmm5,%xmm5
-
-// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxwd 69, %xmm5
- pmovsxwd 0x45,%xmm5
-
-// CHECK: pmovsxwd 32493, %xmm5
- pmovsxwd 0x7eed,%xmm5
-
-// CHECK: pmovsxwd 3133065982, %xmm5
- pmovsxwd 0xbabecafe,%xmm5
-
-// CHECK: pmovsxwd 305419896, %xmm5
- pmovsxwd 0x12345678,%xmm5
-
-// CHECK: pmovsxwd %xmm5, %xmm5
- pmovsxwd %xmm5,%xmm5
-
-// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxwq 69, %xmm5
- pmovsxwq 0x45,%xmm5
-
-// CHECK: pmovsxwq 32493, %xmm5
- pmovsxwq 0x7eed,%xmm5
-
-// CHECK: pmovsxwq 3133065982, %xmm5
- pmovsxwq 0xbabecafe,%xmm5
-
-// CHECK: pmovsxwq 305419896, %xmm5
- pmovsxwq 0x12345678,%xmm5
-
-// CHECK: pmovsxwq %xmm5, %xmm5
- pmovsxwq %xmm5,%xmm5
-
-// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5
- pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovsxdq 69, %xmm5
- pmovsxdq 0x45,%xmm5
-
-// CHECK: pmovsxdq 32493, %xmm5
- pmovsxdq 0x7eed,%xmm5
-
-// CHECK: pmovsxdq 3133065982, %xmm5
- pmovsxdq 0xbabecafe,%xmm5
-
-// CHECK: pmovsxdq 305419896, %xmm5
- pmovsxdq 0x12345678,%xmm5
-
-// CHECK: pmovsxdq %xmm5, %xmm5
- pmovsxdq %xmm5,%xmm5
-
-// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxbw 69, %xmm5
- pmovzxbw 0x45,%xmm5
-
-// CHECK: pmovzxbw 32493, %xmm5
- pmovzxbw 0x7eed,%xmm5
-
-// CHECK: pmovzxbw 3133065982, %xmm5
- pmovzxbw 0xbabecafe,%xmm5
-
-// CHECK: pmovzxbw 305419896, %xmm5
- pmovzxbw 0x12345678,%xmm5
-
-// CHECK: pmovzxbw %xmm5, %xmm5
- pmovzxbw %xmm5,%xmm5
-
-// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxbd 69, %xmm5
- pmovzxbd 0x45,%xmm5
-
-// CHECK: pmovzxbd 32493, %xmm5
- pmovzxbd 0x7eed,%xmm5
-
-// CHECK: pmovzxbd 3133065982, %xmm5
- pmovzxbd 0xbabecafe,%xmm5
-
-// CHECK: pmovzxbd 305419896, %xmm5
- pmovzxbd 0x12345678,%xmm5
-
-// CHECK: pmovzxbd %xmm5, %xmm5
- pmovzxbd %xmm5,%xmm5
-
-// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxbq 69, %xmm5
- pmovzxbq 0x45,%xmm5
-
-// CHECK: pmovzxbq 32493, %xmm5
- pmovzxbq 0x7eed,%xmm5
-
-// CHECK: pmovzxbq 3133065982, %xmm5
- pmovzxbq 0xbabecafe,%xmm5
-
-// CHECK: pmovzxbq 305419896, %xmm5
- pmovzxbq 0x12345678,%xmm5
-
-// CHECK: pmovzxbq %xmm5, %xmm5
- pmovzxbq %xmm5,%xmm5
-
-// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxwd 69, %xmm5
- pmovzxwd 0x45,%xmm5
-
-// CHECK: pmovzxwd 32493, %xmm5
- pmovzxwd 0x7eed,%xmm5
-
-// CHECK: pmovzxwd 3133065982, %xmm5
- pmovzxwd 0xbabecafe,%xmm5
-
-// CHECK: pmovzxwd 305419896, %xmm5
- pmovzxwd 0x12345678,%xmm5
-
-// CHECK: pmovzxwd %xmm5, %xmm5
- pmovzxwd %xmm5,%xmm5
-
-// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxwq 69, %xmm5
- pmovzxwq 0x45,%xmm5
-
-// CHECK: pmovzxwq 32493, %xmm5
- pmovzxwq 0x7eed,%xmm5
-
-// CHECK: pmovzxwq 3133065982, %xmm5
- pmovzxwq 0xbabecafe,%xmm5
-
-// CHECK: pmovzxwq 305419896, %xmm5
- pmovzxwq 0x12345678,%xmm5
-
-// CHECK: pmovzxwq %xmm5, %xmm5
- pmovzxwq %xmm5,%xmm5
-
-// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5
- pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmovzxdq 69, %xmm5
- pmovzxdq 0x45,%xmm5
-
-// CHECK: pmovzxdq 32493, %xmm5
- pmovzxdq 0x7eed,%xmm5
-
-// CHECK: pmovzxdq 3133065982, %xmm5
- pmovzxdq 0xbabecafe,%xmm5
-
-// CHECK: pmovzxdq 305419896, %xmm5
- pmovzxdq 0x12345678,%xmm5
-
-// CHECK: pmovzxdq %xmm5, %xmm5
- pmovzxdq %xmm5,%xmm5
-
-// CHECK: pmuldq 3735928559(%ebx,%ecx,8), %xmm5
- pmuldq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmuldq 69, %xmm5
- pmuldq 0x45,%xmm5
-
-// CHECK: pmuldq 32493, %xmm5
- pmuldq 0x7eed,%xmm5
-
-// CHECK: pmuldq 3133065982, %xmm5
- pmuldq 0xbabecafe,%xmm5
-
-// CHECK: pmuldq 305419896, %xmm5
- pmuldq 0x12345678,%xmm5
-
-// CHECK: pmuldq %xmm5, %xmm5
- pmuldq %xmm5,%xmm5
-
-// CHECK: pmulld 3735928559(%ebx,%ecx,8), %xmm5
- pmulld 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pmulld 69, %xmm5
- pmulld 0x45,%xmm5
-
-// CHECK: pmulld 32493, %xmm5
- pmulld 0x7eed,%xmm5
-
-// CHECK: pmulld 3133065982, %xmm5
- pmulld 0xbabecafe,%xmm5
-
-// CHECK: pmulld 305419896, %xmm5
- pmulld 0x12345678,%xmm5
-
-// CHECK: pmulld %xmm5, %xmm5
- pmulld %xmm5,%xmm5
-
-// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5
- ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: ptest 69, %xmm5
- ptest 0x45,%xmm5
-
-// CHECK: ptest 32493, %xmm5
- ptest 0x7eed,%xmm5
-
-// CHECK: ptest 3133065982, %xmm5
- ptest 0xbabecafe,%xmm5
-
-// CHECK: ptest 305419896, %xmm5
- ptest 0x12345678,%xmm5
-
-// CHECK: ptest %xmm5, %xmm5
- ptest %xmm5,%xmm5
-
-// CHECK: crc32b %bl, %eax
- crc32b %bl, %eax
-
-// CHECK: crc32b 4(%ebx), %eax
- crc32b 4(%ebx), %eax
-
-// CHECK: crc32w %bx, %eax
- crc32w %bx, %eax
-
-// CHECK: crc32w 4(%ebx), %eax
- crc32w 4(%ebx), %eax
-
-// CHECK: crc32l %ebx, %eax
- crc32l %ebx, %eax
-
-// CHECK: crc32l 4(%ebx), %eax
- crc32l 4(%ebx), %eax
-
-// CHECK: crc32l 3735928559(%ebx,%ecx,8), %ecx
- crc32l 0xdeadbeef(%ebx,%ecx,8),%ecx
-
-// CHECK: crc32l 69, %ecx
- crc32l 0x45,%ecx
-
-// CHECK: crc32l 32493, %ecx
- crc32l 0x7eed,%ecx
-
-// CHECK: crc32l 3133065982, %ecx
- crc32l 0xbabecafe,%ecx
-
-// CHECK: crc32l %ecx, %ecx
- crc32l %ecx,%ecx
-
-// CHECK: pcmpgtq 3735928559(%ebx,%ecx,8), %xmm5
- pcmpgtq 0xdeadbeef(%ebx,%ecx,8),%xmm5
-
-// CHECK: pcmpgtq 69, %xmm5
- pcmpgtq 0x45,%xmm5
-
-// CHECK: pcmpgtq 32493, %xmm5
- pcmpgtq 0x7eed,%xmm5
-
-// CHECK: pcmpgtq 3133065982, %xmm5
- pcmpgtq 0xbabecafe,%xmm5
-
-// CHECK: pcmpgtq 305419896, %xmm5
- pcmpgtq 0x12345678,%xmm5
-
-// CHECK: pcmpgtq %xmm5, %xmm5
- pcmpgtq %xmm5,%xmm5
-
-// CHECK: aesimc %xmm0, %xmm1
- aesimc %xmm0,%xmm1
-
-// CHECK: aesimc (%eax), %xmm1
- aesimc (%eax),%xmm1
-
-// CHECK: aesenc %xmm1, %xmm2
- aesenc %xmm1,%xmm2
-
-// CHECK: aesenc 4(%ebx), %xmm2
- aesenc 4(%ebx),%xmm2
-
-// CHECK: aesenclast %xmm3, %xmm4
- aesenclast %xmm3,%xmm4
-
-// CHECK: aesenclast 4(%edx,%edi), %xmm4
- aesenclast 4(%edx,%edi),%xmm4
-
-// CHECK: aesdec %xmm5, %xmm6
- aesdec %xmm5,%xmm6
-
-// CHECK: aesdec 4(%ecx,%eax,8), %xmm6
- aesdec 4(%ecx,%eax,8),%xmm6
-
-// CHECK: aesdeclast %xmm7, %xmm0
- aesdeclast %xmm7,%xmm0
-
-// CHECK: aesdeclast 3405691582, %xmm0
- aesdeclast 0xcafebabe,%xmm0
-
-// CHECK: aeskeygenassist $125, %xmm1, %xmm2
- aeskeygenassist $125, %xmm1, %xmm2
-
-// CHECK: aeskeygenassist $125, (%edx,%eax,4), %xmm2
- aeskeygenassist $125, (%edx,%eax,4), %xmm2
diff --git a/test/MC/AsmParser/X86/x86_32-mismatched-add.s b/test/MC/AsmParser/X86/x86_32-mismatched-add.s
deleted file mode 100644
index 0840c65..0000000
--- a/test/MC/AsmParser/X86/x86_32-mismatched-add.s
+++ /dev/null
@@ -1,8 +0,0 @@
-// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
-// XFAIL: *
-
-// CHECK: addl $4294967295, %eax # encoding: [0x83,0xc0,0xff]
- addl $0xFFFFFFFF, %eax
-
-// CHECK: addl $65535, %eax # encoding: [0x66,0x83,0xc0,0xff]
- addw $0xFFFF, %ax
diff --git a/test/MC/AsmParser/X86/x86_64-incl_decl.s b/test/MC/AsmParser/X86/x86_64-incl_decl.s
deleted file mode 100644
index 51315f8..0000000
--- a/test/MC/AsmParser/X86/x86_64-incl_decl.s
+++ /dev/null
@@ -1,26 +0,0 @@
-// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck --check-prefix=CHECK-X86_32 %s
-// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck --check-prefix=CHECK-X86_64 %s
-
-# CHECK-X86_32: incb %al # encoding: [0xfe,0xc0]
-# CHECK-X86_64: incb %al # encoding: [0xfe,0xc0]
- incb %al
-
-# CHECK-X86_32: incw %ax # encoding: [0x66,0x40]
-# CHECK-X86_64: incw %ax # encoding: [0x66,0xff,0xc0]
- incw %ax
-
-# CHECK-X86_32: incl %eax # encoding: [0x40]
-# CHECK-X86_64: incl %eax # encoding: [0xff,0xc0]
- incl %eax
-
-# CHECK-X86_32: decb %al # encoding: [0xfe,0xc8]
-# CHECK-X86_64: decb %al # encoding: [0xfe,0xc8]
- decb %al
-
-# CHECK-X86_32: decw %ax # encoding: [0x66,0x48]
-# CHECK-X86_64: decw %ax # encoding: [0x66,0xff,0xc8]
- decw %ax
-
-# CHECK-X86_32: decl %eax # encoding: [0x48]
-# CHECK-X86_64: decl %eax # encoding: [0xff,0xc8]
- decl %eax
diff --git a/test/MC/AsmParser/X86/x86_64-new-encoder.s b/test/MC/AsmParser/X86/x86_64-new-encoder.s
deleted file mode 100644
index 9f94d84..0000000
--- a/test/MC/AsmParser/X86/x86_64-new-encoder.s
+++ /dev/null
@@ -1,159 +0,0 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
-
-movl foo(%rip), %eax
-// CHECK: movl foo(%rip), %eax
-// CHECK: encoding: [0x8b,0x05,A,A,A,A]
-// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
-
-movb $12, foo(%rip)
-// CHECK: movb $12, foo(%rip)
-// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
-// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
-
-movw $12, foo(%rip)
-// CHECK: movw $12, foo(%rip)
-// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
-// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
-
-movl $12, foo(%rip)
-// CHECK: movl $12, foo(%rip)
-// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
-// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
-
-movq $12, foo(%rip)
-// CHECK: 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
-
-// CHECK: addq $-424, %rax
-// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
-addq $-424, %rax
-
-
-// CHECK: movq _foo@GOTPCREL(%rip), %rax
-// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A]
-// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
-movq _foo@GOTPCREL(%rip), %rax
-
-// CHECK: movq _foo@GOTPCREL(%rip), %r14
-// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A]
-// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
-movq _foo@GOTPCREL(%rip), %r14
-
-
-// CHECK: movq (%r13,%rax,8), %r13
-// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
-movq 0x00(%r13,%rax,8),%r13
-
-// CHECK: testq %rax, %rbx
-// CHECK: encoding: [0x48,0x85,0xd8]
-testq %rax, %rbx
-
-// CHECK: cmpq %rbx, %r14
-// CHECK: encoding: [0x49,0x39,0xde]
- cmpq %rbx, %r14
-
-// rdar://7947167
-
-movsq
-// CHECK: movsq
-// CHECK: encoding: [0x48,0xa5]
-
-movsl
-// CHECK: movsl
-// CHECK: encoding: [0xa5]
-
-stosq
-// CHECK: stosq
-// CHECK: encoding: [0x48,0xab]
-stosl
-// CHECK: stosl
-// CHECK: encoding: [0xab]
-
-
-// Not moffset forms of moves, they are x86-32 only! rdar://7947184
-movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
-movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
-movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
-
-// CHECK: pushfq # encoding: [0x9c]
- pushf
-// CHECK: pushfq # encoding: [0x9c]
- pushfq
-// CHECK: popfq # encoding: [0x9d]
- popf
-// CHECK: popfq # encoding: [0x9d]
- popfq
-
-// CHECK: movabsq $-281474976710654, %rax
-// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
- movabsq $0xFFFF000000000002, %rax
-
-// CHECK: movq $-281474976710654, %rax
-// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
- movq $0xFFFF000000000002, %rax
-
-// CHECK: movq $-65536, %rax
-// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
- movq $0xFFFFFFFFFFFF0000, %rax
-
-// CHECK: movq $-256, %rax
-// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
- movq $0xFFFFFFFFFFFFFF00, %rax
-
-// CHECK: movq $10, %rax
-// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
- movq $10, %rax
-
-// rdar://8014869
-//
-// CHECK: ret
-// CHECK: encoding: [0xc3]
- retq
-
-// CHECK: sete %al
-// CHECK: encoding: [0x0f,0x94,0xc0]
- setz %al
-
-// CHECK: setne %al
-// CHECK: encoding: [0x0f,0x95,0xc0]
- setnz %al
-
-// CHECK: je 0
-// CHECK: encoding: [0x74,A]
- jz 0
-
-// CHECK: jne
-// CHECK: encoding: [0x75,A]
- jnz 0
-
-// rdar://8017515
-btq $0x01,%rdx
-// CHECK: btq $1, %rdx
-// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01]
-
-//rdar://8017633
-// CHECK: movzbl %al, %esi
-// CHECK: encoding: [0x0f,0xb6,0xf0]
- movzx %al, %esi
-
-// CHECK: movzbq %al, %rsi
-// CHECK: encoding: [0x48,0x0f,0xb6,0xf0]
- movzx %al, %rsi
-
-// CHECK: movzbq (%rsp), %rsi
-// CHECK: encoding: [0x48,0x0f,0xb6,0x34,0x24]
- movzx 0(%rsp), %rsi
-
-
-// rdar://7873482
-// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
- movl %gs:124, %eax
-
-// CHECK: jmpq *8(%rax)
-// CHECK: encoding: [0xff,0x60,0x08]
- jmp *8(%rax)
-
-// CHECK: btq $61, -216(%rbp)
-// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
- btq $61, -216(%rbp)
diff --git a/test/MC/AsmParser/X86/x86_64-operands.s b/test/MC/AsmParser/X86/x86_64-operands.s
deleted file mode 100644
index 88f1a64..0000000
--- a/test/MC/AsmParser/X86/x86_64-operands.s
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown %s | FileCheck %s
-
-# CHECK: callq a
- callq a
-
-# CHECK: leaq -40(%rbp), %r15
- leaq -40(%rbp), %r15
-
-
-
-// rdar://8013734 - Alias dr6=db6
-mov %dr6, %rax
-mov %db6, %rax
-# CHECK: movq %dr6, %rax
-# CHECK: movq %dr6, %rax
diff --git a/test/MC/AsmParser/X86/x86_64-suffix-matching.s b/test/MC/AsmParser/X86/x86_64-suffix-matching.s
deleted file mode 100644
index 0ae6fe5..0000000
--- a/test/MC/AsmParser/X86/x86_64-suffix-matching.s
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: llvm-mc -triple x86_64 -o - %s | FileCheck %s
-
-// CHECK: addl $0, %eax
- add $0, %eax
-// CHECK: addb $255, %al
- add $0xFF, %al
-// CHECK: orq %rax, %rdx
- or %rax, %rdx
-// CHECK: shlq $3, %rax
- shl $3, %rax
diff --git a/test/MC/AsmParser/X86/x86_instructions.s b/test/MC/AsmParser/X86/x86_instructions.s
deleted file mode 100644
index a82d2a1..0000000
--- a/test/MC/AsmParser/X86/x86_instructions.s
+++ /dev/null
@@ -1,175 +0,0 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown %s > %t 2> %t.err
-// RUN: FileCheck < %t %s
-// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
-
-// CHECK: subb %al, %al
- subb %al, %al
-
-// CHECK: addl $24, %eax
- addl $24, %eax
-
-// CHECK: movl %eax, 10(%ebp)
- movl %eax, 10(%ebp)
-// CHECK: movl %eax, 10(%ebp,%ebx)
- movl %eax, 10(%ebp, %ebx)
-// CHECK: movl %eax, 10(%ebp,%ebx,4)
- movl %eax, 10(%ebp, %ebx, 4)
-// CHECK: movl %eax, 10(,%ebx,4)
- movl %eax, 10(, %ebx, 4)
-
-// CHECK: movl 0, %eax
- movl 0, %eax
-// CHECK: movl $0, %eax
- movl $0, %eax
-
-// CHECK: ret
- ret
-
-// FIXME: Check that this matches SUB32ri8
-// CHECK: subl $1, %eax
- subl $1, %eax
-
-// FIXME: Check that this matches SUB32ri8
-// CHECK: subl $-1, %eax
- subl $-1, %eax
-
-// FIXME: Check that this matches SUB32ri
-// CHECK: subl $256, %eax
- subl $256, %eax
-
-// FIXME: Check that this matches XOR64ri8
-// CHECK: xorq $1, %rax
- xorq $1, %rax
-
-// FIXME: Check that this matches XOR64ri32
-// CHECK: xorq $256, %rax
- xorq $256, %rax
-
-// FIXME: Check that this matches SUB8rr
-// CHECK: subb %al, %bl
- subb %al, %bl
-
-// FIXME: Check that this matches SUB16rr
-// CHECK: subw %ax, %bx
- subw %ax, %bx
-
-// FIXME: Check that this matches SUB32rr
-// CHECK: subl %eax, %ebx
- subl %eax, %ebx
-
-// FIXME: Check that this matches the correct instruction.
-// CHECK: callq *%rax
- call *%rax
-
-// FIXME: Check that this matches the correct instruction.
-// CHECK: shldl %cl, %eax, %ebx
- shldl %cl, %eax, %ebx
-
-// CHECK: shll $2, %eax
- shll $2, %eax
-
-// CHECK: shll $2, %eax
- sall $2, %eax
-
-// CHECK: rep
-// CHECK: insb
- rep;insb
-
-// CHECK: rep
-// CHECK: outsb
- rep;outsb
-
-// CHECK: rep
-// CHECK: movsb
- rep;movsb
-
-// CHECK: rep
-// CHECK: lodsb
- rep;lodsb
-
-// CHECK: rep
-// CHECK: stosb
- rep;stosb
-
-// NOTE: repz and repe have the same opcode as rep
-// CHECK: rep
-// CHECK: cmpsb
- repz;cmpsb
-
-// NOTE: repnz has the same opcode as repne
-// CHECK: repne
-// CHECK: cmpsb
- repnz;cmpsb
-
-// NOTE: repe and repz have the same opcode as rep
-// CHECK: rep
-// CHECK: scasb
- repe;scasb
-
-// CHECK: repne
-// CHECK: scasb
- repne;scasb
-
-// CHECK: lock
-// CHECK: cmpxchgb %al, (%ebx)
- lock;cmpxchgb %al, 0(%ebx)
-
-// CHECK: cs
-// CHECK: movb (%eax), %al
- cs;movb 0(%eax), %al
-
-// CHECK: ss
-// CHECK: movb (%eax), %al
- ss;movb 0(%eax), %al
-
-// CHECK: ds
-// CHECK: movb (%eax), %al
- ds;movb 0(%eax), %al
-
-// CHECK: es
-// CHECK: movb (%eax), %al
- es;movb 0(%eax), %al
-
-// CHECK: fs
-// CHECK: movb (%eax), %al
- fs;movb 0(%eax), %al
-
-// CHECK: gs
-// CHECK: movb (%eax), %al
- gs;movb 0(%eax), %al
-
-// CHECK: fadd %st(0)
-// CHECK: fadd %st(1)
-// CHECK: fadd %st(7)
-
-fadd %st(0)
-fadd %st(1)
-fadd %st(7)
-
-// CHECK: leal 0, %eax
- leal 0, %eax
-
-// rdar://7986634 - Insensitivity on opcodes.
-// CHECK: int3
-INT3
-
-
-// Allow scale factor without index register.
-// CHECK: movaps %xmm3, (%esi)
-// CHECK-STDERR: warning: scale factor without index register is ignored
-movaps %xmm3, (%esi, 2)
-
-// CHECK: imull $12, %eax, %eax
-imul $12, %eax
-
-// CHECK: imull %ecx, %eax
-imull %ecx, %eax
-
-// PR8114
-// CHECK: outb %al, %dx
-// CHECK: outw %ax, %dx
-// CHECK: outl %eax, %dx
-
-out %al, (%dx)
-out %ax, (%dx)
-outl %eax, (%dx)
diff --git a/test/MC/AsmParser/dash-n.s b/test/MC/AsmParser/dash-n.s
new file mode 100644
index 0000000..b6243a4
--- /dev/null
+++ b/test/MC/AsmParser/dash-n.s
@@ -0,0 +1,7 @@
+// RUN: not llvm-mc -n -triple i386-unknown-unknown %s 2> %t
+// RUN: FileCheck < %t %s
+
+.globl a
+// CHECK: error: expected section directive before assembly directive
+.long 0
+
diff --git a/test/MC/AsmParser/directive_abort.s b/test/MC/AsmParser/directive_abort.s
index 1fd1f6e..86e6267 100644
--- a/test/MC/AsmParser/directive_abort.s
+++ b/test/MC/AsmParser/directive_abort.s
@@ -1,4 +1,4 @@
-# RUN: llvm-mc -triple i386-unknown-unknown %s 2> %t
+# RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t
# RUN: FileCheck -input-file %t %s
# CHECK: error: .abort 'please stop assembing'
diff --git a/test/MC/AsmParser/directive_ascii.s b/test/MC/AsmParser/directive_ascii.s
index 5bfc1e9..a7ba7bb 100644
--- a/test/MC/AsmParser/directive_ascii.s
+++ b/test/MC/AsmParser/directive_ascii.s
@@ -32,3 +32,10 @@ TEST4:
TEST5:
.ascii "\b\f\n\r\t\\\""
+# CHECK: TEST6:
+# CHECK: .byte 66
+# CHECK: .byte 0
+# CHECK: .byte 67
+# CHECK: .byte 0
+TEST6:
+ .string "B", "C"
diff --git a/test/MC/AsmParser/directive_loc.s b/test/MC/AsmParser/directive_loc.s
index b122fdc..164d42a 100644
--- a/test/MC/AsmParser/directive_loc.s
+++ b/test/MC/AsmParser/directive_loc.s
@@ -5,4 +5,4 @@
.loc 1
.loc 1 2
.loc 1 2 3
-
+ .loc 1 2 discriminator 1
diff --git a/test/MC/AsmParser/directive_set.s b/test/MC/AsmParser/directive_set.s
index f1fc30a..69abce0 100644
--- a/test/MC/AsmParser/directive_set.s
+++ b/test/MC/AsmParser/directive_set.s
@@ -5,3 +5,8 @@
TEST0:
.set a, 0
+# CHECK: TEST1:
+# CHECK: a = 0
+TEST1:
+ .equ a, 0
+
diff --git a/test/MC/AsmParser/directive_values.s b/test/MC/AsmParser/directive_values.s
index c7617a3..98259bd 100644
--- a/test/MC/AsmParser/directive_values.s
+++ b/test/MC/AsmParser/directive_values.s
@@ -36,3 +36,23 @@ TEST4:
# CHECK: .quad 1075
+TEST5:
+ .value 8
+# CHECK: TEST5:
+# CHECK: .short 8
+
+TEST6:
+ .byte 'c'
+ .byte '\''
+ .byte '\\'
+ .byte '\#'
+ .byte '\t'
+ .byte '\n'
+
+# CHECK: TEST6
+# CHECK: .byte 99
+# CHECK: .byte 39
+# CHECK: .byte 92
+# CHECK: .byte 35
+# CHECK: .byte 9
+# CHECK: .byte 10
diff --git a/test/MC/AsmParser/equ.s b/test/MC/AsmParser/equ.s
new file mode 100644
index 0000000..568f58f
--- /dev/null
+++ b/test/MC/AsmParser/equ.s
@@ -0,0 +1,9 @@
+// RUN: not llvm-mc -n -triple i386-unknown-unknown %s 2> %t
+// RUN: FileCheck < %t %s
+
+.equ a, 0
+.set a, 1
+.equ a, 2
+.equiv a, 3
+// CHECK: error: redefinition of 'a'
+
diff --git a/test/MC/AsmParser/expr_symbol_modifiers.s b/test/MC/AsmParser/expr_symbol_modifiers.s
new file mode 100644
index 0000000..7371c97
--- /dev/null
+++ b/test/MC/AsmParser/expr_symbol_modifiers.s
@@ -0,0 +1,14 @@
+// RUN: not llvm-mc -triple x86_64-unknown-unknown %s > %t 2> %t.err
+// RUN: FileCheck < %t %s
+// RUN: FileCheck -check-prefix=CHECK-STDERR < %t.err %s
+
+// CHECK: .long 1
+.long 1
+// CHECK-STDERR: invalid modifier 'GOTPCREL' (no symbols present)
+.long 10 + 4@GOTPCREL
+// CHECK: .long a@GOTPCREL+4
+.long a + 4@GOTPCREL
+// CHECK: .long a@GOTPCREL+b@GOTPCREL
+.long (a + b)@GOTPCREL
+// CHECK: .long (10+b@GOTPCREL)+4
+.long 10 + b + 4@GOTPCREL
diff --git a/test/MC/AsmParser/exprs.s b/test/MC/AsmParser/exprs.s
index 350360c..0861922 100644
--- a/test/MC/AsmParser/exprs.s
+++ b/test/MC/AsmParser/exprs.s
@@ -1,47 +1,54 @@
-// FIXME: For now this test just checks that llvm-mc -triple i386-unknown-unknown works. Once we have .macro,
-// .if, and .abort we can write a better test (without resorting to miles of
-// greps).
-
// RUN: llvm-mc -triple i386-unknown-unknown %s > %t
+.macro check_expr
+ .if ($0) != ($1)
+ .abort Unexpected $0 != $1.
+ .endif
+.endmacro
+
.text
g:
h:
j:
k:
.data
- .byte !1 + 2
- .byte !0
- .byte ~0
- .byte -1
- .byte +1
- .byte 1 + 2
- .byte 1 & 3
- .byte 4 / 2
- .byte 4 / -2
- .byte 1 == 1
- .byte 1 == 0
- .byte 1 > 0
- .byte 1 >= 1
- .byte 1 < 2
- .byte 1 <= 1
- .byte 4 % 3
- .byte 2 * 2
- .byte 2 != 2
- .byte 2 <> 2
- .byte 1 | 2
- .byte 1 << 1
- .byte 2 >> 1
- .byte ~0 >> 1
- .byte 3 - 2
- .byte 1 ^ 3
- .byte 1 && 2
- .byte 3 && 0
- .byte 1 || 2
- .byte 0 || 0
-
+ check_expr !1 + 2, 2
+ check_expr !0, 1
+ check_expr ~0, -1
+ check_expr -1, ~0
+ check_expr +1, 1
+ check_expr 1 + 2, 3
+ check_expr 1 & 3, 1
+ check_expr 4 / 2, 2
+ check_expr 4 / -2, -2
+ check_expr 1 == 1, 1
+ check_expr 1 == 0, 0
+ check_expr 1 > 0, 1
+ check_expr 1 >= 1, 1
+ check_expr 1 < 2, 1
+ check_expr 1 <= 1, 1
+ check_expr 4 % 3, 1
+ check_expr 2 * 2, 4
+ check_expr 2 != 2, 0
+ check_expr 2 <> 2, 0
+ check_expr 1 | 2, 3
+ check_expr 1 << 1, 2
+ check_expr 2 >> 1, 1
+ check_expr (~0 >> 1), -1
+ check_expr [~0 >> 1], -1
+ check_expr 4 * [4 + (3 + [2 * 2] + 1)], 48
+ check_expr 3 - 2, 1
+ check_expr 1 ^ 3, 2
+ check_expr 1 && 2, 1
+ check_expr 3 && 0, 0
+ check_expr 0 && 1, 0
+ check_expr 1 || 2, 1
+ check_expr 0 || 1, 1
+ check_expr 0 || 0, 0
+ check_expr 1 + 2 < 3 + 4, 1
+
.set c, 10
- .byte c + 1
+ check_expr c + 1, 11
d = e + 10
.long d
diff --git a/test/MC/AsmParser/floating-literals.s b/test/MC/AsmParser/floating-literals.s
new file mode 100644
index 0000000..bd122a8
--- /dev/null
+++ b/test/MC/AsmParser/floating-literals.s
@@ -0,0 +1,35 @@
+# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+# CHECK: .long 1067412619
+# CHECK: .long 1075000115
+# CHECK: .long 1077936128
+# CHECK: .long 1082549862
+.single 1.2455, +2.3, 3, + 4.2
+
+# CHECK: .long 1067928519
+.float 1.307
+
+# CHECK: .quad 4617315517961601024
+# CHECK: .quad 4597526701198935065
+# CHECK: .quad -4600933674317040845
+.double 5, .232, -11.1
+
+# CHECK: .quad 0
+.double 0.0
+
+# CHECK: .quad -4570379565595099136
+.double -1.2e3
+# CHECK: .quad -4690170861623122860
+.double -1.2e-5
+# CHECK: .quad -4465782973978902528
+.double -1.2e+10
+# CHECK: .quad 4681608360884174848
+.double 1e5
+# CHECK: .quad 4681608360884174848
+.double 1.e5
+# CHECK: .quad 4611686018427387904
+.double 2.
+
+// APFloat should reject these with an error, not crash:
+//.double -1.2e+
+//.double -1.2e
diff --git a/test/MC/AsmParser/full_line_comment.s b/test/MC/AsmParser/full_line_comment.s
new file mode 100644
index 0000000..4c91986
--- /dev/null
+++ b/test/MC/AsmParser/full_line_comment.s
@@ -0,0 +1,8 @@
+// RUN: llvm-mc -triple arm-apple-darwin10 %s | FileCheck %s
+# this is a full line comment starting at column 1
+ # this starting at column 2
+
+ .data
+// CHECK: .long 0
+.long 0
+# .long 1 this line is commented out
diff --git a/test/MC/AsmParser/ifdef.s b/test/MC/AsmParser/ifdef.s
new file mode 100644
index 0000000..98bff65
--- /dev/null
+++ b/test/MC/AsmParser/ifdef.s
@@ -0,0 +1,29 @@
+# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+# CHECK-NOT: .byte 0
+# CHECK: .byte 1
+.ifdef undefined
+ .byte 0
+.else
+ .byte 1
+.endif
+
+defined:
+
+# CHECK: .byte 1
+# CHECK-NOT: .byte 0
+.ifdef defined
+ .byte 1
+.else
+ .byte 0
+.endif
+
+ movl %eax, undefined
+
+# CHECK-NOT: .byte 0
+# CHECK: .byte 1
+.ifdef undefined
+ .byte 0
+.else
+ .byte 1
+.endif
diff --git a/test/MC/AsmParser/ifndef.s b/test/MC/AsmParser/ifndef.s
new file mode 100644
index 0000000..d9c9c54
--- /dev/null
+++ b/test/MC/AsmParser/ifndef.s
@@ -0,0 +1,29 @@
+# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+# CHECK: .byte 1
+# CHECK-NOT: byte 0
+.ifndef undefined
+ .byte 1
+.else
+ .byte 0
+.endif
+
+defined:
+
+# CHECK-NOT: byte 0
+# CHECK: .byte 1
+.ifndef defined
+ .byte 0
+.else
+ .byte 1
+.endif
+
+ movl %eax, undefined
+
+# CHECK: .byte 1
+# CHECK-NOT: byte 0
+.ifndef undefined
+ .byte 1
+.else
+ .byte 0
+.endif
diff --git a/test/MC/AsmParser/paren.s b/test/MC/AsmParser/paren.s
new file mode 100644
index 0000000..702e309
--- /dev/null
+++ b/test/MC/AsmParser/paren.s
@@ -0,0 +1,8 @@
+// RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t1 > %t2
+// RUN: FileCheck < %t1 %s
+
+// CHECK: error: expected ']' in brackets expression
+.size x, [.-x)
+
+// CHECK: error: expected ')' in parentheses expression
+.size y, (.-y]
diff --git a/test/MC/AsmParser/rename.s b/test/MC/AsmParser/rename.s
new file mode 100644
index 0000000..64ca515
--- /dev/null
+++ b/test/MC/AsmParser/rename.s
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+ .size bar, . - bar
+.Ltmp0:
+ .size foo, .Ltmp0 - foo
+
+// CHECK: .Ltmp0:
+// CHECK: .size bar, .Ltmp0-bar
+// CHECK: .Ltmp01
+// CHECK: .size foo, .Ltmp01-foo
diff --git a/test/MC/AsmParser/section.s b/test/MC/AsmParser/section.s
new file mode 100644
index 0000000..414fc6d
--- /dev/null
+++ b/test/MC/AsmParser/section.s
@@ -0,0 +1,107 @@
+# RUN: llvm-mc -triple i386-pc-linux-gnu -filetype=obj -o %t %s
+# RUN: elf-dump --dump-section-data < %t | FileCheck %s
+.section test1
+.byte 1
+.section test2
+.byte 2
+.previous
+.byte 1
+.section test2
+.byte 2
+.previous
+.byte 1
+.section test1
+.byte 1
+.previous
+.byte 1
+.section test2
+.byte 2
+.pushsection test3
+.byte 3
+.pushsection test4
+.byte 4
+.pushsection test5
+.byte 5
+.popsection
+.byte 4
+.popsection
+.byte 3
+.popsection
+.byte 2
+.pushsection test3
+.byte 3
+.pushsection test4
+.byte 4
+.previous
+.byte 3
+.popsection
+.byte 3
+.previous
+.byte 2
+.section test1
+.byte 1
+.popsection
+.byte 2
+.previous
+.byte 1
+.previous
+# CHECK: (('sh_name', 0x00000012) # 'test1'
+# CHECK-NEXT: ('sh_type', 0x00000001)
+# CHECK-NEXT: ('sh_flags', 0x00000000)
+# CHECK-NEXT: ('sh_addr', 0x00000000)
+# CHECK-NEXT: ('sh_offset', 0x00000034)
+# CHECK-NEXT: ('sh_size', 0x00000007)
+# CHECK-NEXT: ('sh_link', 0x00000000)
+# CHECK-NEXT: ('sh_info', 0x00000000)
+# CHECK-NEXT: ('sh_addralign', 0x00000001)
+# CHECK-NEXT: ('sh_entsize', 0x00000000)
+# CHECK-NEXT: ('_section_data', '01010101 010101')
+# CHECK-NEXT: ),
+# CHECK: (('sh_name', 0x00000018) # 'test2'
+# CHECK-NEXT: ('sh_type', 0x00000001)
+# CHECK-NEXT: ('sh_flags', 0x00000000)
+# CHECK-NEXT: ('sh_addr', 0x00000000)
+# CHECK-NEXT: ('sh_offset', 0x0000003b)
+# CHECK-NEXT: ('sh_size', 0x00000006)
+# CHECK-NEXT: ('sh_link', 0x00000000)
+# CHECK-NEXT: ('sh_info', 0x00000000)
+# CHECK-NEXT: ('sh_addralign', 0x00000001)
+# CHECK-NEXT: ('sh_entsize', 0x00000000)
+# CHECK-NEXT: ('_section_data', '02020202 0202')
+# CHECK-NEXT: ),
+# CHECK: (('sh_name', 0x0000001e) # 'test3'
+# CHECK-NEXT: ('sh_type', 0x00000001)
+# CHECK-NEXT: ('sh_flags', 0x00000000)
+# CHECK-NEXT: ('sh_addr', 0x00000000)
+# CHECK-NEXT: ('sh_offset', 0x00000041)
+# CHECK-NEXT: ('sh_size', 0x00000005)
+# CHECK-NEXT: ('sh_link', 0x00000000)
+# CHECK-NEXT: ('sh_info', 0x00000000)
+# CHECK-NEXT: ('sh_addralign', 0x00000001)
+# CHECK-NEXT: ('sh_entsize', 0x00000000)
+# CHECK-NEXT: ('_section_data', '03030303 03')
+# CHECK-NEXT: ),
+# CHECK: (('sh_name', 0x00000024) # 'test4'
+# CHECK-NEXT: ('sh_type', 0x00000001)
+# CHECK-NEXT: ('sh_flags', 0x00000000)
+# CHECK-NEXT: ('sh_addr', 0x00000000)
+# CHECK-NEXT: ('sh_offset', 0x00000046)
+# CHECK-NEXT: ('sh_size', 0x00000003)
+# CHECK-NEXT: ('sh_link', 0x00000000)
+# CHECK-NEXT: ('sh_info', 0x00000000)
+# CHECK-NEXT: ('sh_addralign', 0x00000001)
+# CHECK-NEXT: ('sh_entsize', 0x00000000)
+# CHECK-NEXT: ('_section_data', '040404')
+# CHECK-NEXT: ),
+# CHECK: (('sh_name', 0x0000002a) # 'test5'
+# CHECK-NEXT: ('sh_type', 0x00000001)
+# CHECK-NEXT: ('sh_flags', 0x00000000)
+# CHECK-NEXT: ('sh_addr', 0x00000000)
+# CHECK-NEXT: ('sh_offset', 0x00000049)
+# CHECK-NEXT: ('sh_size', 0x00000001)
+# CHECK-NEXT: ('sh_link', 0x00000000)
+# CHECK-NEXT: ('sh_info', 0x00000000)
+# CHECK-NEXT: ('sh_addralign', 0x00000001)
+# CHECK-NEXT: ('sh_entsize', 0x00000000)
+# CHECK-NEXT: ('_section_data', '05')
+# CHECK-NEXT: ),
diff --git a/test/MC/COFF/align-nops.s b/test/MC/COFF/align-nops.s
new file mode 100644
index 0000000..2971ec6
--- /dev/null
+++ b/test/MC/COFF/align-nops.s
@@ -0,0 +1,50 @@
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s -o - | coff-dump.py | FileCheck %s
+
+// Test that we get optimal nops in text
+ .text
+f0:
+ .long 0
+ .align 8, 0x90
+ .long 0
+ .align 8
+
+// But not in another section
+ .data
+ .long 0
+ .align 8, 0x90
+ .long 0
+ .align 8
+
+//CHECK: Name = .text
+//CHECK-NEXT: VirtualSize
+//CHECK-NEXT: VirtualAddress
+//CHECK-NEXT: SizeOfRawData = 16
+//CHECK-NEXT: PointerToRawData
+//CHECK-NEXT: PointerToRelocations
+//CHECK-NEXT: PointerToLineNumbers
+//CHECK-NEXT: NumberOfRelocations
+//CHECK-NEXT: NumberOfLineNumbers
+//CHECK-NEXT: Charateristics = 0x60400020
+//CHECK-NEXT: IMAGE_SCN_CNT_CODE
+//CHECK-NEXT: IMAGE_SCN_ALIGN_8BYTES
+//CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE
+//CHECK-NEXT: IMAGE_SCN_MEM_READ
+//CHECK-NEXT: SectionData =
+//CHECK-NEXT: 00 00 00 00 0F 1F 40 00 - 00 00 00 00 0F 1F 40 00
+
+//CHECK: Name = .data
+//CHECK-NEXT: VirtualSize
+//CHECK-NEXT: VirtualAddress
+//CHECK-NEXT: SizeOfRawData = 16
+//CHECK-NEXT: PointerToRawData
+//CHECK-NEXT: PointerToRelocations
+//CHECK-NEXT: PointerToLineNumbers
+//CHECK-NEXT: NumberOfRelocations
+//CHECK-NEXT: NumberOfLineNumbers
+//CHECK-NEXT: Charateristics = 0xC0400040
+//CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA
+//CHECK-NEXT: IMAGE_SCN_ALIGN_8BYTES
+//CHECK-NEXT: IMAGE_SCN_MEM_READ
+//CHECK-NEXT: IMAGE_SCN_MEM_WRITE
+//CHECK-NEXT: SectionData =
+//CHECK-NEXT: 00 00 00 00 90 90 90 90 - 00 00 00 00 00 00 00 00
diff --git a/test/MC/COFF/basic-coff.ll b/test/MC/COFF/basic-coff.ll
deleted file mode 100644
index 1e67db0..0000000
--- a/test/MC/COFF/basic-coff.ll
+++ /dev/null
@@ -1,136 +0,0 @@
-; This test checks that the COFF object emitter works for the most basic
-; programs.
-
-; RUN: llc -filetype=obj -mtriple i686-pc-win32 %s -o %t
-; RUN: coff-dump.py %abs_tmp | FileCheck %s
-; RUN: llc -filetype=obj -mtriple x86_64-pc-win32 %s -o %t
-
-@.str = private constant [12 x i8] c"Hello World\00" ; <[12 x i8]*> [#uses=1]
-
-define i32 @main() nounwind {
-entry:
- %call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([12 x i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
- ret i32 0
-}
-
-declare i32 @printf(i8* nocapture, ...) nounwind
-
-; CHECK: {
-; CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
-; CHECK: NumberOfSections = 2
-; CHECK: TimeDateStamp = {{[0-9]+}}
-; CHECK: PointerToSymbolTable = 0x99
-; CHECK: NumberOfSymbols = 7
-; CHECK: SizeOfOptionalHeader = 0
-; CHECK: Characteristics = 0x0
-; CHECK: Sections = [
-; CHECK: 0 = {
-; CHECK: Name = .text
-; CHECK: VirtualSize = 0
-; CHECK: VirtualAddress = 0
-; CHECK: SizeOfRawData = 21
-; CHECK: PointerToRawData = 0x64
-; CHECK: PointerToRelocations = 0x79
-; CHECK: PointerToLineNumbers = 0x0
-; CHECK: NumberOfRelocations = 2
-; CHECK: NumberOfLineNumbers = 0
-; CHECK: Charateristics = 0x60500020
-; CHECK: IMAGE_SCN_CNT_CODE
-; CHECK: IMAGE_SCN_ALIGN_16BYTES
-; CHECK: IMAGE_SCN_MEM_EXECUTE
-; CHECK: IMAGE_SCN_MEM_READ
-; CHECK: SectionData =
-; CHECK: 83 EC 04 C7 04 24 00 00 - 00 00 E8 00 00 00 00 31 |.....$.........1|
-; CHECK: C0 83 C4 04 C3 |.....|
-; CHECK: Relocations = [
-; CHECK: 0 = {
-; CHECK: VirtualAddress = 0x6
-; CHECK: SymbolTableIndex = 5
-; CHECK: Type = IMAGE_REL_I386_DIR32 (6)
-; CHECK: SymbolName = _main
-; CHECK: }
-; CHECK: 1 = {
-; CHECK: VirtualAddress = 0xB
-; CHECK: SymbolTableIndex = 6
-; CHECK: Type = IMAGE_REL_I386_REL32 (20)
-; CHECK: SymbolName = L_.str
-; CHECK: }
-; CHECK: ]
-; CHECK: }
-; CHECK: 1 = {
-; CHECK: Name = .data
-; CHECK: VirtualSize = 0
-; CHECK: VirtualAddress = 0
-; CHECK: SizeOfRawData = 12
-; CHECK: PointerToRawData = 0x8D
-; CHECK: PointerToRelocations = 0x0
-; CHECK: PointerToLineNumbers = 0x0
-; CHECK: NumberOfRelocations = 0
-; CHECK: NumberOfLineNumbers = 0
-; CHECK: Charateristics = 0xC0100040
-; CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
-; CHECK: IMAGE_SCN_ALIGN_1BYTES
-; CHECK: IMAGE_SCN_MEM_READ
-; CHECK: IMAGE_SCN_MEM_WRITE
-; CHECK: SectionData =
-; CHECK: 48 65 6C 6C 6F 20 57 6F - 72 6C 64 00 |Hello World.|
-; CHECK: Relocations = None
-; CHECK: }
-; CHECK: ]
-; CHECK: Symbols = [
-; CHECK: 0 = {
-; CHECK: Name = .text
-; CHECK: Value = 0
-; CHECK: SectionNumber = 1
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 1
-; CHECK: AuxillaryData =
-; CHECK: 15 00 00 00 02 00 00 00 - 00 00 00 00 01 00 00 00 |................|
-; CHECK: 00 00 |..|
-; CHECK: }
-; CHECK: 1 = {
-; CHECK: Name = .data
-; CHECK: Value = 0
-; CHECK: SectionNumber = 2
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 1
-; CHECK: AuxillaryData =
-; CHECK: 0C 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|
-; CHECK: 00 00 |..|
-; CHECK: }
-; CHECK: 2 = {
-; CHECK: Name = _main
-; CHECK: Value = 0
-; CHECK: SectionNumber = 1
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-; CHECK: }
-; CHECK: 3 = {
-; CHECK: Name = L_.str
-; CHECK: Value = 0
-; CHECK: SectionNumber = 2
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-; CHECK: }
-; CHECK: 4 = {
-; CHECK: Name = _printf
-; CHECK: Value = 0
-; CHECK: SectionNumber = 0
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-; CHECK: }
-; CHECK: ]
-; CHECK: }
diff --git a/test/MC/COFF/basic-coff.s b/test/MC/COFF/basic-coff.s
new file mode 100644
index 0000000..0c86582
--- /dev/null
+++ b/test/MC/COFF/basic-coff.s
@@ -0,0 +1,133 @@
+// This test checks that the COFF object emitter works for the most basic
+// programs.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s
+
+.def _main;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _main
+ .align 16, 0x90
+_main: # @main
+# BB#0: # %entry
+ subl $4, %esp
+ movl $L_.str, (%esp)
+ calll _printf
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .data
+L_.str: # @.str
+ .asciz "Hello World"
+
+// CHECK: {
+// CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
+// CHECK: NumberOfSections = 2
+// CHECK: TimeDateStamp = {{[0-9]+}}
+// CHECK: PointerToSymbolTable = 0x{{[0-9A-F]+}}
+// CHECK: NumberOfSymbols = 6
+// CHECK: SizeOfOptionalHeader = 0
+// CHECK: Characteristics = 0x0
+// CHECK: Sections = [
+// CHECK: 1 = {
+// CHECK: Name = .text
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x{{[0-9A-F]+}}
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 2
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0x60500020
+// CHECK: IMAGE_SCN_CNT_CODE
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_MEM_EXECUTE
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: SectionData =
+// CHECK: Relocations = [
+// CHECK: 0 = {
+// CHECK: VirtualAddress = 0x{{[0-9A-F]+}}
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 1 = {
+// CHECK: VirtualAddress = 0x{{[0-9A-F]+}}
+// CHECK: SymbolTableIndex = 5
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _printf
+// CHECK: }
+// CHECK: ]
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x0
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 0
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0xC0300040
+// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
+// CHECK: IMAGE_SCN_ALIGN_4BYTES
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: IMAGE_SCN_MEM_WRITE
+// CHECK: SectionData =
+// CHECK: 48 65 6C 6C 6F 20 57 6F - 72 6C 64 00 |Hello World.|
+// CHECK: Relocations = None
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols = [
+// CHECK: 0 = {
+// CHECK: Name = .text
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 15 00 00 00 02 00 00 00 - 00 00 00 00 01 00 00 00 |................|
+// CHECK: 00 00 |..|
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: Value = 0
+// CHECK: SectionNumber = 2
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 0C 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|
+// CHECK: 00 00 |..|
+// CHECK: }
+// CHECK: 4 = {
+// CHECK: Name = _main
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+// CHECK: }
+// CHECK: 5 = {
+// CHECK: Name = _printf
+// CHECK: Value = 0
+// CHECK: SectionNumber = 0
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+// CHECK: }
+// CHECK: ]
+// CHECK: }
diff --git a/test/MC/COFF/bss.s b/test/MC/COFF/bss.s
new file mode 100644
index 0000000..f44225b
--- /dev/null
+++ b/test/MC/COFF/bss.s
@@ -0,0 +1,15 @@
+// The purpose of this test is to verify that bss sections are emited correctly.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s
+
+ .bss
+ .globl _g0
+ .align 4
+_g0:
+ .long 0
+
+// CHECK: Name = .bss
+// CHECK-NEXT: VirtualSize = 0
+// CHECK-NEXT: VirtualAddress = 0
+// CHECK-NEXT: SizeOfRawData = 4
diff --git a/test/MC/COFF/dg.exp b/test/MC/COFF/dg.exp
index 7b7bd4e..d46d700 100644
--- a/test/MC/COFF/dg.exp
+++ b/test/MC/COFF/dg.exp
@@ -1,5 +1,5 @@
load_lib llvm.exp
if { [llvm_supports_target X86] } {
- RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll}]]
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,s}]]
}
diff --git a/test/MC/COFF/module-asm.ll b/test/MC/COFF/module-asm.ll
new file mode 100644
index 0000000..9c6d00d
--- /dev/null
+++ b/test/MC/COFF/module-asm.ll
@@ -0,0 +1,26 @@
+; The purpose of this test is to verify that various module level assembly
+; constructs work.
+
+; RUN: llc -filetype=obj -mtriple i686-pc-win32 %s -o - | coff-dump.py | FileCheck %s
+; RUN: llc -filetype=obj -mtriple x86_64-pc-win32 %s -o - | coff-dump.py | FileCheck %s
+
+module asm ".text"
+module asm "_foo:"
+module asm " ret"
+
+; CHECK: Name = .text
+; CHECK-NEXT: VirtualSize = 0
+; CHECK-NEXT: VirtualAddress = 0
+; CHECK-NEXT: SizeOfRawData = {{[0-9]+}}
+; CHECK-NEXT: PointerToRawData = 0x{{[0-9A-F]+}}
+; CHECK-NEXT: PointerToRelocations = 0x{{[0-9A-F]+}}
+; CHECK-NEXT: PointerToLineNumbers = 0x0
+; CHECK-NEXT: NumberOfRelocations = 0
+; CHECK-NEXT: NumberOfLineNumbers = 0
+; CHECK-NEXT: Charateristics = 0x60300020
+; CHECK-NEXT: IMAGE_SCN_CNT_CODE
+; CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES
+; CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE
+; CHECK-NEXT: IMAGE_SCN_MEM_READ
+; CHECK-NEXT: SectionData =
+; CHECK-NEXT: C3
diff --git a/test/MC/COFF/simple-fixups.s b/test/MC/COFF/simple-fixups.s
new file mode 100644
index 0000000..f86f4a9
--- /dev/null
+++ b/test/MC/COFF/simple-fixups.s
@@ -0,0 +1,50 @@
+// The purpose of this test is to verify that we do not produce unneeded
+// relocations when symbols are in the same section and we know their offset.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s
+
+ .def _foo;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _foo
+ .align 16, 0x90
+_foo: # @foo
+# BB#0: # %e
+ .align 16, 0x90
+LBB0_1: # %i
+ # =>This Inner Loop Header: Depth=1
+ jmp LBB0_1
+
+ .def _bar;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _bar
+ .align 16, 0x90
+_bar: # @bar
+# BB#0: # %e
+ .align 16, 0x90
+LBB1_1: # %i
+ # =>This Inner Loop Header: Depth=1
+ jmp LBB1_1
+
+ .def _baz;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _baz
+ .align 16, 0x90
+_baz: # @baz
+# BB#0: # %e
+ subl $4, %esp
+Ltmp0:
+ calll _baz
+ addl $4, %esp
+ ret
+
+// CHECK: Sections = [
+// CHECK-NOT: NumberOfRelocations = {{[^0]}}
+// CHECK: Symbols = [
diff --git a/test/MC/COFF/switch-relocations.ll b/test/MC/COFF/switch-relocations.ll
index 300c107..faf185f 100644
--- a/test/MC/COFF/switch-relocations.ll
+++ b/test/MC/COFF/switch-relocations.ll
@@ -3,6 +3,9 @@
; This test case was reduced from Lua/lapi.c.
+; This test has yet to be converted to assembly becase llvm-mc cannot read
+; x86-64 COFF code yet.
+
; RUN: llc -filetype=obj -mtriple i686-pc-win32 %s -o %t
; RUN: llc -filetype=obj -mtriple x86_64-pc-win32 %s -o %t
diff --git a/test/MC/COFF/symbol-alias.s b/test/MC/COFF/symbol-alias.s
new file mode 100644
index 0000000..ede6b53
--- /dev/null
+++ b/test/MC/COFF/symbol-alias.s
@@ -0,0 +1,62 @@
+// The purpose of this test is to verify that symbol aliases
+// (@foo = alias <type> @bar) generate the correct entries in the symbol table.
+// They should be identical except for the name.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | coff-dump.py | FileCheck %s
+
+ .def _foo;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _foo
+ .align 16, 0x90
+_foo: # @foo
+# BB#0: # %entry
+ ret
+
+ .data
+ .globl _bar # @bar
+ .align 4
+_bar:
+ .long 0 # 0x0
+
+
+ .globl _foo_alias
+_foo_alias = _foo
+ .globl _bar_alias
+_bar_alias = _bar
+
+// CHECK: Name = {{_?}}foo
+// CHECK-NEXT: Value = [[FOO_VALUE:.*$]]
+// CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER:.*$]]
+// CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE:.*$]]
+// CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE:.*$]]
+// CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS:.*$]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+// CHECK: Name = {{_?}}bar
+// CHECK-NEXT: Value = [[BAR_VALUE:.*$]]
+// CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER:.*$]]
+// CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE:.*$]]
+// CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE:.*$]]
+// CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS:.*$]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS:.*$]]
+
+// CHECK: Name = {{_?}}foo_alias
+// CHECK-NEXT: Value = [[FOO_VALUE]]
+// CHECK-NEXT: SectionNumber = [[FOO_SECTION_NUMBER]]
+// CHECK-NEXT: SimpleType = [[FOO_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType = [[FOO_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass = [[FOO_STORAGE_CLASS]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[FOO_NUMBER_OF_AUX_SYMBOLS]]
+
+// CHECK: Name = {{_?}}bar_alias
+// CHECK-NEXT: Value = [[BAR_VALUE]]
+// CHECK-NEXT: SectionNumber = [[BAR_SECTION_NUMBER]]
+// CHECK-NEXT: SimpleType = [[BAR_SIMPLE_TYPE]]
+// CHECK-NEXT: ComplexType = [[BAR_COMPLEX_TYPE]]
+// CHECK-NEXT: StorageClass = [[BAR_STORAGE_CLASS]]
+// CHECK-NEXT: NumberOfAuxSymbols = [[BAR_NUMBER_OF_AUX_SYMBOLS]]
+
diff --git a/test/MC/COFF/symbol-fragment-offset.ll b/test/MC/COFF/symbol-fragment-offset.ll
deleted file mode 100644
index af7ace1..0000000
--- a/test/MC/COFF/symbol-fragment-offset.ll
+++ /dev/null
@@ -1,182 +0,0 @@
-; The purpose of this test is to see if the COFF object writer is emitting the
-; proper relocations for multiple pieces of data in a single data fragment.
-
-; RUN: llc -filetype=obj -mtriple i686-pc-win32 %s -o %t
-; RUN: coff-dump.py %abs_tmp | FileCheck %s
-; RUN: llc -filetype=obj -mtriple x86_64-pc-win32 %s -o %t
-
-@.str = private constant [7 x i8] c"Hello \00" ; <[7 x i8]*> [#uses=1]
-@str = internal constant [7 x i8] c"World!\00" ; <[7 x i8]*> [#uses=1]
-
-define i32 @main() nounwind {
-entry:
- %call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
- %puts = tail call i32 @puts(i8* getelementptr inbounds ([7 x i8]* @str, i32 0, i32 0)) ; <i32> [#uses=0]
- ret i32 0
-}
-
-declare i32 @printf(i8* nocapture, ...) nounwind
-
-declare i32 @puts(i8* nocapture) nounwind
-
-; CHECK: {
-; CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
-; CHECK: NumberOfSections = 2
-; CHECK: TimeDateStamp = {{[0-9]+}}
-; CHECK: PointerToSymbolTable = 0xBB
-; CHECK: NumberOfSymbols = 9
-; CHECK: SizeOfOptionalHeader = 0
-; CHECK: Characteristics = 0x0
-; CHECK: Sections = [
-; CHECK: 0 = {
-; CHECK: Name = .text
-; CHECK: VirtualSize = 0
-; CHECK: VirtualAddress = 0
-; CHECK: SizeOfRawData = 33
-; CHECK: PointerToRawData = 0x64
-; CHECK: PointerToRelocations = 0x85
-; CHECK: PointerToLineNumbers = 0x0
-; CHECK: NumberOfRelocations = 4
-; CHECK: NumberOfLineNumbers = 0
-; CHECK: Charateristics = 0x60500020
-; CHECK: IMAGE_SCN_CNT_CODE
-; CHECK: IMAGE_SCN_ALIGN_16BYTES
-; CHECK: IMAGE_SCN_MEM_EXECUTE
-; CHECK: IMAGE_SCN_MEM_READ
-; CHECK: SectionData =
-; CHECK: 83 EC 04 C7 04 24 00 00 - 00 00 E8 00 00 00 00 C7 |.....$..........|
-; CHECK: 04 24 00 00 00 00 E8 00 - 00 00 00 31 C0 83 C4 04 |.$.........1....|
-; CHECK: C3 |.|
-
-; CHECK: Relocations = [
-; CHECK: 0 = {
-; CHECK: VirtualAddress = 0x6
-; CHECK: SymbolTableIndex = 5
-; CHECK: Type = IMAGE_REL_I386_DIR32 (6)
-; CHECK: SymbolName = _main
-; CHECK: }
-; CHECK: 1 = {
-; CHECK: VirtualAddress = 0xB
-; CHECK: SymbolTableIndex = 6
-; CHECK: Type = IMAGE_REL_I386_REL32 (20)
-; CHECK: SymbolName = L_.str
-; CHECK: }
-; CHECK: 2 = {
-; CHECK: VirtualAddress = 0x12
-; CHECK: SymbolTableIndex = 7
-; CHECK: Type = IMAGE_REL_I386_DIR32 (6)
-; CHECK: SymbolName = _printf
-; CHECK: }
-; CHECK: 3 = {
-; CHECK: VirtualAddress = 0x17
-; CHECK: SymbolTableIndex = 8
-; CHECK: Type = IMAGE_REL_I386_REL32 (20)
-; CHECK: SymbolName = _str
-; CHECK: }
-; CHECK: ]
-; CHECK: }
-; CHECK: 1 = {
-; CHECK: Name = .data
-; CHECK: VirtualSize = 0
-; CHECK: VirtualAddress = 0
-; CHECK: SizeOfRawData = 14
-; CHECK: PointerToRawData = 0xAD
-; CHECK: PointerToRelocations = 0x0
-; CHECK: PointerToLineNumbers = 0x0
-; CHECK: NumberOfRelocations = 0
-; CHECK: NumberOfLineNumbers = 0
-; CHECK: Charateristics = 0xC0100040
-; CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
-; CHECK: IMAGE_SCN_ALIGN_1BYTES
-; CHECK: IMAGE_SCN_MEM_READ
-; CHECK: IMAGE_SCN_MEM_WRITE
-; CHECK: SectionData =
-; CHECK: 48 65 6C 6C 6F 20 00 57 - 6F 72 6C 64 21 00 |Hello .World!.|
-
-; CHECK: Relocations = None
-; CHECK: }
-; CHECK: ]
-; CHECK: Symbols = [
-; CHECK: 0 = {
-; CHECK: Name = .text
-; CHECK: Value = 0
-; CHECK: SectionNumber = 1
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 1
-; CHECK: AuxillaryData =
-; CHECK: 21 00 00 00 04 00 00 00 - 00 00 00 00 01 00 00 00 |!...............|
-; CHECK: 00 00 |..|
-
-; CHECK: }
-; CHECK: 1 = {
-; CHECK: Name = .data
-; CHECK: Value = 0
-; CHECK: SectionNumber = 2
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 1
-; CHECK: AuxillaryData =
-; CHECK: 0E 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |................|
-; CHECK: 00 00 |..|
-
-; CHECK: }
-; CHECK: 2 = {
-; CHECK: Name = _main
-; CHECK: Value = 0
-; CHECK: SectionNumber = 1
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-
-; CHECK: }
-; CHECK: 3 = {
-; CHECK: Name = L_.str
-; CHECK: Value = 0
-; CHECK: SectionNumber = 2
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-
-; CHECK: }
-; CHECK: 4 = {
-; CHECK: Name = _printf
-; CHECK: Value = 0
-; CHECK: SectionNumber = 0
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-
-; CHECK: }
-; CHECK: 5 = {
-; CHECK: Name = _str
-; CHECK: Value = 7
-; CHECK: SectionNumber = 2
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-
-; CHECK: }
-; CHECK: 6 = {
-; CHECK: Name = _puts
-; CHECK: Value = 0
-; CHECK: SectionNumber = 0
-; CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
-; CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
-; CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
-; CHECK: NumberOfAuxSymbols = 0
-; CHECK: AuxillaryData =
-
-; CHECK: }
-; CHECK: ]
-; CHECK: }
diff --git a/test/MC/COFF/symbol-fragment-offset.s b/test/MC/COFF/symbol-fragment-offset.s
new file mode 100644
index 0000000..c314ac2
--- /dev/null
+++ b/test/MC/COFF/symbol-fragment-offset.s
@@ -0,0 +1,187 @@
+// The purpose of this test is to see if the COFF object writer is emitting the
+// proper relocations for multiple pieces of data in a single data fragment.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | coff-dump.py | FileCheck %s
+// I WOULD RUN, BUT THIS FAILS: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s
+
+.def _main;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _main
+ .align 16, 0x90
+_main: # @main
+# BB#0: # %entry
+ subl $4, %esp
+ movl $L_.str0, (%esp)
+ calll _printf
+ movl $L_.str1, (%esp)
+ calll _puts
+ movl $L_.str2, (%esp)
+ calll _puts
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .data
+L_.str0: # @.str0
+ .asciz "Hello "
+
+L_.str1: # @.str1
+ .asciz "World!"
+
+ .align 16 # @.str2
+L_.str2:
+ .asciz "I'm The Last Line."
+
+// CHECK: {
+// CHECK: MachineType = IMAGE_FILE_MACHINE_I386 (0x14C)
+// CHECK: NumberOfSections = 2
+// CHECK: TimeDateStamp = {{[0-9]+}}
+// CHECK: PointerToSymbolTable = 0x{{[0-9A-F]+}}
+// CHECK: NumberOfSymbols = 7
+// CHECK: SizeOfOptionalHeader = 0
+// CHECK: Characteristics = 0x0
+// CHECK: Sections = [
+// CHECK: 1 = {
+// CHECK: Name = .text
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x{{[0-9A-F]+}}
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 6
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0x60500020
+// CHECK: IMAGE_SCN_CNT_CODE
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_MEM_EXECUTE
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: SectionData =
+// CHECK: 83 EC 04 C7 04 24 00 00 - 00 00 E8 00 00 00 00 C7 |.....$..........|
+// CHECK: 04 24 07 00 00 00 E8 00 - 00 00 00 C7 04 24 10 00 |.$...........$..|
+// CHECK: 00 00 E8 00 00 00 00 31 - C0 83 C4 04 C3 |.......1.....|
+// CHECK: Relocations = [
+// CHECK: 0 = {
+// CHECK: VirtualAddress = 0x6
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 1 = {
+// CHECK: VirtualAddress = 0xB
+// CHECK: SymbolTableIndex = 5
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _printf
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: VirtualAddress = 0x12
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 3 = {
+// CHECK: VirtualAddress = 0x17
+// CHECK: SymbolTableIndex = 6
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _puts
+// CHECK: }
+// CHECK: 4 = {
+// CHECK: VirtualAddress = 0x1E
+// CHECK: SymbolTableIndex = 2
+// CHECK: Type = IMAGE_REL_I386_DIR32 (6)
+// CHECK: SymbolName = .data
+// CHECK: }
+// CHECK: 5 = {
+// CHECK: VirtualAddress = 0x23
+// CHECK: SymbolTableIndex = 6
+// CHECK: Type = IMAGE_REL_I386_REL32 (20)
+// CHECK: SymbolName = _puts
+// CHECK: }
+// CHECK: ]
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: VirtualSize = 0
+// CHECK: VirtualAddress = 0
+// CHECK: SizeOfRawData = {{[0-9]+}}
+// CHECK: PointerToRawData = 0x{{[0-9A-F]+}}
+// CHECK: PointerToRelocations = 0x0
+// CHECK: PointerToLineNumbers = 0x0
+// CHECK: NumberOfRelocations = 0
+// CHECK: NumberOfLineNumbers = 0
+// CHECK: Charateristics = 0xC0500040
+// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
+// CHECK: IMAGE_SCN_ALIGN_16BYTES
+// CHECK: IMAGE_SCN_MEM_READ
+// CHECK: IMAGE_SCN_MEM_WRITE
+// CHECK: SectionData =
+// CHECK: 48 65 6C 6C 6F 20 00 57 - 6F 72 6C 64 21 00 00 00 |Hello .World!...|
+// CHECK: 49 27 6D 20 54 68 65 20 - 4C 61 73 74 20 4C 69 6E |I'm The Last Lin|
+// CHECK: 65 2E 00 |e..|
+// CHECK: Relocations = None
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols = [
+// CHECK: 0 = {
+// CHECK: Name = .text
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 2D 00 00 00 06 00 00 00 - 00 00 00 00 01 00 00 00 |-...............|
+// CHECK: 00 00 |..|
+
+// CHECK: }
+// CHECK: 2 = {
+// CHECK: Name = .data
+// CHECK: Value = 0
+// CHECK: SectionNumber = 2
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_STATIC (3)
+// CHECK: NumberOfAuxSymbols = 1
+// CHECK: AuxillaryData =
+// CHECK: 23 00 00 00 00 00 00 00 - 00 00 00 00 02 00 00 00 |#...............|
+// CHECK: 00 00 |..|
+
+// CHECK: }
+// CHECK: 4 = {
+// CHECK: Name = _main
+// CHECK: Value = 0
+// CHECK: SectionNumber = 1
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_FUNCTION (2)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+
+// CHECK: 5 = {
+// CHECK: Name = _printf
+// CHECK: Value = 0
+// CHECK: SectionNumber = 0
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+
+// CHECK: }
+// CHECK: 6 = {
+// CHECK: Name = _puts
+// CHECK: Value = 0
+// CHECK: SectionNumber = 0
+// CHECK: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK: NumberOfAuxSymbols = 0
+// CHECK: AuxillaryData =
+
+// CHECK: }
+// CHECK: ]
+// CHECK: }
diff --git a/test/MC/COFF/weak.s b/test/MC/COFF/weak.s
new file mode 100644
index 0000000..a240d71
--- /dev/null
+++ b/test/MC/COFF/weak.s
@@ -0,0 +1,51 @@
+// This tests that default-null weak symbols (a GNU extension) are created
+// properly via the .weak directive.
+
+// RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %s | coff-dump.py | FileCheck %s
+
+ .def _main;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl _main
+ .align 16, 0x90
+_main: # @main
+# BB#0: # %entry
+ subl $4, %esp
+ movl $_test_weak, %eax
+ testl %eax, %eax
+ je LBB0_2
+# BB#1: # %if.then
+ calll _test_weak
+ movl $1, %eax
+ addl $4, %esp
+ ret
+LBB0_2: # %return
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+
+ .weak _test_weak
+
+// CHECK: Symbols = [
+
+// CHECK: Name = _test_weak
+// CHECK-NEXT: Value = 0
+// CHECK-NEXT: SectionNumber = 0
+// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_WEAK_EXTERNAL (105)
+// CHECK-NEXT: NumberOfAuxSymbols = 1
+// CHECK-NEXT: AuxillaryData =
+// CHECK-NEXT: 05 00 00 00 02 00 00 00 - 00 00 00 00 00 00 00 00 |................|
+// CHECK-NEXT: 00 00 |..|
+
+// CHECK: Name = .weak._test_weak.default
+// CHECK-NEXT: Value = 0
+// CHECK-NEXT: SectionNumber = 65535
+// CHECK-NEXT: SimpleType = IMAGE_SYM_TYPE_NULL (0)
+// CHECK-NEXT: ComplexType = IMAGE_SYM_DTYPE_NULL (0)
+// CHECK-NEXT: StorageClass = IMAGE_SYM_CLASS_EXTERNAL (2)
+// CHECK-NEXT: NumberOfAuxSymbols = 0
+// CHECK-NEXT: AuxillaryData =
diff --git a/test/MC/Disassembler/arm-tests.txt b/test/MC/Disassembler/ARM/arm-tests.txt
index 0b4c297..0f6aeb7 100644
--- a/test/MC/Disassembler/arm-tests.txt
+++ b/test/MC/Disassembler/ARM/arm-tests.txt
@@ -9,6 +9,9 @@
# CHECK: bfi r8, r0, #16, #1
0x10 0x88 0xd0 0xe7
+# CHECK: mov pc, lr
+0x0e 0xf0 0xa0 0xe1
+
# CHECK: cmn r0, #1
0x01 0x00 0x70 0xe3
@@ -45,13 +48,13 @@
# CHECK: lsls r0, r2, #31
0x82 0x0f 0xb0 0xe1
-# CHECK: mcr2 p0, #0, r2, cr1, cr0, #7
+# CHECK: mcr2 p0, #0, r2, c1, c0, #7
0xf0 0x20 0x01 0xfe
# CHECK: movt r8, #65535
0xff 0x8f 0x4f 0xe3
-# CHECK: mvnpls r7, #245, 2
+# CHECK: mvnspl r7, #245, 2
0xf5 0x71 0xf0 0x53
# CHECK-NOT: orr r7, r8, r7, rrx #0
@@ -81,8 +84,8 @@
# CHECK: rsbeq r0, r2, r0
0x00 0x00 0x62 0x00
-# CHECK-NOT: rsceqs r0, r0, r1, lsl #0
-# CHECK: rsceqs r0, r0, r1
+# CHECK-NOT: rscseq r0, r0, r1, lsl #0
+# CHECK: rscseq r0, r0, r1
0x01 0x00 0xf0 0x00
# CHECK: sbcs r0, pc, #1
@@ -109,3 +112,21 @@
# CHECK: usat r8, #0, r10, asr #32
0x5a 0x80 0xe0 0xe6
+
+# CHECK: setend be
+0x00 0x02 0x01 0xf1
+
+# CHECK: setend le
+0x00 0x00 0x01 0xf1
+
+# CHECK: cpsie aif
+0xc0 0x01 0x08 0xf1
+
+# CHECK: cps #15
+0x0f 0x00 0x02 0xf1
+
+# CHECK: cpsie if, #10
+0xca 0x00 0x0a 0xf1
+
+# CHECK: msr cpsr_fc, r0
+0x00 0xf0 0x29 0xe1
diff --git a/test/MC/Disassembler/dg.exp b/test/MC/Disassembler/ARM/dg.exp
index fc2f17a..fc2f17a 100644
--- a/test/MC/Disassembler/dg.exp
+++ b/test/MC/Disassembler/ARM/dg.exp
diff --git a/test/MC/Disassembler/neon-tests.txt b/test/MC/Disassembler/ARM/neon-tests.txt
index 826ff22..eb9adb7 100644
--- a/test/MC/Disassembler/neon-tests.txt
+++ b/test/MC/Disassembler/ARM/neon-tests.txt
@@ -9,10 +9,12 @@
# CHECK: vdup.32 q3, d1[0]
0x41 0x6c 0xb4 0xf3
-# VLD1q8_UPD (with ${dst:dregpair} operand)
# CHECK: vld1.8 {d17, d18}, [r6], r5
0x05 0x1a 0x66 0xf4
+# CHECK: vld1.8 {d17, d18, d19}, [r6], r5
+0x05 0x16 0x66 0xf4
+
# CHECK: vld4.8 {d0, d1, d2, d3}, [r2], r7
0x07 0x00 0x22 0xf4
@@ -49,3 +51,11 @@
# CHECK: vtbx.8 d18, {d4, d5, d6}, d7
0x47 0x2a 0xf4 0xf3
+# CHECK: vmov.f32 s0, #5.000000e-01
+0x00 0x0a 0xb6 0xee
+
+# CHECK: vmov.f32 s0, #1.328125e-01
+0x01 0x0a 0xb4 0xee
+
+# CHECK: vmov.f64 d0, #5.000000e-01
+0x00 0x0b 0xb6 0xee
diff --git a/test/MC/Disassembler/thumb-tests.txt b/test/MC/Disassembler/ARM/thumb-tests.txt
index 06d12fe..6dab123 100644
--- a/test/MC/Disassembler/thumb-tests.txt
+++ b/test/MC/Disassembler/ARM/thumb-tests.txt
@@ -46,10 +46,10 @@
# CHECK: pkhbt r2, r4, r6
0xc4 0xea 0x06 0x02
-# CHECK: pop {r2, r4, r6, r8, r10, r12}
+# CHECK: pop.w {r2, r4, r6, r8, r10, r12}
0xbd 0xe8 0x54 0x15
-# CHECK: push {r2, r4, r6, r8, r10, r12}
+# CHECK: push.w {r2, r4, r6, r8, r10, r12}
0x2d 0xe9 0x54 0x15
# CHECK: rsbs r0, r0, #0
@@ -63,7 +63,7 @@
# CHECK: ssat r0, #17, r12
0x0c 0xf3 0x10 0x00
-# CHECK: strd r0, [r7, #64]
+# CHECK: strd r0, r1, [r7, #64]
0xc7 0xe9 0x10 0x01
# CHECK: sub sp, #60
@@ -103,3 +103,18 @@
# IT block end
# CHECK: rsbs r1, r2, #0
0x51 0x42
+
+# CHECK: cpsid.w f
+0xaf 0xf3 0x20 0x86
+
+# CHECK: cps #15
+0xaf 0xf3 0x0f 0x81
+
+# CHECK: cpsie.w if, #10
+0xaf 0xf3 0x6a 0x85
+
+# CHECK: cpsie aif
+0x67 0xb6
+
+# CHECK: msr cpsr_fc, r0
+0x80 0xf3 0x00 0x89
diff --git a/test/MC/Disassembler/MBlaze/dg.exp b/test/MC/Disassembler/MBlaze/dg.exp
new file mode 100644
index 0000000..0be99a3
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/dg.exp
@@ -0,0 +1,6 @@
+load_lib llvm.exp
+
+if { [llvm_supports_target MBlaze] } {
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{txt}]]
+}
+
diff --git a/test/MC/Disassembler/MBlaze/mblaze_branch.txt b/test/MC/Disassembler/MBlaze/mblaze_branch.txt
new file mode 100644
index 0000000..5f40517
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_branch.txt
@@ -0,0 +1,119 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# Branch instructions
+################################################################################
+
+# CHECK: beq r2, r3
+0x9c 0x02 0x18 0x00
+
+# CHECK: bge r2, r3
+0x9c 0xa2 0x18 0x00
+
+# CHECK: bgt r2, r3
+0x9c 0x82 0x18 0x00
+
+# CHECK: ble r2, r3
+0x9c 0x62 0x18 0x00
+
+# CHECK: blt r2, r3
+0x9c 0x42 0x18 0x00
+
+# CHECK: bne r2, r3
+0x9c 0x22 0x18 0x00
+
+# CHECK: beqd r2, r3
+0x9e 0x02 0x18 0x00
+
+# CHECK: bged r2, r3
+0x9e 0xa2 0x18 0x00
+
+# CHECK: bgtd r2, r3
+0x9e 0x82 0x18 0x00
+
+# CHECK: bled r2, r3
+0x9e 0x62 0x18 0x00
+
+# CHECK: bltd r2, r3
+0x9e 0x42 0x18 0x00
+
+# CHECK: bned r2, r3
+0x9e 0x22 0x18 0x00
+
+# CHECK: br r3
+0x98 0x00 0x18 0x00
+
+# CHECK: bra r3
+0x98 0x08 0x18 0x00
+
+# CHECK: brd r3
+0x98 0x10 0x18 0x00
+
+# CHECK: brad r3
+0x98 0x18 0x18 0x00
+
+# CHECK: brld r15, r3
+0x99 0xf4 0x18 0x00
+
+# CHECK: brald r15, r3
+0x99 0xfc 0x18 0x00
+
+# CHECK: brk r15, r3
+0x99 0xec 0x18 0x00
+
+# CHECK: beqi r2, 0
+0xbc 0x02 0x00 0x00
+
+# CHECK: bgei r2, 0
+0xbc 0xa2 0x00 0x00
+
+# CHECK: bgti r2, 0
+0xbc 0x82 0x00 0x00
+
+ # CHECK: blei r2, 0
+0xbc 0x62 0x00 0x00
+
+# CHECK: blti r2, 0
+0xbc 0x42 0x00 0x00
+
+# CHECK: bnei r2, 0
+0xbc 0x22 0x00 0x00
+
+# CHECK: beqid r2, 0
+0xbe 0x02 0x00 0x00
+
+# CHECK: bgeid r2, 0
+0xbe 0xa2 0x00 0x00
+
+# CHECK: bgtid r2, 0
+0xbe 0x82 0x00 0x00
+
+# CHECK: bleid r2, 0
+0xbe 0x62 0x00 0x00
+
+# CHECK: bltid r2, 0
+0xbe 0x42 0x00 0x00
+
+# CHECK: bneid r2, 0
+0xbe 0x22 0x00 0x00
+
+# CHECK: bri 0
+0xb8 0x00 0x00 0x00
+
+# CHECK: brai 0
+0xb8 0x08 0x00 0x00
+
+# CHECK: brid 0
+0xb8 0x10 0x00 0x00
+
+# CHECK: braid 0
+0xb8 0x18 0x00 0x00
+
+# CHECK: brlid r15, 0
+0xb9 0xf4 0x00 0x00
+
+# CHECK: bralid r15, 0
+0xb9 0xfc 0x00 0x00
+
+# CHECK: brki r15, 0
+0xb9 0xec 0x00 0x00
diff --git a/test/MC/Disassembler/MBlaze/mblaze_fpu.txt b/test/MC/Disassembler/MBlaze/mblaze_fpu.txt
new file mode 100644
index 0000000..0fb7abc
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_fpu.txt
@@ -0,0 +1,47 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# FPU instructions
+################################################################################
+
+# CHECK: fadd r0, r1, r2
+0x58 0x01 0x10 0x00
+
+# CHECK: frsub r0, r1, r2
+0x58 0x01 0x10 0x80
+
+# CHECK: fmul r0, r1, r2
+0x58 0x01 0x11 0x00
+
+# CHECK: fdiv r0, r1, r2
+0x58 0x01 0x11 0x80
+
+# CHECK: fsqrt r0, r1
+0x58 0x01 0x03 0x80
+
+# CHECK: fint r0, r1
+0x58 0x01 0x03 0x00
+
+# CHECK: flt r0, r1
+0x58 0x01 0x02 0x80
+
+# CHECK: fcmp.un r0, r1, r2
+0x58 0x01 0x12 0x00
+
+# CHECK: fcmp.lt r0, r1, r2
+0x58 0x01 0x12 0x10
+
+# CHECK: fcmp.eq r0, r1, r2
+0x58 0x01 0x12 0x20
+
+# CHECK: fcmp.le r0, r1, r2
+0x58 0x01 0x12 0x30
+
+# CHECK: fcmp.gt r0, r1, r2
+0x58 0x01 0x12 0x40
+
+# CHECK: fcmp.ne r0, r1, r2
+0x58 0x01 0x12 0x50
+
+# CHECK: fcmp.ge r0, r1, r2
+0x58 0x01 0x12 0x60
diff --git a/test/MC/Disassembler/MBlaze/mblaze_fsl.txt b/test/MC/Disassembler/MBlaze/mblaze_fsl.txt
new file mode 100644
index 0000000..a12b3b4
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_fsl.txt
@@ -0,0 +1,338 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# FSL instructions
+################################################################################
+
+# CHECK: get r0, rfsl0
+0x6c 0x00 0x00 0x00
+
+# CHECK: nget r0, rfsl0
+0x6c 0x00 0x40 0x00
+
+# CHECK: cget r0, rfsl0
+0x6c 0x00 0x20 0x00
+
+# CHECK: ncget r0, rfsl0
+0x6c 0x00 0x60 0x00
+
+# CHECK: tget r0, rfsl0
+0x6c 0x00 0x10 0x00
+
+# CHECK: tnget r0, rfsl0
+0x6c 0x00 0x50 0x00
+
+# CHECK: tcget r0, rfsl0
+0x6c 0x00 0x30 0x00
+
+# CHECK: tncget r0, rfsl0
+0x6c 0x00 0x70 0x00
+
+# CHECK: aget r0, rfsl0
+0x6c 0x00 0x08 0x00
+
+# CHECK: naget r0, rfsl0
+0x6c 0x00 0x48 0x00
+
+# CHECK: caget r0, rfsl0
+0x6c 0x00 0x28 0x00
+
+# CHECK: ncaget r0, rfsl0
+0x6c 0x00 0x68 0x00
+
+# CHECK: taget r0, rfsl0
+0x6c 0x00 0x18 0x00
+
+# CHECK: tnaget r0, rfsl0
+0x6c 0x00 0x58 0x00
+
+# CHECK: tcaget r0, rfsl0
+0x6c 0x00 0x38 0x00
+
+# CHECK: tncaget r0, rfsl0
+0x6c 0x00 0x78 0x00
+
+# CHECK: eget r0, rfsl0
+0x6c 0x00 0x04 0x00
+
+# CHECK: neget r0, rfsl0
+0x6c 0x00 0x44 0x00
+
+# CHECK: ecget r0, rfsl0
+0x6c 0x00 0x24 0x00
+
+# CHECK: necget r0, rfsl0
+0x6c 0x00 0x64 0x00
+
+# CHECK: teget r0, rfsl0
+0x6c 0x00 0x14 0x00
+
+# CHECK: tneget r0, rfsl0
+0x6c 0x00 0x54 0x00
+
+# CHECK: tecget r0, rfsl0
+0x6c 0x00 0x34 0x00
+
+# CHECK: tnecget r0, rfsl0
+0x6c 0x00 0x74 0x00
+
+# CHECK: eaget r0, rfsl0
+0x6c 0x00 0x0c 0x00
+
+# CHECK: neaget r0, rfsl0
+0x6c 0x00 0x4c 0x00
+
+# CHECK: ecaget r0, rfsl0
+0x6c 0x00 0x2c 0x00
+
+# CHECK: necaget r0, rfsl0
+0x6c 0x00 0x6c 0x00
+
+# CHECK: teaget r0, rfsl0
+0x6c 0x00 0x1c 0x00
+
+# CHECK: tneaget r0, rfsl0
+0x6c 0x00 0x5c 0x00
+
+# CHECK: tecaget r0, rfsl0
+0x6c 0x00 0x3c 0x00
+
+# CHECK: tnecaget r0, rfsl0
+0x6c 0x00 0x7c 0x00
+
+# CHECK: getd r0, r1
+0x4c 0x00 0x08 0x00
+
+# CHECK: ngetd r0, r1
+0x4c 0x00 0x0a 0x00
+
+# CHECK: cgetd r0, r1
+0x4c 0x00 0x09 0x00
+
+# CHECK: ncgetd r0, r1
+0x4c 0x00 0x0b 0x00
+
+# CHECK: tgetd r0, r1
+0x4c 0x00 0x08 0x80
+
+# CHECK: tngetd r0, r1
+0x4c 0x00 0x0a 0x80
+
+# CHECK: tcgetd r0, r1
+0x4c 0x00 0x09 0x80
+
+# CHECK: tncgetd r0, r1
+0x4c 0x00 0x0b 0x80
+
+# CHECK: agetd r0, r1
+0x4c 0x00 0x08 0x40
+
+# CHECK: nagetd r0, r1
+0x4c 0x00 0x0a 0x40
+
+# CHECK: cagetd r0, r1
+0x4c 0x00 0x09 0x40
+
+# CHECK: ncagetd r0, r1
+0x4c 0x00 0x0b 0x40
+
+# CHECK: tagetd r0, r1
+0x4c 0x00 0x08 0xc0
+
+# CHECK: tnagetd r0, r1
+0x4c 0x00 0x0a 0xc0
+
+# CHECK: tcagetd r0, r1
+0x4c 0x00 0x09 0xc0
+
+# CHECK: tncagetd r0, r1
+0x4c 0x00 0x0b 0xc0
+
+# CHECK: egetd r0, r1
+0x4c 0x00 0x08 0x20
+
+# CHECK: negetd r0, r1
+0x4c 0x00 0x0a 0x20
+
+# CHECK: ecgetd r0, r1
+0x4c 0x00 0x09 0x20
+
+# CHECK: necgetd r0, r1
+0x4c 0x00 0x0b 0x20
+
+# CHECK: tegetd r0, r1
+0x4c 0x00 0x08 0xa0
+
+# CHECK: tnegetd r0, r1
+0x4c 0x00 0x0a 0xa0
+
+# CHECK: tecgetd r0, r1
+0x4c 0x00 0x09 0xa0
+
+# CHECK: tnecgetd r0, r1
+0x4c 0x00 0x0b 0xa0
+
+# CHECK: eagetd r0, r1
+0x4c 0x00 0x08 0x60
+
+# CHECK: neagetd r0, r1
+0x4c 0x00 0x0a 0x60
+
+# CHECK: ecagetd r0, r1
+0x4c 0x00 0x09 0x60
+
+# CHECK: necagetd r0, r1
+0x4c 0x00 0x0b 0x60
+
+# CHECK: teagetd r0, r1
+0x4c 0x00 0x08 0xe0
+
+# CHECK: tneagetd r0, r1
+0x4c 0x00 0x0a 0xe0
+
+# CHECK: tecagetd r0, r1
+0x4c 0x00 0x09 0xe0
+
+# CHECK: tnecagetd r0, r1
+0x4c 0x00 0x0b 0xe0
+
+# CHECK: put r0, rfsl0
+0x6c 0x00 0x80 0x00
+
+# CHECK: aput r0, rfsl0
+0x6c 0x00 0x88 0x00
+
+# CHECK: cput r0, rfsl0
+0x6c 0x00 0xa0 0x00
+
+# CHECK: caput r0, rfsl0
+0x6c 0x00 0xa8 0x00
+
+# CHECK: nput r0, rfsl0
+0x6c 0x00 0xc0 0x00
+
+# CHECK: naput r0, rfsl0
+0x6c 0x00 0xc8 0x00
+
+# CHECK: ncput r0, rfsl0
+0x6c 0x00 0xe0 0x00
+
+# CHECK: ncaput r0, rfsl0
+0x6c 0x00 0xe8 0x00
+
+# CHECK: tput rfsl0
+0x6c 0x00 0x90 0x00
+
+# CHECK: taput rfsl0
+0x6c 0x00 0x98 0x00
+
+# CHECK: tcput rfsl0
+0x6c 0x00 0xb0 0x00
+
+# CHECK: tcaput rfsl0
+0x6c 0x00 0xb8 0x00
+
+# CHECK: tnput rfsl0
+0x6c 0x00 0xd0 0x00
+
+# CHECK: tnaput rfsl0
+0x6c 0x00 0xd8 0x00
+
+# CHECK: tncput rfsl0
+0x6c 0x00 0xf0 0x00
+
+# CHECK: tncaput rfsl0
+0x6c 0x00 0xf8 0x00
+
+# CHECK: putd r0, r1
+0x4c 0x00 0x0c 0x00
+
+# CHECK: aputd r0, r1
+0x4c 0x00 0x0c 0x40
+
+# CHECK: cputd r0, r1
+0x4c 0x00 0x0d 0x00
+
+# CHECK: caputd r0, r1
+0x4c 0x00 0x0d 0x40
+
+# CHECK: nputd r0, r1
+0x4c 0x00 0x0e 0x00
+
+# CHECK: naputd r0, r1
+0x4c 0x00 0x0e 0x40
+
+# CHECK: ncputd r0, r1
+0x4c 0x00 0x0f 0x00
+
+# CHECK: ncaputd r0, r1
+0x4c 0x00 0x0f 0x40
+
+# CHECK: tputd r1
+0x4c 0x00 0x0c 0x80
+
+# CHECK: taputd r1
+0x4c 0x00 0x0c 0xc0
+
+# CHECK: tcputd r1
+0x4c 0x00 0x0d 0x80
+
+# CHECK: tcaputd r1
+0x4c 0x00 0x0d 0xc0
+
+# CHECK: tnputd r1
+0x4c 0x00 0x0e 0x80
+
+# CHECK: tnaputd r1
+0x4c 0x00 0x0e 0xc0
+
+# CHECK: tncputd r1
+0x4c 0x00 0x0f 0x80
+
+# CHECK: tncaputd r1
+0x4c 0x00 0x0f 0xc0
+
+# CHECK: get r0, rfsl1
+0x6c 0x00 0x00 0x01
+
+# CHECK: get r0, rfsl2
+0x6c 0x00 0x00 0x02
+
+# CHECK: get r0, rfsl3
+0x6c 0x00 0x00 0x03
+
+# CHECK: get r0, rfsl4
+0x6c 0x00 0x00 0x04
+
+# CHECK: get r0, rfsl5
+0x6c 0x00 0x00 0x05
+
+# CHECK: get r0, rfsl6
+0x6c 0x00 0x00 0x06
+
+# CHECK: get r0, rfsl7
+0x6c 0x00 0x00 0x07
+
+# CHECK: get r0, rfsl8
+0x6c 0x00 0x00 0x08
+
+# CHECK: get r0, rfsl9
+0x6c 0x00 0x00 0x09
+
+# CHECK: get r0, rfsl10
+0x6c 0x00 0x00 0x0a
+
+# CHECK: get r0, rfsl11
+0x6c 0x00 0x00 0x0b
+
+# CHECK: get r0, rfsl12
+0x6c 0x00 0x00 0x0c
+
+# CHECK: get r0, rfsl13
+0x6c 0x00 0x00 0x0d
+
+# CHECK: get r0, rfsl14
+0x6c 0x00 0x00 0x0e
+
+# CHECK: get r0, rfsl15
+0x6c 0x00 0x00 0x0f
diff --git a/test/MC/Disassembler/MBlaze/mblaze_imm.txt b/test/MC/Disassembler/MBlaze/mblaze_imm.txt
new file mode 100644
index 0000000..3833ea8
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_imm.txt
@@ -0,0 +1,121 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# IMM instruction processing
+################################################################################
+
+# CHECK: addi r0, r0, 0
+0x20 0x00 0x00 0x00
+
+# CHECK: addi r0, r0, 1
+0x20 0x00 0x00 0x01
+
+# CHECK: addi r0, r0, 2
+0x20 0x00 0x00 0x02
+
+# CHECK: addi r0, r0, 4
+0x20 0x00 0x00 0x04
+
+# CHECK: addi r0, r0, 8
+0x20 0x00 0x00 0x08
+
+# CHECK: addi r0, r0, 16
+0x20 0x00 0x00 0x10
+
+# CHECK: addi r0, r0, 32
+0x20 0x00 0x00 0x20
+
+# CHECK: addi r0, r0, 64
+0x20 0x00 0x00 0x40
+
+# CHECK: addi r0, r0, 128
+0x20 0x00 0x00 0x80
+
+# CHECK: addi r0, r0, 256
+0x20 0x00 0x01 0x00
+
+# CHECK: addi r0, r0, 512
+0x20 0x00 0x02 0x00
+
+# CHECK: addi r0, r0, 1024
+0x20 0x00 0x04 0x00
+
+# CHECK: addi r0, r0, 2048
+0x20 0x00 0x08 0x00
+
+# CHECK: addi r0, r0, 4096
+0x20 0x00 0x10 0x00
+
+# CHECK: addi r0, r0, 8192
+0x20 0x00 0x20 0x00
+
+# CHECK: addi r0, r0, 16384
+0x20 0x00 0x40 0x00
+
+# CHECK: imm 0
+# CHECK: addi r0, r0, -32768
+0xb0 0x00 0x00 0x00 0x20 0x00 0x80 0x00
+
+# CHECK: imm 1
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x01 0x20 0x00 0x00 0x00
+
+# CHECK: imm 2
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x02 0x20 0x00 0x00 0x00
+
+# CHECK: imm 4
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x04 0x20 0x00 0x00 0x00
+
+# CHECK: imm 8
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x08 0x20 0x00 0x00 0x00
+
+# CHECK: imm 16
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x10 0x20 0x00 0x00 0x00
+
+# CHECK: imm 32
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x20 0x20 0x00 0x00 0x00
+
+# CHECK: imm 64
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x40 0x20 0x00 0x00 0x00
+
+# CHECK: imm 128
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x00 0x80 0x20 0x00 0x00 0x00
+
+# CHECK: imm 256
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x01 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm 512
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x02 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm 1024
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x04 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm 2048
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x08 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm 4096
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x10 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm 8192
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x20 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm 16384
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x40 0x00 0x20 0x00 0x00 0x00
+
+# CHECK: imm -32768
+# CHECK: addi r0, r0, 0
+0xb0 0x00 0x80 0x00 0x20 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/MBlaze/mblaze_memory.txt b/test/MC/Disassembler/MBlaze/mblaze_memory.txt
new file mode 100644
index 0000000..584d61c
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_memory.txt
@@ -0,0 +1,65 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# Memory instructions
+################################################################################
+
+# CHECK: lbu r1, r2, r3
+0xc0 0x22 0x18 0x00
+
+# CHECK: lbur r1, r2, r3
+0xc0 0x22 0x1a 0x00
+
+# CHECK: lbui r1, r2, 28
+0xe0 0x22 0x00 0x1c
+
+# CHECK: lhu r1, r2, r3
+0xc4 0x22 0x18 0x00
+
+# CHECK: lhur r1, r2, r3
+0xc4 0x22 0x1a 0x00
+
+# CHECK: lhui r1, r2, 28
+0xe4 0x22 0x00 0x1c
+
+# CHECK: lw r1, r2, r3
+0xc8 0x22 0x18 0x00
+
+# CHECK: lwr r1, r2, r3
+0xc8 0x22 0x1a 0x00
+
+# CHECK: lwi r1, r2, 28
+0xe8 0x22 0x00 0x1c
+
+# CHECK: lwx r1, r2, r3
+0xc8 0x22 0x1c 0x00
+
+# CHECK: sb r1, r2, r3
+0xd0 0x22 0x18 0x00
+
+# CHECK: sbr r1, r2, r3
+0xd0 0x22 0x1a 0x00
+
+# CHECK: sbi r1, r2, 28
+0xf0 0x22 0x00 0x1c
+
+# CHECK: sh r1, r2, r3
+0xd4 0x22 0x18 0x00
+
+# CHECK: shr r1, r2, r3
+0xd4 0x22 0x1a 0x00
+
+# CHECK: shi r1, r2, 28
+0xf4 0x22 0x00 0x1c
+
+# CHECK: sw r1, r2, r3
+0xd8 0x22 0x18 0x00
+
+# CHECK: swr r1, r2, r3
+0xd8 0x22 0x1a 0x00
+
+# CHECK: swi r1, r2, 28
+0xf8 0x22 0x00 0x1c
+
+# CHECK: swx r1, r2, r3
+0xd8 0x22 0x1c 0x00
diff --git a/test/MC/Disassembler/MBlaze/mblaze_operands.txt b/test/MC/Disassembler/MBlaze/mblaze_operands.txt
new file mode 100644
index 0000000..f0304b1
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_operands.txt
@@ -0,0 +1,197 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# Operands disassembly
+################################################################################
+
+# CHECK: add r0, r0, r0
+0x00 0x00 0x00 0x00
+
+# CHECK: add r1, r1, r1
+0x00 0x21 0x08 0x00
+
+# CHECK: add r2, r2, r2
+0x00 0x42 0x10 0x00
+
+# CHECK: add r3, r3, r3
+0x00 0x63 0x18 0x00
+
+# CHECK: add r4, r4, r4
+0x00 0x84 0x20 0x00
+
+# CHECK: add r5, r5, r5
+0x00 0xa5 0x28 0x00
+
+# CHECK: add r6, r6, r6
+0x00 0xc6 0x30 0x00
+
+# CHECK: add r7, r7, r7
+0x00 0xe7 0x38 0x00
+
+# CHECK: add r8, r8, r8
+0x01 0x08 0x40 0x00
+
+# CHECK: add r9, r9, r9
+0x01 0x29 0x48 0x00
+
+# CHECK: add r10, r10, r10
+0x01 0x4a 0x50 0x00
+
+# CHECK: add r11, r11, r11
+0x01 0x6b 0x58 0x00
+
+# CHECK: add r12, r12, r12
+0x01 0x8c 0x60 0x00
+
+# CHECK: add r13, r13, r13
+0x01 0xad 0x68 0x00
+
+# CHECK: add r14, r14, r14
+0x01 0xce 0x70 0x00
+
+# CHECK: add r15, r15, r15
+0x01 0xef 0x78 0x00
+
+# CHECK: add r16, r16, r16
+0x02 0x10 0x80 0x00
+
+# CHECK: add r17, r17, r17
+0x02 0x31 0x88 0x00
+
+# CHECK: add r18, r18, r18
+0x02 0x52 0x90 0x00
+
+# CHECK: add r19, r19, r19
+0x02 0x73 0x98 0x00
+
+# CHECK: add r20, r20, r20
+0x02 0x94 0xa0 0x00
+
+# CHECK: add r21, r21, r21
+0x02 0xb5 0xa8 0x00
+
+# CHECK: add r22, r22, r22
+0x02 0xd6 0xb0 0x00
+
+# CHECK: add r23, r23, r23
+0x02 0xf7 0xb8 0x00
+
+# CHECK: add r24, r24, r24
+0x03 0x18 0xc0 0x00
+
+# CHECK: add r25, r25, r25
+0x03 0x39 0xc8 0x00
+
+# CHECK: add r26, r26, r26
+0x03 0x5a 0xd0 0x00
+
+# CHECK: add r27, r27, r27
+0x03 0x7b 0xd8 0x00
+
+# CHECK: add r28, r28, r28
+0x03 0x9c 0xe0 0x00
+
+# CHECK: add r29, r29, r29
+0x03 0xbd 0xe8 0x00
+
+# CHECK: add r30, r30, r30
+0x03 0xde 0xf0 0x00
+
+# CHECK: add r31, r31, r31
+0x03 0xff 0xf8 0x00
+
+# CHECK: addi r0, r0, 0
+0x20 0x00 0x00 0x00
+
+# CHECK: addi r0, r0, 1
+0x20 0x00 0x00 0x01
+
+# CHECK: addi r0, r0, 2
+0x20 0x00 0x00 0x02
+
+# CHECK: addi r0, r0, 4
+0x20 0x00 0x00 0x04
+
+# CHECK: addi r0, r0, 8
+0x20 0x00 0x00 0x08
+
+# CHECK: addi r0, r0, 16
+0x20 0x00 0x00 0x10
+
+# CHECK: addi r0, r0, 32
+0x20 0x00 0x00 0x20
+
+# CHECK: addi r0, r0, 64
+0x20 0x00 0x00 0x40
+
+# CHECK: addi r0, r0, 128
+0x20 0x00 0x00 0x80
+
+# CHECK: addi r0, r0, 256
+0x20 0x00 0x01 0x00
+
+# CHECK: addi r0, r0, 512
+0x20 0x00 0x02 0x00
+
+# CHECK: addi r0, r0, 1024
+0x20 0x00 0x04 0x00
+
+# CHECK: addi r0, r0, 2048
+0x20 0x00 0x08 0x00
+
+# CHECK: addi r0, r0, 4096
+0x20 0x00 0x10 0x00
+
+# CHECK: addi r0, r0, 8192
+0x20 0x00 0x20 0x00
+
+# CHECK: addi r0, r0, 16384
+0x20 0x00 0x40 0x00
+
+# CHECK: addi r0, r0, -1
+0x20 0x00 0xff 0xff
+
+# CHECK: addi r0, r0, -2
+0x20 0x00 0xff 0xfe
+
+# CHECK: addi r0, r0, -4
+0x20 0x00 0xff 0xfc
+
+# CHECK: addi r0, r0, -8
+0x20 0x00 0xff 0xf8
+
+# CHECK: addi r0, r0, -16
+0x20 0x00 0xff 0xf0
+
+# CHECK: addi r0, r0, -32
+0x20 0x00 0xff 0xe0
+
+# CHECK: addi r0, r0, -64
+0x20 0x00 0xff 0xc0
+
+# CHECK: addi r0, r0, -128
+0x20 0x00 0xff 0x80
+
+# CHECK: addi r0, r0, -256
+0x20 0x00 0xff 0x00
+
+# CHECK: addi r0, r0, -512
+0x20 0x00 0xfe 0x00
+
+# CHECK: addi r0, r0, -1024
+0x20 0x00 0xfc 0x00
+
+# CHECK: addi r0, r0, -2048
+0x20 0x00 0xf8 0x00
+
+# CHECK: addi r0, r0, -4096
+0x20 0x00 0xf0 0x00
+
+# CHECK: addi r0, r0, -8192
+0x20 0x00 0xe0 0x00
+
+# CHECK: addi r0, r0, -16384
+0x20 0x00 0xc0 0x00
+
+# CHECK: addi r0, r0, -32768
+0x20 0x00 0x80 0x00
diff --git a/test/MC/Disassembler/MBlaze/mblaze_pattern.txt b/test/MC/Disassembler/MBlaze/mblaze_pattern.txt
new file mode 100644
index 0000000..1268378
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_pattern.txt
@@ -0,0 +1,14 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# Pattern instructions
+################################################################################
+
+# CHECK: pcmpbf r0, r1, r2
+0x80 0x01 0x14 0x00
+
+# CHECK: pcmpne r0, r1, r2
+0x8c 0x01 0x14 0x00
+
+# CHECK: pcmpeq r0, r1, r2
+0x88 0x01 0x14 0x00
diff --git a/test/MC/Disassembler/MBlaze/mblaze_shift.txt b/test/MC/Disassembler/MBlaze/mblaze_shift.txt
new file mode 100644
index 0000000..2783ffc
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_shift.txt
@@ -0,0 +1,29 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# Shift instructions
+################################################################################
+
+# CHECK: bsrl r1, r2, r3
+0x44 0x22 0x18 0x00
+
+# CHECK: bsra r1, r2, r3
+0x44 0x22 0x1a 0x00
+
+# CHECK: bsll r1, r2, r3
+0x44 0x22 0x1c 0x00
+
+# CHECK: bsrli r1, r2, 0
+0x64 0x22 0x00 0x00
+
+# CHECK: bsrai r1, r2, 0
+0x64 0x22 0x02 0x00
+
+# CHECK: bslli r1, r2, 0
+0x64 0x22 0x04 0x00
+
+# CHECK: sra r1, r2
+0x90 0x22 0x00 0x01
+
+# CHECK: srl r1, r2
+0x90 0x22 0x00 0x41
diff --git a/test/MC/Disassembler/MBlaze/mblaze_special.txt b/test/MC/Disassembler/MBlaze/mblaze_special.txt
new file mode 100644
index 0000000..a808cc9
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_special.txt
@@ -0,0 +1,105 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# Special instructions
+################################################################################
+
+# CHECK: mfs r0, rpc
+0x94 0x00 0x80 0x00
+
+# CHECK: msrclr r0, 0
+0x94 0x11 0x00 0x00
+
+# CHECK: msrset r0, 0
+0x94 0x10 0x00 0x00
+
+# CHECK: mts rpc, r0
+0x94 0x00 0xc0 0x00
+
+# CHECK: wdc r0, r1
+0x90 0x00 0x08 0x64
+
+# CHECK: wdc.clear r0, r1
+0x90 0x00 0x08 0x66
+
+# CHECK: wdc.flush r0, r1
+0x90 0x00 0x08 0x74
+
+# CHECK: wic r0, r1
+0x90 0x00 0x08 0x68
+
+################################################################################
+# Special registers
+################################################################################
+
+# CHECK: mfs r1, rpc
+0x94 0x20 0x80 0x00
+
+# CHECK: mfs r1, rmsr
+0x94 0x20 0x80 0x01
+
+# CHECK: mfs r1, rear
+0x94 0x20 0x80 0x03
+
+# CHECK: mfs r1, resr
+0x94 0x20 0x80 0x05
+
+# CHECK: mfs r1, rfsr
+0x94 0x20 0x80 0x07
+
+# CHECK: mfs r1, rbtr
+0x94 0x20 0x80 0x0b
+
+# CHECK: mfs r1, redr
+0x94 0x20 0x80 0x0d
+
+# CHECK: mfs r1, rpid
+0x94 0x20 0x90 0x00
+
+# CHECK: mfs r1, rzpr
+0x94 0x20 0x90 0x01
+
+# CHECK: mfs r1, rtlbx
+0x94 0x20 0x90 0x02
+
+# CHECK: mfs r1, rtlbhi
+0x94 0x20 0x90 0x04
+
+# CHECK: mfs r1, rtlblo
+0x94 0x20 0x90 0x03
+
+# CHECK: mfs r1, rpvr0
+0x94 0x20 0xa0 0x00
+
+# CHECK: mfs r1, rpvr1
+0x94 0x20 0xa0 0x01
+
+# CHECK: mfs r1, rpvr2
+0x94 0x20 0xa0 0x02
+
+# CHECK: mfs r1, rpvr3
+0x94 0x20 0xa0 0x03
+
+# CHECK: mfs r1, rpvr4
+0x94 0x20 0xa0 0x04
+
+# CHECK: mfs r1, rpvr5
+0x94 0x20 0xa0 0x05
+
+# CHECK: mfs r1, rpvr6
+0x94 0x20 0xa0 0x06
+
+# CHECK: mfs r1, rpvr7
+0x94 0x20 0xa0 0x07
+
+# CHECK: mfs r1, rpvr8
+0x94 0x20 0xa0 0x08
+
+# CHECK: mfs r1, rpvr9
+0x94 0x20 0xa0 0x09
+
+# CHECK: mfs r1, rpvr10
+0x94 0x20 0xa0 0x0a
+
+# CHECK: mfs r1, rpvr11
+0x94 0x20 0xa0 0x0b
diff --git a/test/MC/Disassembler/MBlaze/mblaze_typea.txt b/test/MC/Disassembler/MBlaze/mblaze_typea.txt
new file mode 100644
index 0000000..ce99950
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_typea.txt
@@ -0,0 +1,74 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# TYPE A instructions
+################################################################################
+
+# CHECK: add r1, r2, r3
+0x00 0x22 0x18 0x00
+
+# CHECK: addc r1, r2, r3
+0x08 0x22 0x18 0x00
+
+# CHECK: addk r1, r2, r3
+0x10 0x22 0x18 0x00
+
+# CHECK: addkc r1, r2, r3
+0x18 0x22 0x18 0x00
+
+# CHECK: and r1, r2, r3
+0x84 0x22 0x18 0x00
+
+# CHECK: andn r1, r2, r3
+0x8c 0x22 0x18 0x00
+
+# CHECK: cmp r1, r2, r3
+0x14 0x22 0x18 0x01
+
+# CHECK: cmpu r1, r2, r3
+0x14 0x22 0x18 0x03
+
+# CHECK: idiv r1, r2, r3
+0x48 0x22 0x18 0x00
+
+# CHECK: idivu r1, r2, r3
+0x48 0x22 0x18 0x02
+
+# CHECK: mul r1, r2, r3
+0x40 0x22 0x18 0x00
+
+# CHECK: mulh r1, r2, r3
+0x40 0x22 0x18 0x01
+
+# CHECK: mulhu r1, r2, r3
+0x40 0x22 0x18 0x03
+
+# CHECK: mulhsu r1, r2, r3
+0x40 0x22 0x18 0x02
+
+# CHECK: or r1, r2, r3
+0x80 0x22 0x18 0x00
+
+# CHECK: rsub r1, r2, r3
+0x04 0x22 0x18 0x00
+
+# CHECK: rsubc r1, r2, r3
+0x0c 0x22 0x18 0x00
+
+# CHECK: rsubk r1, r2, r3
+0x14 0x22 0x18 0x00
+
+# CHECK: rsubkc r1, r2, r3
+0x1c 0x22 0x18 0x00
+
+# CHECK: sext16 r1, r2
+0x90 0x22 0x00 0x61
+
+# CHECK: sext8 r1, r2
+0x90 0x22 0x00 0x60
+
+# CHECK: xor r1, r2, r3
+0x88 0x22 0x18 0x00
+
+# CHECK: or r0, r0, r0
+0x80 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/MBlaze/mblaze_typeb.txt b/test/MC/Disassembler/MBlaze/mblaze_typeb.txt
new file mode 100644
index 0000000..99782ac
--- /dev/null
+++ b/test/MC/Disassembler/MBlaze/mblaze_typeb.txt
@@ -0,0 +1,56 @@
+# RUN: llvm-mc --disassemble %s -triple=mblaze-unknown-unknown | FileCheck %s
+
+################################################################################
+# TYPE B instructions
+################################################################################
+
+# CHECK: addi r1, r2, 15
+0x20 0x22 0x00 0x0f
+
+# CHECK: addic r1, r2, 15
+0x28 0x22 0x00 0x0f
+
+# CHECK: addik r1, r2, 15
+0x30 0x22 0x00 0x0f
+
+# CHECK: addikc r1, r2, 15
+0x38 0x22 0x00 0x0f
+
+# CHECK: andi r1, r2, 15
+0xa4 0x22 0x00 0x0f
+
+# CHECK: andni r1, r2, 15
+0xac 0x22 0x00 0x0f
+
+# CHECK: muli r1, r2, 15
+0x60 0x22 0x00 0x0f
+
+# CHECK: ori r1, r2, 15
+0xa0 0x22 0x00 0x0f
+
+# CHECK: rsubi r1, r2, 15
+0x24 0x22 0x00 0x0f
+
+# CHECK: rsubic r1, r2, 15
+0x2c 0x22 0x00 0x0f
+
+# CHECK: rsubik r1, r2, 15
+0x34 0x22 0x00 0x0f
+
+# CHECK: rsubikc r1, r2, 15
+0x3c 0x22 0x00 0x0f
+
+# CHECK: rtbd r15, 15
+0xb6 0x4f 0x00 0x0f
+
+# CHECK: rted r15, 15
+0xb6 0x8f 0x00 0x0f
+
+# CHECK: rtid r15, 15
+0xb6 0x2f 0x00 0x0f
+
+# CHECK: rtsd r15, 15
+0xb6 0x0f 0x00 0x0f
+
+# CHECK: xori r1, r2, 15
+0xa8 0x22 0x00 0x0f
diff --git a/test/MC/Disassembler/X86/dg.exp b/test/MC/Disassembler/X86/dg.exp
new file mode 100644
index 0000000..a4d0e7c
--- /dev/null
+++ b/test/MC/Disassembler/X86/dg.exp
@@ -0,0 +1,6 @@
+load_lib llvm.exp
+
+if { [llvm_supports_target X86] } {
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{txt}]]
+}
+
diff --git a/test/MC/Disassembler/simple-tests.txt b/test/MC/Disassembler/X86/simple-tests.txt
index dcc3763..13a19d2 100644
--- a/test/MC/Disassembler/simple-tests.txt
+++ b/test/MC/Disassembler/X86/simple-tests.txt
@@ -59,4 +59,10 @@
0x0f 0x20 0xc1
# CHECK: leal 4(%rsp), %ecx
-0x8d 0x4c 0x24 0x04 \ No newline at end of file
+0x8d 0x4c 0x24 0x04
+
+# CHECK: enter $1, $2
+0xc8 0x01 0x00 0x02
+
+# CHECK: movw $47416, -66(%rbp)
+0x66 0xc7 0x45 0xbe 0x38 0xb9
diff --git a/test/MC/Disassembler/X86/truncated-input.txt b/test/MC/Disassembler/X86/truncated-input.txt
new file mode 100644
index 0000000..34cf038
--- /dev/null
+++ b/test/MC/Disassembler/X86/truncated-input.txt
@@ -0,0 +1,4 @@
+# RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 |& FileCheck %s
+
+# CHECK: warning
+0x00
diff --git a/test/MC/ELF/abs.s b/test/MC/ELF/abs.s
new file mode 100644
index 0000000..c598b11
--- /dev/null
+++ b/test/MC/ELF/abs.s
@@ -0,0 +1,16 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that zed will be an ABS symbol
+
+.Lfoo:
+.Lbar:
+ zed = .Lfoo - .Lbar
+
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000001) # 'zed'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x0000fff1)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
diff --git a/test/MC/ELF/alias-reloc.s b/test/MC/ELF/alias-reloc.s
new file mode 100644
index 0000000..c908c12
--- /dev/null
+++ b/test/MC/ELF/alias-reloc.s
@@ -0,0 +1,52 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that this produces a R_X86_64_PLT32 with bar.
+
+ .globl foo
+foo:
+bar = foo
+ .section zed, "", @progbits
+ call bar@PLT
+
+
+// Test that this produres a relocation with bar2
+
+ .weak foo2
+foo2:
+ .weak bar2
+ .set bar2,foo2
+ .quad bar2
+
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000005) # 'bar'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// CHECK: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x0000000e) # 'bar2'
+// CHECK-NEXT: ('st_bind', 0x00000002)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000004)
+// CHECK-NEXT: ('st_value', 0x0000000000000005)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000001)
+// CHECK-NEXT: ('r_sym', 0x00000001)
+// CHECK-NEXT: ('r_type', 0x00000004)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+// CHECK-NEXT: ),
+
+// CHECK: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset', 0x00000005)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/alias.s b/test/MC/ELF/alias.s
new file mode 100644
index 0000000..42d54bc
--- /dev/null
+++ b/test/MC/ELF/alias.s
@@ -0,0 +1,85 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+foo:
+bar = foo
+
+ .globl foo2
+foo2 = bar2
+
+foo3:
+ .globl bar3
+bar3 = foo3
+
+// Test that bar4 is also a function
+ .type foo4,@function
+foo4:
+bar4 = foo4
+
+ .long foo2
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000005) # 'bar'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x0000001d) # 'bar4'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000002)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000003
+// CHECK-NEXT: (('st_name', 0x00000001) # 'foo'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x0000000e) # 'foo3'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000018) # 'foo4'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000002)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000008
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x00000013) # 'bar3'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK: # Symbol 0x0000000a
+// CHECK-NEXT: (('st_name', 0x00000009) # 'bar2'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
diff --git a/test/MC/ELF/align-bss.s b/test/MC/ELF/align-bss.s
new file mode 100644
index 0000000..4f73a29
--- /dev/null
+++ b/test/MC/ELF/align-bss.s
@@ -0,0 +1,17 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the bss section is correctly aligned
+
+ .local foo
+ .comm foo,2048,16
+
+// CHECK: ('sh_name', 0x0000000d) # '.bss'
+// CHECK-NEXT: ('sh_type', 0x00000008)
+// CHECK-NEXT: ('sh_flags', 0x00000003)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000800)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000010)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
diff --git a/test/MC/ELF/align-nops.s b/test/MC/ELF/align-nops.s
new file mode 100644
index 0000000..28d4b89
--- /dev/null
+++ b/test/MC/ELF/align-nops.s
@@ -0,0 +1,40 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that we get optimal nops in text
+ .text
+f0:
+ .long 0
+ .align 8, 0x00000090
+ .long 0
+ .align 8
+
+// But not in another section
+ .data
+ .long 0
+ .align 8, 0x00000090
+ .long 0
+ .align 8
+
+// CHECK: (('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000010)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '00000000 0f1f4000 00000000 0f1f4000')
+
+// CHECK: (('sh_name', 0x00000007) # '.data'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000003)
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000010)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '00000000 90909090 00000000 00000000')
diff --git a/test/MC/ELF/align-size.s b/test/MC/ELF/align-size.s
new file mode 100644
index 0000000..85331d7
--- /dev/null
+++ b/test/MC/ELF/align-size.s
@@ -0,0 +1,13 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the alignment does contribute to the size of the section.
+
+ .zero 4
+ .align 8
+
+// CHECK: (('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000008)
diff --git a/test/MC/ELF/align-text.s b/test/MC/ELF/align-text.s
new file mode 100644
index 0000000..1d2dacb
--- /dev/null
+++ b/test/MC/ELF/align-text.s
@@ -0,0 +1,19 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the .text directive doesn't cause alignment.
+
+ .zero 1
+ .text
+ .zero 1
+
+// CHECK: (('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000002)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/align.s b/test/MC/ELF/align.s
new file mode 100644
index 0000000..c3912a7
--- /dev/null
+++ b/test/MC/ELF/align.s
@@ -0,0 +1,32 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the alignment of rodata doesn't force a alignment of the
+// previous section (.bss)
+
+ nop
+ .section .rodata,"a",@progbits
+ .align 8
+
+// CHECK: # Section 0x00000003
+// CHECK-NEXT: (('sh_name', 0x0000000d) # '.bss'
+// CHECK-NEXT: ('sh_type', 0x00000008)
+// CHECK-NEXT: ('sh_flags', 0x00000003)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000044)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.rodata'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000048)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
diff --git a/test/MC/ELF/bad-section.s b/test/MC/ELF/bad-section.s
new file mode 100644
index 0000000..73d89ce
--- /dev/null
+++ b/test/MC/ELF/bad-section.s
@@ -0,0 +1,9 @@
+// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o /dev/null 2>%t
+// RUN: FileCheck --input-file=%t %s
+
+// CHECK: error: unexpected token in directive
+// CHECK: .section "foo"-bar
+
+// test that we don't accept this, as gas doesn't.
+
+.section "foo"-bar
diff --git a/test/MC/ELF/basic-elf-32.s b/test/MC/ELF/basic-elf-32.s
new file mode 100644
index 0000000..fa97da4
--- /dev/null
+++ b/test/MC/ELF/basic-elf-32.s
@@ -0,0 +1,78 @@
+// RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+ .text
+ .globl main
+ .align 16, 0x90
+ .type main,@function
+main: # @main
+# BB#0:
+ subl $4, %esp
+ movl $.L.str1, (%esp)
+ calll puts
+ movl $.L.str2, (%esp)
+ calll puts
+ xorl %eax, %eax
+ addl $4, %esp
+ ret
+.Ltmp0:
+ .size main, .Ltmp0-main
+
+ .type .L.str1,@object # @.str1
+ .section .rodata.str1.1,"aMS",@progbits,1
+.L.str1:
+ .asciz "Hello"
+ .size .L.str1, 6
+
+ .type .L.str2,@object # @.str2
+.L.str2:
+ .asciz "World!"
+ .size .L.str2, 7
+
+ .section .note.GNU-stack,"",@progbits
+
+// CHECK: ('e_indent[EI_CLASS]', 0x00000001)
+// CHECK: ('e_indent[EI_DATA]', 0x00000001)
+// CHECK: ('e_indent[EI_VERSION]', 0x00000001)
+// CHECK: ('_sections', [
+// CHECK: # Section 0
+// CHECK: (('sh_name', 0x00000000) # ''
+
+// CHECK: # '.text'
+
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+
+// CHECK: # 'main'
+// CHECK: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000002)
+
+// CHECK: # 'puts'
+// CHECK: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+
+// CHECK: # '.rel.text'
+
+// CHECK: ('_relocations', [
+// CHECK: # Relocation 0x00000000
+// CHECK: (('r_offset', 0x00000006)
+// CHECK: ('r_type', 0x00000001)
+// CHECK: ),
+// CHECK: # Relocation 0x00000001
+// CHECK: (('r_offset', 0x0000000b)
+// CHECK: ('r_type', 0x00000002)
+// CHECK: ),
+// CHECK: # Relocation 0x00000002
+// CHECK: (('r_offset', 0x00000012)
+// CHECK: ('r_type', 0x00000001)
+// CHECK: ),
+// CHECK: # Relocation 0x00000003
+// CHECK: (('r_offset', 0x00000017)
+// CHECK: ('r_type', 0x00000002)
+// CHECK: ),
+// CHECK: ])
diff --git a/test/MC/ELF/basic-elf-64.s b/test/MC/ELF/basic-elf-64.s
new file mode 100644
index 0000000..7fc40b7
--- /dev/null
+++ b/test/MC/ELF/basic-elf-64.s
@@ -0,0 +1,82 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+ .text
+ .globl main
+ .align 16, 0x90
+ .type main,@function
+main: # @main
+# BB#0:
+ subq $8, %rsp
+ movl $.L.str1, %edi
+ callq puts
+ movl $.L.str2, %edi
+ callq puts
+ xorl %eax, %eax
+ addq $8, %rsp
+ ret
+.Ltmp0:
+ .size main, .Ltmp0-main
+
+ .type .L.str1,@object # @.str1
+ .section .rodata.str1.1,"aMS",@progbits,1
+.L.str1:
+ .asciz "Hello"
+ .size .L.str1, 6
+
+ .type .L.str2,@object # @.str2
+.L.str2:
+ .asciz "World!"
+ .size .L.str2, 7
+
+ .section .note.GNU-stack,"",@progbits
+
+// CHECK: ('e_indent[EI_CLASS]', 0x00000002)
+// CHECK: ('e_indent[EI_DATA]', 0x00000001)
+// CHECK: ('e_indent[EI_VERSION]', 0x00000001)
+// CHECK: ('_sections', [
+// CHECK: # Section 0
+// CHECK: (('sh_name', 0x00000000) # ''
+
+// CHECK: # '.text'
+
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+
+// CHECK: # 'main'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000002)
+
+// CHECK: # 'puts'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+
+// CHECK: # '.rela.text'
+
+// CHECK: ('_relocations', [
+// CHECK: # Relocation 0x00000000
+// CHECK: (('r_offset', 0x00000005)
+// CHECK: ('r_type', 0x0000000a)
+// CHECK: ('r_addend', 0x00000000)
+// CHECK: ),
+// CHECK: # Relocation 0x00000001
+// CHECK: (('r_offset', 0x0000000a)
+// CHECK: ('r_type', 0x00000002)
+// CHECK: ('r_addend', 0xfffffffc)
+// CHECK: ),
+// CHECK: # Relocation 0x00000002
+// CHECK: (('r_offset', 0x0000000f)
+// CHECK: ('r_type', 0x0000000a)
+// CHECK: ('r_addend', 0x00000006)
+// CHECK: ),
+// CHECK: # Relocation 0x00000003
+// CHECK: (('r_offset', 0x00000014)
+// CHECK: ('r_type', 0x00000002)
+// CHECK: ('r_addend', 0xfffffffc)
+// CHECK: ),
+// CHECK: ])
diff --git a/test/MC/ELF/call-abs.s b/test/MC/ELF/call-abs.s
new file mode 100644
index 0000000..885c2d1
--- /dev/null
+++ b/test/MC/ELF/call-abs.s
@@ -0,0 +1,24 @@
+// RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+ .text
+ .globl f
+ .type f,@function
+f: # @f
+# BB#0: # %entry
+ subl $4, %esp
+ calll 42
+ incl %eax
+ addl $4, %esp
+ ret
+.Ltmp0:
+ .size f, .Ltmp0-f
+
+ .section .note.GNU-stack,"",@progbits
+
+// CHECK: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000004)
+// CHECK-NEXT: ('r_sym', 0x00000000)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/cfi-advance-loc2.s b/test/MC/ELF/cfi-advance-loc2.s
new file mode 100644
index 0000000..3ffdd6c
--- /dev/null
+++ b/test/MC/ELF/cfi-advance-loc2.s
@@ -0,0 +1,45 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// test that this produces a correctly encoded cfi_advance_loc2
+
+f:
+ .cfi_startproc
+ nop
+ .zero 255, 0x90
+ .cfi_def_cfa_offset 8
+ nop
+ .cfi_endproc
+
+// CHECK: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000148)
+// CHECK-NEXT: ('sh_size', 0x00000030)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 01010000 00030001 0e080000')
+// CHECK-NEXT: ),
+
+
+// CHECK: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000258)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi-def-cfa-offset.s b/test/MC/ELF/cfi-def-cfa-offset.s
new file mode 100644
index 0000000..efefb87
--- /dev/null
+++ b/test/MC/ELF/cfi-def-cfa-offset.s
@@ -0,0 +1,46 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+f:
+ .cfi_startproc
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ nop
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+ ret
+ .cfi_endproc
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000030)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 0a000000 00440e10 450e0800')
+// CHECK-NEXT: ),
+
+// CHECK: # Section 0x00000008
+// CHECK-NEXT: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000160)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi-def-cfa-register.s b/test/MC/ELF/cfi-def-cfa-register.s
new file mode 100644
index 0000000..3df2021
--- /dev/null
+++ b/test/MC/ELF/cfi-def-cfa-register.s
@@ -0,0 +1,41 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+f:
+ .cfi_startproc
+ nop
+ .cfi_def_cfa_register 6
+ nop
+ .cfi_endproc
+
+// CHECK: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000048)
+// CHECK-NEXT: ('sh_size', 0x00000030)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 02000000 00410d06 00000000')
+// CHECK-NEXT: ),
+
+// CHECK: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000158)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi-def-cfa.s b/test/MC/ELF/cfi-def-cfa.s
new file mode 100644
index 0000000..1ad427b
--- /dev/null
+++ b/test/MC/ELF/cfi-def-cfa.s
@@ -0,0 +1,42 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+f:
+ .cfi_startproc
+ nop
+ .cfi_def_cfa 7, 8
+ nop
+ .cfi_endproc
+
+// CHECK: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000048)
+// CHECK-NEXT: ('sh_size', 0x00000030)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 02000000 00410c07 08000000')
+// CHECK-NEXT: ),
+
+
+// CHECK: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000158)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi-offset.s b/test/MC/ELF/cfi-offset.s
new file mode 100644
index 0000000..2f7e797
--- /dev/null
+++ b/test/MC/ELF/cfi-offset.s
@@ -0,0 +1,42 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+f:
+ .cfi_startproc
+ nop
+ .cfi_offset %ebp, -16
+ nop
+ .cfi_endproc
+
+// CHECK: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000048)
+// CHECK-NEXT: ('sh_size', 0x00000030)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 02000000 00418602 00000000')
+// CHECK-NEXT: ),
+
+
+// CHECK: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000158)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi-remember.s b/test/MC/ELF/cfi-remember.s
new file mode 100644
index 0000000..b5b3803
--- /dev/null
+++ b/test/MC/ELF/cfi-remember.s
@@ -0,0 +1,45 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+f:
+ .cfi_startproc
+ nop
+ .cfi_remember_state
+ nop
+ .cfi_restore_state
+ nop
+ .cfi_endproc
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000048)
+// CHECK-NEXT: ('sh_size', 0x00000030)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 14000000 1c000000 00000000 03000000 00410a41 0b000000')
+// CHECK-NEXT: ),
+
+// CHECK: # Section 0x00000008
+// CHECK-NEXT: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000158)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi-zero-addr-delta.s b/test/MC/ELF/cfi-zero-addr-delta.s
new file mode 100644
index 0000000..5585e29
--- /dev/null
+++ b/test/MC/ELF/cfi-zero-addr-delta.s
@@ -0,0 +1,48 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that we don't produce a DW_CFA_advance_loc 0
+
+f:
+ .cfi_startproc
+ nop
+ .cfi_def_cfa_offset 16
+ nop
+ .cfi_remember_state
+ .cfi_def_cfa_offset 8
+ nop
+ .cfi_restore_state
+ nop
+ .cfi_endproc
+
+// CHECK: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000048)
+// CHECK-NEXT: ('sh_size', 0x00000038)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a5200 01781001 1b0c0708 90010000 1c000000 1c000000 00000000 04000000 00410e10 410a0e08 410b0000 00000000')
+// CHECK-NEXT: ),
+
+// CHECK: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000160)
+// CHECK-NEXT: ('sh_size', 0x00000018)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/cfi.s b/test/MC/ELF/cfi.s
new file mode 100644
index 0000000..93fd2e7
--- /dev/null
+++ b/test/MC/ELF/cfi.s
@@ -0,0 +1,674 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+f1:
+ .cfi_startproc
+ .cfi_lsda 0x3, bar
+ nop
+ .cfi_endproc
+
+f2:
+ .cfi_startproc
+ .cfi_personality 0x00, foo
+ .cfi_lsda 0x3, bar
+ nop
+ .cfi_endproc
+
+f3:
+ .cfi_startproc
+ .cfi_lsda 0x3, bar
+ nop
+ .cfi_endproc
+
+f4:
+ .cfi_startproc
+ .cfi_personality 0x00, foo
+ .cfi_lsda 0x2, bar
+ nop
+ .cfi_endproc
+
+f5:
+ .cfi_startproc
+ .cfi_personality 0x02, foo
+ nop
+ .cfi_endproc
+
+f6:
+ .cfi_startproc
+ .cfi_personality 0x03, foo
+ nop
+ .cfi_endproc
+
+f7:
+ .cfi_startproc
+ .cfi_personality 0x04, foo
+ nop
+ .cfi_endproc
+
+f8:
+ .cfi_startproc
+ .cfi_personality 0x0a, foo
+ nop
+ .cfi_endproc
+
+f9:
+ .cfi_startproc
+ .cfi_personality 0x0b, foo
+ nop
+ .cfi_endproc
+
+f10:
+ .cfi_startproc
+ .cfi_personality 0x0c, foo
+ nop
+ .cfi_endproc
+
+f11:
+ .cfi_startproc
+ .cfi_personality 0x08, foo
+ nop
+ .cfi_endproc
+
+f12:
+ .cfi_startproc
+ .cfi_personality 0x10, foo
+ nop
+ .cfi_endproc
+
+f13:
+ .cfi_startproc
+ .cfi_personality 0x12, foo
+ nop
+ .cfi_endproc
+
+f14:
+ .cfi_startproc
+ .cfi_personality 0x13, foo
+ nop
+ .cfi_endproc
+
+f15:
+ .cfi_startproc
+ .cfi_personality 0x14, foo
+ nop
+ .cfi_endproc
+
+f16:
+ .cfi_startproc
+ .cfi_personality 0x1a, foo
+ nop
+ .cfi_endproc
+
+f17:
+ .cfi_startproc
+ .cfi_personality 0x1b, foo
+ nop
+ .cfi_endproc
+
+f18:
+ .cfi_startproc
+ .cfi_personality 0x1c, foo
+ nop
+ .cfi_endproc
+
+f19:
+ .cfi_startproc
+ .cfi_personality 0x18, foo
+ nop
+ .cfi_endproc
+
+f20:
+ .cfi_startproc
+ .cfi_personality 0x80, foo
+ nop
+ .cfi_endproc
+
+f21:
+ .cfi_startproc
+ .cfi_personality 0x82, foo
+ nop
+ .cfi_endproc
+
+f22:
+ .cfi_startproc
+ .cfi_personality 0x83, foo
+ nop
+ .cfi_endproc
+
+f23:
+ .cfi_startproc
+ .cfi_personality 0x84, foo
+ nop
+ .cfi_endproc
+
+f24:
+ .cfi_startproc
+ .cfi_personality 0x8a, foo
+ nop
+ .cfi_endproc
+
+f25:
+ .cfi_startproc
+ .cfi_personality 0x8b, foo
+ nop
+ .cfi_endproc
+
+f26:
+ .cfi_startproc
+ .cfi_personality 0x8c, foo
+ nop
+ .cfi_endproc
+
+f27:
+ .cfi_startproc
+ .cfi_personality 0x88, foo
+ nop
+ .cfi_endproc
+
+f28:
+ .cfi_startproc
+ .cfi_personality 0x90, foo
+ nop
+ .cfi_endproc
+
+f29:
+ .cfi_startproc
+ .cfi_personality 0x92, foo
+ nop
+ .cfi_endproc
+
+f30:
+ .cfi_startproc
+ .cfi_personality 0x93, foo
+ nop
+ .cfi_endproc
+
+f31:
+ .cfi_startproc
+ .cfi_personality 0x94, foo
+ nop
+ .cfi_endproc
+
+f32:
+ .cfi_startproc
+ .cfi_personality 0x9a, foo
+ nop
+ .cfi_endproc
+
+f33:
+ .cfi_startproc
+ .cfi_personality 0x9b, foo
+ nop
+ .cfi_endproc
+
+f34:
+ .cfi_startproc
+ .cfi_personality 0x9c, foo
+ nop
+ .cfi_endproc
+
+f36:
+ .cfi_startproc
+ .cfi_personality 0x98, foo
+ nop
+ .cfi_endproc
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000068)
+// CHECK-NEXT: ('sh_size', 0x000006c8)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '14000000 00000000 017a4c52 00017810 02031b0c 07089001 14000000 1c000000 00000000 01000000 04000000 00000000 20000000 00000000 017a504c 52000178 100b0000 00000000 00000003 1b0c0708 90010000 14000000 28000000 00000000 01000000 04000000 00000000 14000000 70000000 00000000 01000000 04000000 00000000 20000000 00000000 017a504c 52000178 100b0000 00000000 00000002 1b0c0708 90010000 10000000 28000000 00000000 01000000 02000000 18000000 00000000 017a5052 00017810 04020000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 06030000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a040000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 040a0000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 060b0000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a0c0000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a080000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a100000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 04120000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 06130000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a140000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 041a0000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 061b0000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a1c0000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a180000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a800000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 04820000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 06830000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a840000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 048a0000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 068b0000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a8c0000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a880000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a900000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 04920000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 06930000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a940000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 049a0000 1b0c0708 90010000 10000000 20000000 00000000 01000000 00000000 18000000 00000000 017a5052 00017810 069b0000 00001b0c 07089001 10000000 20000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a9c0000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000 1c000000 00000000 017a5052 00017810 0a980000 00000000 00001b0c 07089001 10000000 24000000 00000000 01000000 00000000')
+// CHECK-NEXT: ),
+
+// CHECK: # Section 0x00000008
+// CHECK-NEXT: (('sh_name', 0x00000036) # '.rela.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x00000004)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000bf8)
+// CHECK-NEXT: ('sh_size', 0x000006c0)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset', 0x00000029)
+// CHECK-NEXT: ('r_sym', 0x00000028)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000002
+// CHECK-NEXT: (('r_offset', 0x00000043)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000003
+// CHECK-NEXT: (('r_offset', 0x0000005c)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000001)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000004
+// CHECK-NEXT: (('r_offset', 0x00000065)
+// CHECK-NEXT: ('r_sym', 0x00000028)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000005
+// CHECK-NEXT: (('r_offset', 0x00000074)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000002)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000006
+// CHECK-NEXT: (('r_offset', 0x0000007d)
+// CHECK-NEXT: ('r_sym', 0x00000028)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000007
+// CHECK-NEXT: (('r_offset', 0x00000097)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000008
+// CHECK-NEXT: (('r_offset', 0x000000b0)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000003)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000009
+// CHECK-NEXT: (('r_offset', 0x000000b9)
+// CHECK-NEXT: ('r_sym', 0x00000028)
+// CHECK-NEXT: ('r_type', 0x0000000c)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000000a
+// CHECK-NEXT: (('r_offset', 0x000000ce)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000c)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000000b
+// CHECK-NEXT: (('r_offset', 0x000000e0)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000004)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000000c
+// CHECK-NEXT: (('r_offset', 0x000000fe)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000000d
+// CHECK-NEXT: (('r_offset', 0x00000110)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000005)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000000e
+// CHECK-NEXT: (('r_offset', 0x0000012e)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000000f
+// CHECK-NEXT: (('r_offset', 0x00000144)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000006)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000010
+// CHECK-NEXT: (('r_offset', 0x00000162)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000c)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000011
+// CHECK-NEXT: (('r_offset', 0x00000174)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000007)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000012
+// CHECK-NEXT: (('r_offset', 0x00000192)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000013
+// CHECK-NEXT: (('r_offset', 0x000001a4)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000008)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000014
+// CHECK-NEXT: (('r_offset', 0x000001c2)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000015
+// CHECK-NEXT: (('r_offset', 0x000001d8)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000009)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000016
+// CHECK-NEXT: (('r_offset', 0x000001f6)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000017
+// CHECK-NEXT: (('r_offset', 0x0000020c)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000000a)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000018
+// CHECK-NEXT: (('r_offset', 0x0000022a)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000019
+// CHECK-NEXT: (('r_offset', 0x00000240)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000000b)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000001a
+// CHECK-NEXT: (('r_offset', 0x0000025e)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000d)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000001b
+// CHECK-NEXT: (('r_offset', 0x00000270)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000000c)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000001c
+// CHECK-NEXT: (('r_offset', 0x0000028e)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000001d
+// CHECK-NEXT: (('r_offset', 0x000002a0)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000000d)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000001e
+// CHECK-NEXT: (('r_offset', 0x000002be)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000001f
+// CHECK-NEXT: (('r_offset', 0x000002d4)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000000e)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000020
+// CHECK-NEXT: (('r_offset', 0x000002f2)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000d)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000021
+// CHECK-NEXT: (('r_offset', 0x00000304)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000000f)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000022
+// CHECK-NEXT: (('r_offset', 0x00000322)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000023
+// CHECK-NEXT: (('r_offset', 0x00000334)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000010)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000024
+// CHECK-NEXT: (('r_offset', 0x00000352)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000025
+// CHECK-NEXT: (('r_offset', 0x00000368)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000011)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000026
+// CHECK-NEXT: (('r_offset', 0x00000386)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000027
+// CHECK-NEXT: (('r_offset', 0x0000039c)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000012)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000028
+// CHECK-NEXT: (('r_offset', 0x000003ba)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000029
+// CHECK-NEXT: (('r_offset', 0x000003d0)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000013)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000002a
+// CHECK-NEXT: (('r_offset', 0x000003ee)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000c)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000002b
+// CHECK-NEXT: (('r_offset', 0x00000400)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000014)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000002c
+// CHECK-NEXT: (('r_offset', 0x0000041e)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000002d
+// CHECK-NEXT: (('r_offset', 0x00000430)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000015)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000002e
+// CHECK-NEXT: (('r_offset', 0x0000044e)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000002f
+// CHECK-NEXT: (('r_offset', 0x00000464)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000016)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000030
+// CHECK-NEXT: (('r_offset', 0x00000482)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000c)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000031
+// CHECK-NEXT: (('r_offset', 0x00000494)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000017)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000032
+// CHECK-NEXT: (('r_offset', 0x000004b2)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000033
+// CHECK-NEXT: (('r_offset', 0x000004c4)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000018)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000034
+// CHECK-NEXT: (('r_offset', 0x000004e2)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000035
+// CHECK-NEXT: (('r_offset', 0x000004f8)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000019)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000036
+// CHECK-NEXT: (('r_offset', 0x00000516)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000037
+// CHECK-NEXT: (('r_offset', 0x0000052c)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000001a)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000038
+// CHECK-NEXT: (('r_offset', 0x0000054a)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000039
+// CHECK-NEXT: (('r_offset', 0x00000560)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000001b)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000003a
+// CHECK-NEXT: (('r_offset', 0x0000057e)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000d)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000003b
+// CHECK-NEXT: (('r_offset', 0x00000590)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000001c)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000003c
+// CHECK-NEXT: (('r_offset', 0x000005ae)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000003d
+// CHECK-NEXT: (('r_offset', 0x000005c0)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000001d)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000003e
+// CHECK-NEXT: (('r_offset', 0x000005de)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x0000003f
+// CHECK-NEXT: (('r_offset', 0x000005f4)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000001e)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000040
+// CHECK-NEXT: (('r_offset', 0x00000612)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x0000000d)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000041
+// CHECK-NEXT: (('r_offset', 0x00000624)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000001f)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000042
+// CHECK-NEXT: (('r_offset', 0x00000642)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000043
+// CHECK-NEXT: (('r_offset', 0x00000654)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000020)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000044
+// CHECK-NEXT: (('r_offset', 0x00000672)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000045
+// CHECK-NEXT: (('r_offset', 0x00000688)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000021)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000046
+// CHECK-NEXT: (('r_offset', 0x000006a6)
+// CHECK-NEXT: ('r_sym', 0x00000029)
+// CHECK-NEXT: ('r_type', 0x00000018)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000047
+// CHECK-NEXT: (('r_offset', 0x000006bc)
+// CHECK-NEXT: ('r_sym', 0x00000024)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000022)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/comdat.s b/test/MC/ELF/comdat.s
new file mode 100644
index 0000000..0f1164e
--- /dev/null
+++ b/test/MC/ELF/comdat.s
@@ -0,0 +1,86 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that we produce the group sections and that they are a the beginning
+// of the file.
+
+// CHECK: # Section 0x00000001
+// CHECK-NEXT: (('sh_name', 0x00000026) # '.group'
+// CHECK-NEXT: ('sh_type', 0x00000011)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x0000000c)
+// CHECK-NEXT: ('sh_link', 0x0000000c)
+// CHECK-NEXT: ('sh_info', 0x00000001)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000004)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Section 0x00000002
+// CHECK-NEXT: (('sh_name', 0x00000026) # '.group'
+// CHECK-NEXT: ('sh_type', 0x00000011)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x0000004c)
+// CHECK-NEXT: ('sh_size', 0x00000008)
+// CHECK-NEXT: ('sh_link', 0x0000000c)
+// CHECK-NEXT: ('sh_info', 0x00000002)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000004)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Section 0x00000003
+// CHECK-NEXT: (('sh_name', 0x00000026) # '.group'
+// CHECK-NEXT: ('sh_type', 0x00000011)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000054)
+// CHECK-NEXT: ('sh_size', 0x00000008)
+// CHECK-NEXT: ('sh_link', 0x0000000c)
+// CHECK-NEXT: ('sh_info', 0x0000000d)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000004)
+// CHECK-NEXT: ),
+
+// Test that g1 and g2 are local, but g3 is an undefined global.
+
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000001) # 'g1'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000007)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000004) # 'g2'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000002)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// CHECK: # Symbol 0x0000000d
+// CHECK-NEXT: (('st_name', 0x00000007) # 'g3'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+
+ .section .foo,"axG",@progbits,g1,comdat
+g1:
+ nop
+
+ .section .bar,"axG",@progbits,g1,comdat
+ nop
+
+ .section .zed,"axG",@progbits,g2,comdat
+ nop
+
+ .section .baz,"axG",@progbits,g3,comdat
+ .long g3
diff --git a/test/MC/ELF/common.s b/test/MC/ELF/common.s
new file mode 100644
index 0000000..16b677b
--- /dev/null
+++ b/test/MC/ELF/common.s
@@ -0,0 +1,88 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+
+ .text
+
+// Test that this produces a regular local symbol.
+ .type common1,@object
+ .local common1
+ .comm common1,1,1
+
+// CHECK: ('st_name', 0x00000001) # 'common1'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx',
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000001)
+
+
+// Same as common1, but with directives in a different order.
+ .local common2
+ .type common2,@object
+ .comm common2,1,1
+
+// CHECK: ('st_name', 0x00000009) # 'common2'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx',
+// CHECK-NEXT: ('st_value', 0x0000000000000001)
+// CHECK-NEXT: ('st_size', 0x0000000000000001)
+
+ .local common6
+ .comm common6,8,16
+
+// CHECK: # Symbol 0x00000003
+// CHECK-NEXT: (('st_name', 0x00000011) # 'common6'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000003)
+// CHECK-NEXT: ('st_value', 0x0000000000000010)
+// CHECK-NEXT: ('st_size', 0x0000000000000008)
+// CHECK-NEXT: ),
+
+// Test that without an explicit .local we produce a global.
+ .type common3,@object
+ .comm common3,4,4
+
+// CHECK: ('st_name', 0x00000019) # 'common3'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x0000fff2)
+// CHECK-NEXT: ('st_value', 0x0000000000000004)
+// CHECK-NEXT: ('st_size', 0x0000000000000004)
+
+
+// Test that without an explicit .local we produce a global, even if the first
+// occurrence is not in a directive.
+ .globl foo
+ .type foo,@function
+foo:
+ movsbl common4+3(%rip), %eax
+
+
+ .type common4,@object
+ .comm common4,40,16
+
+// CHECK: ('st_name', 0x00000025) # 'common4'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x0000fff2)
+// CHECK-NEXT: ('st_value', 0x0000000000000010)
+// CHECK-NEXT: ('st_size', 0x0000000000000028)
+
+ .comm common5,4,4
+
+// CHECK: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x0000002d) # 'common5'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x0000fff2)
+// CHECK-NEXT: ('st_value', 0x0000000000000004)
+// CHECK-NEXT: ('st_size', 0x0000000000000004)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/common2.s b/test/MC/ELF/common2.s
new file mode 100644
index 0000000..b54cdfe
--- /dev/null
+++ b/test/MC/ELF/common2.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the common symbols are placed at the end of .bss. In this example
+// it causes .bss to have size 9 instead of 8.
+
+ .local vimvardict
+ .comm vimvardict,1,8
+ .bss
+ .zero 1
+ .align 8
+
+// CHECK: (('sh_name', 0x0000000d) # '.bss'
+// CHECK-NEXT: ('sh_type',
+// CHECK-NEXT: ('sh_flags'
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000009)
+// CHECK-NEXT: ('sh_link',
+// CHECK-NEXT: ('sh_info',
+// CHECK-NEXT: ('sh_addralign',
+// CHECK-NEXT: ('sh_entsize',
diff --git a/test/MC/ELF/debug-line.s b/test/MC/ELF/debug-line.s
new file mode 100644
index 0000000..2979ca2
--- /dev/null
+++ b/test/MC/ELF/debug-line.s
@@ -0,0 +1,22 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that .debug_line is populated.
+
+// CHECK: (('sh_name', 0x00000012) # '.debug_line'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000044)
+// CHECK-NEXT: ('sh_size', 0x00000037)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '33000000 02001c00 00000101 fb0e0d00 01010101 00000001 00000100 666f6f2e 63000000 00000009 02000000 00000000 00150204 000101')
+
+ .section .debug_line,"",@progbits
+ .text
+
+ .file 1 "foo.c"
+ .loc 1 4 0
+ subq $8, %rsp
diff --git a/test/MC/ELF/debug-loc.s b/test/MC/ELF/debug-loc.s
new file mode 100644
index 0000000..36ae485
--- /dev/null
+++ b/test/MC/ELF/debug-loc.s
@@ -0,0 +1,32 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that we don't regress on the size of the line info section. We used
+// to handle negative line diffs incorrectly which manifested as very
+// large integers being passed to DW_LNS_advance_line.
+
+// FIXME: This size is the same as gnu as, but we can probably do a bit better.
+// FIXME2: We need a debug_line dumper so that we can test the actual contents.
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.debug_line'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000044)
+// CHECK-NEXT: ('sh_size', 0x0000003d)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+
+ .section .debug_line,"",@progbits
+ .text
+foo:
+ .file 1 "Driver.ii"
+ .loc 1 2 0
+ nop
+ .loc 1 4 0
+ nop
+ .loc 1 3 0
+ nop
diff --git a/test/MC/ELF/dg.exp b/test/MC/ELF/dg.exp
index 7b7bd4e..d46d700 100644
--- a/test/MC/ELF/dg.exp
+++ b/test/MC/ELF/dg.exp
@@ -1,5 +1,5 @@
load_lib llvm.exp
if { [llvm_supports_target X86] } {
- RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll}]]
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,s}]]
}
diff --git a/test/MC/ELF/diff.s b/test/MC/ELF/diff.s
new file mode 100644
index 0000000..1879a39
--- /dev/null
+++ b/test/MC/ELF/diff.s
@@ -0,0 +1,15 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+ .global zed
+foo:
+ nop
+bar:
+ nop
+zed:
+ mov zed+(bar-foo), %eax
+
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000005)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend', 0x00000001)
diff --git a/test/MC/ELF/diff2.s b/test/MC/ELF/diff2.s
new file mode 100644
index 0000000..4a9fbd1
--- /dev/null
+++ b/test/MC/ELF/diff2.s
@@ -0,0 +1,13 @@
+// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s 2> %t
+// RUN: FileCheck -input-file %t %s
+
+.global zed
+ .data
+foo:
+ .text
+ nop
+bar:
+ nop
+zed:
+// CHECK: expected relocatable expression
+ mov zed+(bar-foo), %eax
diff --git a/test/MC/AsmParser/ELF/directive_previous.s b/test/MC/ELF/elf_directive_previous.s
index 5db1eac..5db1eac 100644
--- a/test/MC/AsmParser/ELF/directive_previous.s
+++ b/test/MC/ELF/elf_directive_previous.s
diff --git a/test/MC/AsmParser/ELF/directive_section.s b/test/MC/ELF/elf_directive_section.s
index 9531c02..9531c02 100644
--- a/test/MC/AsmParser/ELF/directive_section.s
+++ b/test/MC/ELF/elf_directive_section.s
diff --git a/test/MC/ELF/empty-dwarf-lines.s b/test/MC/ELF/empty-dwarf-lines.s
new file mode 100644
index 0000000..0f791ae
--- /dev/null
+++ b/test/MC/ELF/empty-dwarf-lines.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the dwarf debug_line section contains no line directives.
+
+ .file 1 "test.c"
+ .globl c
+c:
+ .asciz "hi\n"
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.debug_line'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000044)
+// CHECK-NEXT: ('sh_size', 0x00000027)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/empty.s b/test/MC/ELF/empty.s
new file mode 100644
index 0000000..e351936
--- /dev/null
+++ b/test/MC/ELF/empty.s
@@ -0,0 +1,70 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that like gnu as we create text, data and bss by default. Also test
+// that shstrtab, symtab and strtab are listed in that order.
+
+// CHECK: ('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+
+// CHECK: ('sh_name', 0x00000007) # '.data'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000003)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+
+// CHECK: ('sh_name', 0x0000000d) # '.bss'
+// CHECK-NEXT: ('sh_type', 0x00000008)
+// CHECK-NEXT: ('sh_flags', 0x00000003)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+
+// CHECK: ('sh_name', 0x00000012) # '.shstrtab'
+// CHECK-NEXT: ('sh_type', 0x00000003)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x0000002c)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+
+// CHECK: ('sh_name', 0x0000001c) # '.symtab'
+// CHECK-NEXT: ('sh_type', 0x00000002)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000060)
+// CHECK-NEXT: ('sh_link', 0x00000006)
+// CHECK-NEXT: ('sh_info', 0x00000004)
+// CHECK-NEXT: ('sh_addralign', 0x00000008)
+// CHECK-NEXT: ('sh_entsize', 0x00000018)
+
+// CHECK: ('sh_name', 0x00000024) # '.strtab'
+// CHECK-NEXT: ('sh_type', 0x00000003)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000001)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
diff --git a/test/MC/ELF/entsize.ll b/test/MC/ELF/entsize.ll
new file mode 100644
index 0000000..21179df
--- /dev/null
+++ b/test/MC/ELF/entsize.ll
@@ -0,0 +1,44 @@
+; RUN: llc -filetype=obj -mtriple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck -check-prefix=64 %s
+
+; Test that constant mergeable strings have sh_entsize set.
+
+@.str1 = private unnamed_addr constant [6 x i8] c"tring\00"
+@.str2 = private unnamed_addr constant [7 x i8] c"String\00"
+@.c8a = private unnamed_addr constant [1 x i64] [i64 42]
+@.c8b = private unnamed_addr constant [1 x i64] [i64 42]
+
+define i32 @main() nounwind {
+ %1 = call i32 @puts(i8* getelementptr inbounds ([6 x i8]* @.str1, i32 0, i32 0))
+ %2 = call i32 @puts(i8* getelementptr inbounds ([7 x i8]* @.str2, i32 0, i32 0))
+ call void @foo(i64* getelementptr inbounds ([1 x i64]* @.c8a, i32 0, i32 0))
+ call void @foo(i64* getelementptr inbounds ([1 x i64]* @.c8b, i32 0, i32 0))
+ ret i32 0
+}
+
+declare i32 @puts(i8* nocapture) nounwind
+declare void @foo(i64* nocapture) nounwind
+
+;;;;;
+
+; 64: (('sh_name', 0x00000012) # '.rodata.str1.1'
+; 64-NEXT: ('sh_type', 0x00000001)
+; 64-NEXT: ('sh_flags', 0x00000032)
+; 64-NEXT: ('sh_addr',
+; 64-NEXT: ('sh_offset',
+; 64-NEXT: ('sh_size', 0x0000000d)
+; 64-NEXT: ('sh_link',
+; 64-NEXT: ('sh_info',
+; 64-NEXT: ('sh_addralign', 0x00000001)
+; 64-NEXT: ('sh_entsize', 0x00000001)
+
+; 64: (('sh_name', 0x00000021) # '.rodata.cst8'
+; 64-NEXT: ('sh_type', 0x00000001)
+; 64-NEXT: ('sh_flags', 0x00000012)
+; 64-NEXT: ('sh_addr',
+; 64-NEXT: ('sh_offset',
+; 64-NEXT: ('sh_size', 0x00000010)
+; 64-NEXT: ('sh_link',
+; 64-NEXT: ('sh_info',
+; 64-NEXT: ('sh_addralign', 0x00000008)
+; 64-NEXT: ('sh_entsize', 0x00000008)
+
diff --git a/test/MC/ELF/entsize.s b/test/MC/ELF/entsize.s
new file mode 100644
index 0000000..e8eb62e
--- /dev/null
+++ b/test/MC/ELF/entsize.s
@@ -0,0 +1,69 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that mergeable constants have sh_entsize set.
+
+// 1 byte strings
+ .section .rodata.str1.1,"aMS",@progbits,1
+
+ .type .L.str1,@object # @.str1
+.L.str1:
+ .asciz "tring"
+ .size .L.str1, 6
+
+ .type .L.str2,@object # @.str2
+.L.str2:
+ .asciz "String"
+ .size .L.str2, 7
+
+// 2 byte strings
+ .section .rodata.str2.1,"aMS",@progbits,2
+ .type .L.str3,@object # @.str3
+.L.str3:
+ .asciz "L\000o\000n\000g\000"
+ .size .L.str3, 9
+
+ .type .L.str4,@object # @.str4
+.L.str4:
+ .asciz "o\000n\000g\000"
+ .size .L.str4, 7
+
+ // 8 byte constants
+ .section .rodata.cst8,"aM",@progbits,8
+ .quad 42
+ .quad 42
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: ('sh_name', 0x00000012) # '.rodata.str1.1'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000032)
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x0000000d)
+// CHECK-NEXT: ('sh_link',
+// CHECK-NEXT: ('sh_info',
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000001)
+
+// CHECK: # Section 0x00000005
+// CHECK-NEXT: ('sh_name', 0x00000021) # '.rodata.str2.1'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000032)
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000010)
+// CHECK-NEXT: ('sh_link',
+// CHECK-NEXT: ('sh_info',
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000002)
+
+// CHECK: # Section 0x00000006
+// CHECK-NEXT: ('sh_name', 0x00000030) # '.rodata.cst8
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000012)
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size', 0x00000010)
+// CHECK-NEXT: ('sh_link',
+// CHECK-NEXT: ('sh_info',
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000008)
diff --git a/test/MC/ELF/file.s b/test/MC/ELF/file.s
new file mode 100644
index 0000000..d8ccbe6
--- /dev/null
+++ b/test/MC/ELF/file.s
@@ -0,0 +1,23 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the STT_FILE symbol precedes the other local symbols.
+
+.file "foo"
+foa:
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000001) # 'foo'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000004)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x0000fff1)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000005) # 'foa'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
diff --git a/test/MC/ELF/global-offset.s b/test/MC/ELF/global-offset.s
new file mode 100644
index 0000000..aa63287
--- /dev/null
+++ b/test/MC/ELF/global-offset.s
@@ -0,0 +1,18 @@
+// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// We test that _GLOBAL_OFFSET_TABLE_ will account for the two bytes at the
+// start of the addl.
+
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+
+// CHECK: ('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type',
+// CHECK-NEXT: ('sh_flags',
+// CHECK-NEXT: ('sh_addr',
+// CHECK-NEXT: ('sh_offset',
+// CHECK-NEXT: ('sh_size',
+// CHECK-NEXT: ('sh_link',
+// CHECK-NEXT: ('sh_info',
+// CHECK-NEXT: ('sh_addralign',
+// CHECK-NEXT: ('sh_entsize',
+// CHECK-NEXT: ('_section_data', '81c30200 0000')
diff --git a/test/MC/ELF/got.s b/test/MC/ELF/got.s
new file mode 100644
index 0000000..798150e
--- /dev/null
+++ b/test/MC/ELF/got.s
@@ -0,0 +1,25 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that this produces a R_X86_64_GOT32 and that we have an undefined
+// reference to _GLOBAL_OFFSET_TABLE_.
+
+ movl foo@GOT, %eax
+ movl foo@GOTPCREL(%rip), %eax
+
+// CHECK: (('st_name', 0x00000005) # '_GLOBAL_OFFSET_TABLE_'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+
+// CHECK: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x00000003)
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x00000009)
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/ident.s b/test/MC/ELF/ident.s
new file mode 100644
index 0000000..f79458f
--- /dev/null
+++ b/test/MC/ELF/ident.s
@@ -0,0 +1,17 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// CHECK: (('sh_name', 0x00000012) # '.comment'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000030)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x0000000d)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000001)
+// CHECK-NEXT: ('_section_data', '00666f6f 00626172 007a6564 00')
+
+ .ident "foo"
+ .ident "bar"
+ .ident "zed"
diff --git a/test/MC/ELF/invalid-symver.s b/test/MC/ELF/invalid-symver.s
new file mode 100644
index 0000000..3c4f8c0
--- /dev/null
+++ b/test/MC/ELF/invalid-symver.s
@@ -0,0 +1,7 @@
+// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t 2> %t.out
+// RUN: FileCheck --input-file=%t.out %s
+
+// CHECK: A @@ version cannot be undefined
+
+ .symver undefined, foo@@bar
+ .long undefined
diff --git a/test/MC/ELF/leb128.s b/test/MC/ELF/leb128.s
new file mode 100644
index 0000000..e5f31f4
--- /dev/null
+++ b/test/MC/ELF/leb128.s
@@ -0,0 +1,19 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+ .sleb128 .Lfoo - .Lbar
+.Lfoo:
+ .uleb128 .Lbar - .Lfoo
+ .fill 126, 1, 0x90
+.Lbar:
+
+// CHECK: (('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000081)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '817f7f90 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90')
diff --git a/test/MC/ELF/local-reloc.s b/test/MC/ELF/local-reloc.s
new file mode 100644
index 0000000..c2b4771
--- /dev/null
+++ b/test/MC/ELF/local-reloc.s
@@ -0,0 +1,31 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that relocations with local symbols are represented as relocations
+// with the section. They should be equivalent, but gas behaves like this.
+
+ movl foo, %r14d
+foo:
+
+// Section number 1 is .text
+// CHECK: # Section 0x00000001
+// CHECK-next: (('sh_name', 0x00000001) # '.text'
+
+// Symbol number 2 is section number 1
+// CHECK: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+
+// Relocation refers to symbol number 2
+// CHECK: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type',
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/merge.s b/test/MC/ELF/merge.s
new file mode 100644
index 0000000..ec02228
--- /dev/null
+++ b/test/MC/ELF/merge.s
@@ -0,0 +1,97 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that PIC relocations with local symbols in a mergeable section are done
+// with a reference to the symbol. Not sure if this is a linker limitation,
+// but this matches the behavior of gas.
+
+// Non-PIC relocations with 0 offset don't use the symbol.
+
+
+ movsd .Lfoo(%rip), %xmm1
+ movl $.Lfoo, %edi
+ movl $.Lfoo+2, %edi
+ jmp foo@PLT
+ movq foo@GOTPCREL, %rax
+ movq zed, %rax
+
+ .section .sec1,"aM",@progbits,16
+.Lfoo:
+zed:
+ .global zed
+
+ .section bar,"ax",@progbits
+foo:
+
+// Section 4 is "sec1"
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.sec1'
+
+// Symbol number 1 is .Lfoo
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000001) # '.Lfoo'
+
+// Symbol number 2 is foo
+// CHECK: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000007) # 'foo'
+
+// Symbol number 6 is section 4
+// CHECK: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000004)
+
+// Symbol number 8 is zed
+// CHECK: # Symbol 0x00000008
+// CHECK-NEXT: (('st_name', 0x0000000b) # 'zed'
+
+// Relocation 0 refers to symbol 1
+// CHECK: ('_relocations', [
+// CHECK-NEXT: # Relocation 0
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000001)
+// CHECK-NEXT: ('r_type', 0x00000002
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+
+// Relocation 1 refers to symbol 6
+// CHECK-NEXT: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+
+// Relocation 2 refers to symbol 1
+// CHECK-NEXT: # Relocation 0x00000002
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000001)
+// CHECK-NEXT: ('r_type', 0x0000000a
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+
+// Relocation 3 refers to symbol 2
+// CHECK-NEXT: # Relocation 0x00000003
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000004
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+
+// Relocation 4 refers to symbol 2
+// CHECK-NEXT: # Relocation 0x00000004
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x00000009
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+
+// Relocation 5 refers to symbol 8
+// CHECK-NEXT: # Relocation 0x00000005
+// CHECK-NEXT: (('r_offset', 0x00000023)
+// CHECK-NEXT: ('r_sym', 0x00000008)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/n_bytes.s b/test/MC/ELF/n_bytes.s
new file mode 100644
index 0000000..59d67bf
--- /dev/null
+++ b/test/MC/ELF/n_bytes.s
@@ -0,0 +1,20 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+ .2byte 42, 1, 2, 3
+ .4byte 42, 1, 2, 3
+ .8byte 42, 1, 2, 3
+ .int 42, 1, 2, 3
+
+// CHECK: # Section 0x00000001
+// CHECK-NEXT: (('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000048)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', '2a000100 02000300 2a000000 01000000 02000000 03000000 2a000000 00000000 01000000 00000000 02000000 00000000 03000000 00000000 2a000000 01000000 02000000 03000000')
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/no-fixup.s b/test/MC/ELF/no-fixup.s
new file mode 100644
index 0000000..6e719bc
--- /dev/null
+++ b/test/MC/ELF/no-fixup.s
@@ -0,0 +1,16 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t -stats 2>%t.out
+// RUN: FileCheck --input-file=%t.out %s
+
+// Test that we create no fixups for this file since "a" and "b" are in the
+// same fragment.
+
+// CHECK: assembler - Number of assembler layout and relaxation steps
+// CHECK-NEXT: assembler - Number of emitted assembler fragments
+// CHECK-NEXT: assembler - Number of emitted object file bytes
+// CHECK-NEXT: assembler - Number of fragment layouts
+// CHECK-NEXT: mcexpr - Number of MCExpr evaluations
+
+a:
+ nop
+b:
+ .long b - a
diff --git a/test/MC/ELF/noexec.s b/test/MC/ELF/noexec.s
new file mode 100644
index 0000000..87b6f3a
--- /dev/null
+++ b/test/MC/ELF/noexec.s
@@ -0,0 +1,24 @@
+// RUN: llvm-mc -mc-no-exec-stack -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// CHECK: # Section 0x00000004
+// CHECK-NEXT: (('sh_name', 0x00000012) # '.note.GNU-stack'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+
+// CHECK: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000004)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/norelocation.s b/test/MC/ELF/norelocation.s
new file mode 100644
index 0000000..0a0efe1
--- /dev/null
+++ b/test/MC/ELF/norelocation.s
@@ -0,0 +1,18 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+ call bar
+bar:
+
+// CHECK: ('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000005)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', 'e8000000 00')
+// CHECK-NOT: .rela.text
+// CHECK: shstrtab
diff --git a/test/MC/ELF/pic-diff.s b/test/MC/ELF/pic-diff.s
new file mode 100644
index 0000000..d1fc909
--- /dev/null
+++ b/test/MC/ELF/pic-diff.s
@@ -0,0 +1,29 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// CHECK: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000005) # 'baz'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// CHECK: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x0000000c)
+// CHECK-NEXT: ('r_sym', 0x00000005)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x00000008)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+
+.zero 4
+.data
+
+.zero 1
+.align 4
+foo:
+.zero 8
+.long baz - foo
diff --git a/test/MC/ELF/plt.s b/test/MC/ELF/plt.s
new file mode 100644
index 0000000..7d0073c
--- /dev/null
+++ b/test/MC/ELF/plt.s
@@ -0,0 +1,14 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that this produces a R_X86_64_PLT32.
+
+ jmp foo@PLT
+
+// CHECK: ('_relocations', [
+// CHECK-NEXT: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x00000004)
+// CHECK-NEXT: ('r_addend',
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/relax-arith.s b/test/MC/ELF/relax-arith.s
new file mode 100644
index 0000000..3236b41
--- /dev/null
+++ b/test/MC/ELF/relax-arith.s
@@ -0,0 +1,75 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that we correctly relax these instructions into versions that use
+// 16 or 32 bit immediate values.
+
+bar:
+// CHECK: 'imul'
+// CHECK: ('_section_data', '6669db00 0066691c 25000000 00000069 db000000 00691c25 00000000 00000000 4869db00 00000048 691c2500 00000000 000000')
+ .section imul
+ imul $foo, %bx, %bx
+ imul $foo, bar, %bx
+ imul $foo, %ebx, %ebx
+ imul $foo, bar, %ebx
+ imul $foo, %rbx, %rbx
+ imul $foo, bar, %rbx
+
+// CHECK: and'
+// CHECK:('_section_data', '6681e300 00668124 25000000 00000081 e3000000 00812425 00000000 00000000 4881e300 00000048 81242500 00000000 000000')
+ .section and
+ and $foo, %bx
+ andw $foo, bar
+ and $foo, %ebx
+ andl $foo, bar
+ and $foo, %rbx
+ andq $foo, bar
+
+// CHECK: 'or'
+// CHECK: ('_section_data', '6681cb00 0066810c 25000000 00000081 cb000000 00810c25 00000000 00000000 4881cb00 00000048 810c2500 00000000 000000')
+ .section or
+ or $foo, %bx
+ orw $foo, bar
+ or $foo, %ebx
+ orl $foo, bar
+ or $foo, %rbx
+ orq $foo, bar
+
+// CHECK: 'xor'
+// CHECK: ('_section_data', '6681f300 00668134 25000000 00000081 f3000000 00813425 00000000 00000000 4881f300 00000048 81342500 00000000 000000')
+ .section xor
+ xor $foo, %bx
+ xorw $foo, bar
+ xor $foo, %ebx
+ xorl $foo, bar
+ xor $foo, %rbx
+ xorq $foo, bar
+
+// CHECK: 'add'
+// CHECK: ('_section_data', '6681c300 00668104 25000000 00000081 c3000000 00810425 00000000 00000000 4881c300 00000048 81042500 00000000 000000')
+ .section add
+ add $foo, %bx
+ addw $foo, bar
+ add $foo, %ebx
+ addl $foo, bar
+ add $foo, %rbx
+ addq $foo, bar
+
+// CHECK: 'sub'
+// CHECK: ('_section_data', '6681eb00 0066812c 25000000 00000081 eb000000 00812c25 00000000 00000000 4881eb00 00000048 812c2500 00000000 000000')
+ .section sub
+ sub $foo, %bx
+ subw $foo, bar
+ sub $foo, %ebx
+ subl $foo, bar
+ sub $foo, %rbx
+ subq $foo, bar
+
+// CHECK: 'cmp'
+// CHECK: ('_section_data', '6681fb00 0066813c 25000000 00000081 fb000000 00813c25 00000000 00000000 4881fb00 00000048 813c2500 00000000 000000')
+ .section cmp
+ cmp $foo, %bx
+ cmpw $foo, bar
+ cmp $foo, %ebx
+ cmpl $foo, bar
+ cmp $foo, %rbx
+ cmpq $foo, bar
diff --git a/test/MC/ELF/relax-crash.s b/test/MC/ELF/relax-crash.s
new file mode 100644
index 0000000..442825d
--- /dev/null
+++ b/test/MC/ELF/relax-crash.s
@@ -0,0 +1,11 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t
+
+// This is a test that we don't crash. We used to do so by going in a infinite
+// recursion trying to compute the size of a MCDwarfLineAddrFragment.
+
+ .section .debug_line,"",@progbits
+ .text
+ .file 1 "Disassembler.ii"
+ .section foo
+ .loc 1 1 0
+ ret
diff --git a/test/MC/ELF/relax.s b/test/MC/ELF/relax.s
new file mode 100644
index 0000000..2c0e285
--- /dev/null
+++ b/test/MC/ELF/relax.s
@@ -0,0 +1,27 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that we do not relax these.
+
+bar:
+.globl foo
+foo:
+ .set zed,foo
+
+ jmp bar
+ jmp foo
+ jmp zed
+
+// CHECK: ('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000006)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ('_section_data', 'ebfeebfc ebfa')
+
+// CHECK: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000005) # 'foo'
diff --git a/test/MC/ELF/relocation-386.s b/test/MC/ELF/relocation-386.s
new file mode 100644
index 0000000..f106f89
--- /dev/null
+++ b/test/MC/ELF/relocation-386.s
@@ -0,0 +1,226 @@
+// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that we produce the correct relocation types and that the relocations
+// correctly point to the section or the symbol.
+
+// Section 3 is bss
+// CHECK: # Section 0x00000003
+// CHECK-NEXT: (('sh_name', 0x0000000d) # '.bss'
+
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000005) # '.Lfoo'
+
+// Symbol 4 is zed
+// CHECK: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000035) # 'zed'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000004)
+
+// Symbol 7 is section 3
+// CHECK: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000003)
+
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000002)
+// CHECK-NEXT: ('r_sym', 0x00000001)
+// CHECK-NEXT: ('r_type', 0x00000009)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x00000004)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000002
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ),
+
+// Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss)
+// CHECK-NEXT: # Relocation 0x00000003
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym', 0x00000007
+// CHECK-NEXT: ('r_type',
+// CHECK-NEXT: ),
+
+// Relocation 4 (bar2@GOT) is of type R_386_GOT32
+// CHECK-NEXT: # Relocation 0x00000004
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x00000003
+// CHECK-NEXT: ),
+
+// Relocation 5 (foo@TLSGD) is of type R_386_TLS_GD
+// CHECK-NEXT: # Relocation 0x00000005
+// CHECK-NEXT: (('r_offset', 0x00000020)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x00000012)
+// CHECK-NEXT: ),
+
+// Relocation 6 ($foo@TPOFF) is of type R_386_TLS_LE_32
+// CHECK-NEXT: # Relocation 0x00000006
+// CHECK-NEXT: (('r_offset', 0x00000025)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x00000022)
+// CHECK-NEXT: ),
+
+// Relocation 7 (foo@INDNTPOFF) is of type R_386_TLS_IE
+// CHECK-NEXT: # Relocation 0x00000007
+// CHECK-NEXT: (('r_offset', 0x0000002b)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x0000000f)
+// CHECK-NEXT: ),
+
+// Relocation 8 (foo@NTPOFF) is of type R_386_TLS_LE
+// CHECK-NEXT: # Relocation 0x00000008
+// CHECK-NEXT: (('r_offset', 0x00000031)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x00000011)
+// CHECK-NEXT: ),
+
+// Relocation 9 (foo@GOTNTPOFF) is of type R_386_TLS_GOTIE
+// CHECK-NEXT: # Relocation 0x00000009
+// CHECK-NEXT: (('r_offset', 0x00000037)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x00000010)
+// CHECK-NEXT: ),
+
+// Relocation 10 (foo@TLSLDM) is of type R_386_TLS_LDM
+// CHECK-NEXT: # Relocation 0x0000000a
+// CHECK-NEXT: (('r_offset', 0x0000003d)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x00000013)
+// CHECK-NEXT: ),
+
+// Relocation 11 (foo@DTPOFF) is of type R_386_TLS_LDO_32
+// CHECK-NEXT: # Relocation 0x0000000b
+// CHECK-NEXT: (('r_offset', 0x00000043)
+// CHECK-NEXT: ('r_sym', 0x0000000d)
+// CHECK-NEXT: ('r_type', 0x00000020)
+// CHECK-NEXT: ),
+// Relocation 12 (calll 4096) is of type R_386_PC32
+// CHECK-NEXT: # Relocation 0x0000000c
+// CHECK-NEXT: (('r_offset', 0x00000048)
+// CHECK-NEXT: ('r_sym', 0x00000000)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ),
+// Relocation 13 (zed@GOT) is of type R_386_GOT32 and uses the symbol
+// CHECK-NEXT: # Relocation 0x0000000d
+// CHECK-NEXT: (('r_offset', 0x0000004e)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000003)
+// CHECK-NEXT: ),
+// Relocation 14 (zed@GOTOFF) is of type R_386_GOTOFF and uses the symbol
+// CHECK-NEXT: # Relocation 0x0000000e
+// CHECK-NEXT: (('r_offset', 0x00000054)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000009)
+// CHECK-NEXT: ),
+// Relocation 15 (zed@INDNTPOFF) is of type R_386_TLS_IE and uses the symbol
+// CHECK-NEXT: # Relocation 0x0000000f
+// CHECK-NEXT: (('r_offset', 0x0000005a)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x0000000f)
+// CHECK-NEXT: ),
+// Relocation 16 (zed@NTPOFF) is of type R_386_TLS_LE and uses the symbol
+// CHECK-NEXT: # Relocation 0x00000010
+// CHECK-NEXT: (('r_offset', 0x00000060)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000011)
+// CHECK-NEXT: ),
+// Relocation 17 (zed@GOTNTPOFF) is of type R_386_TLS_GOTIE and uses the symbol
+// CHECK-NEXT: # Relocation 0x00000011
+// CHECK-NEXT: (('r_offset', 0x00000066)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000010)
+// CHECK-NEXT: ),
+// Relocation 18 (zed@PLT) is of type R_386_PLT32 and uses the symbol
+// CHECK-NEXT: # Relocation 0x00000012
+// CHECK-NEXT: (('r_offset', 0x0000006b)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000004)
+// CHECK-NEXT: ),
+// Relocation 19 (zed@TLSGD) is of type R_386_TLS_GD and uses the symbol
+// CHECK-NEXT: # Relocation 0x00000013
+// CHECK-NEXT: (('r_offset', 0x00000071)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000012)
+// CHECK-NEXT: ),
+// Relocation 20 (zed@TLSLDM) is of type R_386_TLS_LDM and uses the symbol
+// CHECK-NEXT: # Relocation 0x00000014
+// CHECK-NEXT: (('r_offset', 0x00000077)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000013)
+// CHECK-NEXT: ),
+// Relocation 21 (zed@TPOFF) is of type R_386_TLS_LE_32 and uses the symbol
+// CHECK-NEXT:# Relocation 0x00000015
+// CHECK-NEXT: (('r_offset', 0x0000007d)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000022)
+// CHECK-NEXT: ),
+// Relocation 22 (zed@DTPOFF) is of type R_386_TLS_LDO_32 and uses the symbol
+// CHECK-NEXT: Relocation 0x00000016
+// CHECK-NEXT: (('r_offset', 0x00000083)
+// CHECK-NEXT: ('r_sym', 0x00000004)
+// CHECK-NEXT: ('r_type', 0x00000020)
+// CHECK-NEXT: ),
+// Relocation 23 ($bar) is of type R_386_32 and uses the section
+// CHECK-NEXT: Relocation 0x00000017
+// CHECK-NEXT: (('r_offset',
+// CHECK-NEXT: ('r_sym',
+// CHECK-NEXT: ('r_type', 0x00000001)
+// CHECK-NEXT: ),
+
+ .text
+bar:
+ leal .Lfoo@GOTOFF(%ebx), %eax
+
+ .global bar2
+bar2:
+ calll bar2@PLT
+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
+ movb bar3@GOTOFF(%ebx), %al
+
+ .type bar3,@object
+ .local bar3
+ .comm bar3,1,1
+
+ movl bar2j@GOT(%eax), %eax
+
+ leal foo@TLSGD(, %ebx,1), %eax
+ movl $foo@TPOFF, %edx
+ movl foo@INDNTPOFF, %ecx
+ addl foo@NTPOFF(%eax), %eax
+ addl foo@GOTNTPOFF(%ebx), %ecx
+ leal foo@TLSLDM(%ebx), %eax
+ leal foo@DTPOFF(%eax), %edx
+ calll 4096
+ movl zed@GOT(%eax), %eax
+ movl zed@GOTOFF(%eax), %eax
+ movl zed@INDNTPOFF(%eax), %eax
+ movl zed@NTPOFF(%eax), %eax
+ movl zed@GOTNTPOFF(%eax), %eax
+ call zed@PLT
+ movl zed@TLSGD(%eax), %eax
+ movl zed@TLSLDM(%eax), %eax
+ movl zed@TPOFF(%eax), %eax
+ movl zed@DTPOFF(%eax), %eax
+ pushl $bar
+
+ .section zedsec,"awT",@progbits
+zed:
+ .long 0
+
+ .section .rodata.str1.16,"aMS",@progbits,1
+.Lfoo:
+ .asciz "bool llvm::llvm_start_multithreaded()"
diff --git a/test/MC/ELF/relocation.s b/test/MC/ELF/relocation.s
new file mode 100644
index 0000000..dabe721
--- /dev/null
+++ b/test/MC/ELF/relocation.s
@@ -0,0 +1,114 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that we produce the correct relocation.
+
+bar:
+ movl $bar, %edx # R_X86_64_32
+ movq $bar, %rdx # R_X86_64_32S
+ movq $bar, bar(%rip) # R_X86_64_32S
+ movl bar, %edx # R_X86_64_32S
+ movq bar, %rdx # R_X86_64_32S
+.long bar # R_X86_64_32
+ leaq foo@GOTTPOFF(%rip), %rax # R_X86_64_GOTTPOFF
+ leaq foo@TLSGD(%rip), %rax # R_X86_64_TLSGD
+ leaq foo@TPOFF(%rax), %rax # R_X86_64_TPOFF32
+ leaq foo@TLSLD(%rip), %rdi # R_X86_64_TLSLD
+ leaq foo@dtpoff(%rax), %rcx # R_X86_64_DTPOFF32
+ pushq $bar
+ movq foo(%rip), %rdx
+ leaq foo-bar(%r14),%r14
+
+
+// CHECK: # Section 0x00000001
+// CHECK: (('sh_name', 0x00000001) # '.text'
+
+// CHECK: # Symbol 0x00000002
+// CHECK: (('st_name', 0x00000000) # ''
+// CHECK: ('st_bind', 0x00000000)
+// CHECK: ('st_type', 0x00000003)
+// CHECK: ('st_other', 0x00000000)
+// CHECK: ('st_shndx', 0x00000001)
+
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000001)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend',
+
+// CHECK: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset', 0x00000008)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend',
+
+// CHECK: # Relocation 0x00000002
+// CHECK-NEXT: (('r_offset', 0x00000013)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend',
+
+// CHECK: # Relocation 0x00000003
+// CHECK-NEXT: (('r_offset', 0x0000001a)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend',
+
+// CHECK: # Relocation 0x00000004
+// CHECK-NEXT: (('r_offset', 0x00000022)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend',
+
+// CHECK: # Relocation 0x00000005
+// CHECK-NEXT: (('r_offset', 0x00000026)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend',
+
+// CHECK: # Relocation 0x00000006
+// CHECK-NEXT: (('r_offset', 0x0000002d)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000016)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+
+// CHECK: # Relocation 0x00000007
+// CHECK-NEXT: (('r_offset', 0x00000034)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000013)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+
+// CHECK: # Relocation 0x00000008
+// CHECK-NEXT: (('r_offset', 0x0000003b)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000017)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+
+// CHECK: # Relocation 0x00000009
+// CHECK-NEXT: (('r_offset', 0x00000042)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000014)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+
+// CHECK: # Relocation 0x0000000a
+// CHECK-NEXT: (('r_offset', 0x00000049)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000015)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+
+// CHECK: # Relocation 0x0000000b
+// CHECK-NEXT: (('r_offset', 0x0000004e)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000b)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+
+// CHECK: # Relocation 0x0000000c
+// CHECK-NEXT: (('r_offset', 0x00000055)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+
+// CHECK: # Relocation 0x0000000d
+// CHECK-NEXT: (('r_offset', 0x0000005c)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0x0000005c)
diff --git a/test/MC/ELF/rename.s b/test/MC/ELF/rename.s
new file mode 100644
index 0000000..3606560
--- /dev/null
+++ b/test/MC/ELF/rename.s
@@ -0,0 +1,46 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// When doing a rename, all the checks for where the relocation should go
+// should be performed with the original symbol. Only if we decide to relocate
+// with the symbol we should then use the renamed one.
+
+// This is a regression test for a bug where we used bar5@@@zed when deciding
+// if we should relocate with the symbol or with the section and we would then
+// not produce a relocation with .text.
+
+defined1:
+defined3:
+ .symver defined3, bar5@@@zed
+ .long defined3
+
+ .global defined1
+
+// Section 1 is .text
+// CHECK: # Section 0x00000001
+// CHECK-NEXT: (('sh_name', 0x00000001) # '.text'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000040)
+// CHECK-NEXT: ('sh_size', 0x00000004)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000004)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+
+// Symbol 2 is section 1
+// CHECK: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+
+// The relocation uses symbol 2
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000000)
+// CHECK-NEXT: ('r_sym', 0x00000002)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
diff --git a/test/MC/ELF/section.s b/test/MC/ELF/section.s
new file mode 100644
index 0000000..861dc4f
--- /dev/null
+++ b/test/MC/ELF/section.s
@@ -0,0 +1,110 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that these names are accepted.
+
+.section .note.GNU-stack,"",@progbits
+.section .note.GNU-stack2,"",%progbits
+.section .note.GNU-,"",@progbits
+.section -.note.GNU,"",@progbits
+
+// CHECK: ('sh_name', 0x00000012) # '.note.GNU-stack'
+// CHECK: ('sh_name', 0x00000022) # '.note.GNU-stack2'
+// CHECK: ('sh_name', 0x00000033) # '.note.GNU-'
+// CHECK: ('sh_name', 0x0000003e) # '-.note.GNU'
+
+// Test that the defaults are used
+
+.section .init
+.section .fini
+.section .rodata
+.section zed, ""
+
+// CHECK: (('sh_name', 0x00000049) # '.init'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Section 0x0000000b
+// CHECK-NEXT: (('sh_name', 0x0000004f) # '.fini'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000006)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Section 0x0000000c
+// CHECK-NEXT: (('sh_name', 0x00000055) # '.rodata'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Section 0x0000000d
+// CHECK-NEXT: (('sh_name', 0x0000005d) # 'zed'
+// CHECK-NEXT: ('sh_type', 0x00000001)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+
+.section .note.test,"",@note
+// CHECK: (('sh_name', 0x00000061) # '.note.test'
+// CHECK-NEXT: ('sh_type', 0x00000007)
+// CHECK-NEXT: ('sh_flags', 0x00000000)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+
+// Test that we can parse these
+foo:
+bar:
+.section .text.foo,"axG",@progbits,foo,comdat
+.section .text.bar,"axMG",@progbits,42,bar,comdat
+
+// Test that the default values are not used
+
+.section .eh_frame,"a",@unwind
+
+// CHECK: (('sh_name', 0x00000080) # '.eh_frame'
+// CHECK-NEXT: ('sh_type', 0x70000001)
+// CHECK-NEXT: ('sh_flags', 0x00000002)
+// CHECK-NEXT: ('sh_addr', 0x00000000)
+// CHECK-NEXT: ('sh_offset', 0x00000050)
+// CHECK-NEXT: ('sh_size', 0x00000000)
+// CHECK-NEXT: ('sh_link', 0x00000000)
+// CHECK-NEXT: ('sh_info', 0x00000000)
+// CHECK-NEXT: ('sh_addralign', 0x00000001)
+// CHECK-NEXT: ('sh_entsize', 0x00000000)
+// CHECK-NEXT: ),
+
+// Test that we handle the strings like gas
+.section bar-"foo"
+.section "foo"
+
+// CHECK: ('sh_name', 0x0000008a) # 'bar-"foo"'
+// CHECK: ('sh_name', 0x00000094) # 'foo'
diff --git a/test/MC/ELF/set.s b/test/MC/ELF/set.s
new file mode 100644
index 0000000..69d6c91
--- /dev/null
+++ b/test/MC/ELF/set.s
@@ -0,0 +1,34 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+// Test that we emit the correct value.
+
+.set kernbase,0xffffffff80000000
+
+// CHECK: (('st_name', 0x00000001) # 'kernbase'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x0000fff1)
+// CHECK-NEXT: ('st_value', 0xffffffff80000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// Test that we accept .set of a symbol after it has been used in a statement.
+
+ jmp foo
+ .set foo, bar
+
+// or a .quad
+
+ .quad foo2
+ .set foo2,bar2
+
+// Test that there is an undefined reference to bar
+// CHECK: (('st_name', 0x0000000a) # 'bar'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/sleb.s b/test/MC/ELF/sleb.s
new file mode 100644
index 0000000..00e5b4b
--- /dev/null
+++ b/test/MC/ELF/sleb.s
@@ -0,0 +1,29 @@
+// RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=ELF_32 %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=ELF_64 %s
+// RUN: llvm-mc -filetype=obj -triple i386-apple-darwin9 %s -o - | macho-dump --dump-section-data | FileCheck -check-prefix=MACHO_32 %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-apple-darwin9 %s -o - | macho-dump --dump-section-data | FileCheck -check-prefix=MACHO_64 %s
+
+ .text
+foo:
+ .sleb128 0
+ .sleb128 1
+ .sleb128 -1
+ .sleb128 63
+ .sleb128 -64
+
+ .sleb128 64
+ .sleb128 -65
+
+ .sleb128 8191
+ .sleb128 -8192
+
+ .sleb128 8193
+
+// ELF_32: ('sh_name', 0x00000001) # '.text'
+// ELF_32: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000')
+// ELF_64: ('sh_name', 0x00000001) # '.text'
+// ELF_64: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000')
+// MACHO_32: ('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// MACHO_32: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000')
+// MACHO_64: ('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// MACHO_64: ('_section_data', '00017f3f 40c000bf 7fff3f80 4081c000')
diff --git a/test/MC/ELF/symref.s b/test/MC/ELF/symref.s
new file mode 100644
index 0000000..b99e71b
--- /dev/null
+++ b/test/MC/ELF/symref.s
@@ -0,0 +1,165 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+defined1:
+defined2:
+defined3:
+ .symver defined1, bar1@zed
+ .symver undefined1, bar2@zed
+
+ .symver defined2, bar3@@zed
+
+ .symver defined3, bar5@@@zed
+ .symver undefined3, bar6@@@zed
+
+ .long defined1
+ .long undefined1
+ .long defined2
+ .long defined3
+ .long undefined3
+
+ .global global1
+ .symver global1, g1@@zed
+global1:
+
+
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000013) # 'bar1@zed'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000025) # 'bar3@@zed'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000003
+// CHECK-NEXT: (('st_name', 0x0000002f) # 'bar5@@zed'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000001) # 'defined1'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x0000000a) # 'defined2'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000002)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000008
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000003)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x0000004a) # 'g1@@zed'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000014)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000a
+// CHECK-NEXT: (('st_name', 0x00000042) # 'global1'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000014)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000b
+// CHECK-NEXT: (('st_name', 0x0000001c) # 'bar2@zed'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000c
+// CHECK-NEXT: (('st_name', 0x00000039) # 'bar6@zed'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT:])
+
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000000)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset', 0x00000004)
+// CHECK-NEXT: ('r_sym', 0x0000000b)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000002
+// CHECK-NEXT: (('r_offset', 0x00000008)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000003
+// CHECK-NEXT: (('r_offset', 0x0000000c)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000004
+// CHECK-NEXT: (('r_offset', 0x00000010)
+// CHECK-NEXT: ('r_sym', 0x0000000c)
+// CHECK-NEXT: ('r_type', 0x0000000a)
+// CHECK-NEXT: ('r_addend', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT:])
diff --git a/test/MC/ELF/tls-i386.s b/test/MC/ELF/tls-i386.s
new file mode 100644
index 0000000..459d4cc
--- /dev/null
+++ b/test/MC/ELF/tls-i386.s
@@ -0,0 +1,64 @@
+// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that all symbols are of type STT_TLS.
+
+ movl foo1@NTPOFF(%eax), %eax
+ movl foo2@GOTNTPOFF(%eax), %eax
+ movl foo3@TLSGD(%eax), %eax
+ movl foo4@TLSLDM(%eax), %eax
+ movl foo5@TPOFF(%eax), %eax
+ movl foo6@DTPOFF(%eax), %eax
+
+// CHECK: (('st_name', 0x00000001) # 'foo1'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000006) # 'foo2'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x0000000b) # 'foo3'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000008
+// CHECK-NEXT: (('st_name', 0x00000010) # 'foo4'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x00000015) # 'foo5'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000a
+// CHECK-NEXT: (('st_name', 0x0000001a) # 'foo6'
+// CHECK-NEXT: ('st_value', 0x00000000)
+// CHECK-NEXT: ('st_size', 0x00000000)
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/tls.s b/test/MC/ELF/tls.s
new file mode 100644
index 0000000..2517a5b
--- /dev/null
+++ b/test/MC/ELF/tls.s
@@ -0,0 +1,48 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that all symbols are of type STT_TLS.
+
+ leaq foo1@TLSGD(%rip), %rdi
+ leaq foo2@GOTTPOFF(%rip), %rdi
+ leaq foo3@TLSLD(%rip), %rdi
+
+ .section .zed,"awT",@progbits
+foobar:
+ .long 43
+
+// CHECK: (('st_name', 0x00000010) # 'foobar'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000004)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// CHECK: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x00000001) # 'foo1'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000008
+// CHECK-NEXT: (('st_name', 0x00000006) # 'foo2'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x0000000b) # 'foo3'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000006)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/type.s b/test/MC/ELF/type.s
new file mode 100644
index 0000000..4b98c02
--- /dev/null
+++ b/test/MC/ELF/type.s
@@ -0,0 +1,32 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that both % and @ are accepted.
+ .global foo
+ .type foo,%function
+foo:
+
+ .global bar
+ .type bar,@object
+bar:
+
+// Test that gnu_unique_object is accepted.
+ .type zed,@gnu_unique_object
+
+// CHECK: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000005) # 'bar'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000001) # 'foo'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000002)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/uleb.s b/test/MC/ELF/uleb.s
new file mode 100644
index 0000000..1e4734b
--- /dev/null
+++ b/test/MC/ELF/uleb.s
@@ -0,0 +1,22 @@
+// RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=ELF_32 %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck -check-prefix=ELF_64 %s
+// RUN: llvm-mc -filetype=obj -triple i386-apple-darwin9 %s -o - | macho-dump --dump-section-data | FileCheck -check-prefix=MACHO_32 %s
+// RUN: llvm-mc -filetype=obj -triple x86_64-apple-darwin9 %s -o - | macho-dump --dump-section-data | FileCheck -check-prefix=MACHO_64 %s
+
+ .text
+foo:
+ .uleb128 0
+ .uleb128 1
+ .uleb128 127
+ .uleb128 128
+ .uleb128 16383
+ .uleb128 16384
+
+// ELF_32: ('sh_name', 0x00000001) # '.text'
+// ELF_32: ('_section_data', '00017f80 01ff7f80 8001')
+// ELF_64: ('sh_name', 0x00000001) # '.text'
+// ELF_64: ('_section_data', '00017f80 01ff7f80 8001')
+// MACHO_32: ('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// MACHO_32: ('_section_data', '00017f80 01ff7f80 8001')
+// MACHO_64: ('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// MACHO_64: ('_section_data', '00017f80 01ff7f80 8001')
diff --git a/test/MC/ELF/undef.s b/test/MC/ELF/undef.s
new file mode 100644
index 0000000..fc3a2d2
--- /dev/null
+++ b/test/MC/ELF/undef.s
@@ -0,0 +1,46 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test which symbols should be in the symbol table
+
+ .long .Lsym1
+.Lsym2:
+.Lsym3:
+.Lsym4 = .Lsym2 - .Lsym3
+ .long .Lsym4
+
+ .type .Lsym5,@object
+ .type sym6,@object
+ .long sym6
+
+ .section .rodata.str1.1,"aMS",@progbits,1
+.Lsym7:
+.Lsym8:
+
+ .text
+ movsd .Lsym8(%rip), %xmm1
+
+// CHECK: ('_symbols', [
+// CHECK-NEXT: # Symbol 0x00000000
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x0000000d) # '.Lsym8'
+// CHECK: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000003
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000001) # '.Lsym1'
+// CHECK: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x00000008) # 'sym6'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000001)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/undef2.s b/test/MC/ELF/undef2.s
new file mode 100644
index 0000000..9544fbc
--- /dev/null
+++ b/test/MC/ELF/undef2.s
@@ -0,0 +1,10 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that this produces an undefined reference to .Lfoo
+
+ je .Lfoo
+
+// CHECK: ('_symbols', [
+// CHECK: (('st_name', 0x00000001) # '.Lfoo'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK: (('sh_name', 0x00000024) # '.strtab'
diff --git a/test/MC/ELF/weak.s b/test/MC/ELF/weak.s
new file mode 100644
index 0000000..67e9b18
--- /dev/null
+++ b/test/MC/ELF/weak.s
@@ -0,0 +1,30 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that this produces a weak undefined symbol.
+
+ .weak foo
+ .long foo
+
+// And that bar is after all local symbols and has non zero value.
+ .weak bar
+bar:
+
+//CHECK: # Symbol 0x00000004
+//CHECK-NEXT: (('st_name', 0x00000005) # 'bar'
+//CHECK-NEXT: ('st_bind', 0x00000002)
+//CHECK-NEXT: ('st_type', 0x00000000)
+//CHECK-NEXT: ('st_other', 0x00000000)
+//CHECK-NEXT: ('st_shndx', 0x00000001)
+//CHECK-NEXT: ('st_value', 0x0000000000000004)
+//CHECK-NEXT: ('st_size', 0x0000000000000000)
+//CHECK-NEXT: ),
+//CHECK-NEXT: # Symbol 0x00000005
+//CHECK: (('st_name', 0x00000001) # 'foo'
+//CHECK-NEXT: ('st_bind', 0x00000002)
+//CHECK-NEXT: ('st_type', 0x00000000)
+//CHECK-NEXT: ('st_other', 0x00000000)
+//CHECK-NEXT: ('st_shndx', 0x00000000)
+//CHECK-NEXT: ('st_value', 0x0000000000000000)
+//CHECK-NEXT: ('st_size', 0x0000000000000000)
+//CHECK-NEXT: ),
+//CHECK-NEXT: ])
diff --git a/test/MC/ELF/weakref-plt.s b/test/MC/ELF/weakref-plt.s
new file mode 100644
index 0000000..26ba3f6
--- /dev/null
+++ b/test/MC/ELF/weakref-plt.s
@@ -0,0 +1,8 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+ .weakref bar,foo
+ call bar@PLT
+
+// CHECK: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000001) # 'foo'
+// CHECK-NEXT: ('st_bind', 0x00000002)
diff --git a/test/MC/ELF/weakref-reloc.s b/test/MC/ELF/weakref-reloc.s
new file mode 100644
index 0000000..c7cd764
--- /dev/null
+++ b/test/MC/ELF/weakref-reloc.s
@@ -0,0 +1,49 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// Test that the relocations point to the correct symbols. We used to get the
+// symbol index wrong for weakrefs when creating _GLOBAL_OFFSET_TABLE_.
+
+ .weakref bar,foo
+ call zed@PLT
+ call bar
+
+// CHECK: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000009) # '_GLOBAL_OFFSET_TABLE_'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000001) # 'foo'
+// CHECK-NEXT: ('st_bind', 0x00000002)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000005) # 'zed'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+
+// CHECK: # Relocation 0x00000000
+// CHECK-NEXT: (('r_offset', 0x00000001)
+// CHECK-NEXT: ('r_sym', 0x00000006)
+// CHECK-NEXT: ('r_type', 0x00000004)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Relocation 0x00000001
+// CHECK-NEXT: (('r_offset', 0x00000006)
+// CHECK-NEXT: ('r_sym', 0x00000005)
+// CHECK-NEXT: ('r_type', 0x00000002)
+// CHECK-NEXT: ('r_addend', 0xfffffffc)
+// CHECK-NEXT: ),
diff --git a/test/MC/ELF/weakref.s b/test/MC/ELF/weakref.s
new file mode 100644
index 0000000..aea10d1
--- /dev/null
+++ b/test/MC/ELF/weakref.s
@@ -0,0 +1,234 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump | FileCheck %s
+
+// This is a long test that checks that the aliases created by weakref are
+// never in the symbol table and that the only case it causes a symbol to
+// be output as a weak undefined symbol is if that variable is not defined
+// in this file and all the references to it are done via the alias.
+
+ .weakref foo1, bar1
+
+ .weakref foo2, bar2
+ .long bar2
+
+ .weakref foo3, bar3
+ .long foo3
+
+ .weakref foo4, bar4
+ .long foo4
+ .long bar4
+
+ .weakref foo5, bar5
+ .long bar5
+ .long foo5
+
+bar6:
+ .weakref foo6, bar6
+
+bar7:
+ .weakref foo7, bar7
+ .long bar7
+
+bar8:
+ .weakref foo8, bar8
+ .long foo8
+
+bar9:
+ .weakref foo9, bar9
+ .long foo9
+ .long bar9
+
+bar10:
+ .global bar10
+ .weakref foo10, bar10
+ .long bar10
+ .long foo10
+
+bar11:
+ .global bar11
+ .weakref foo11, bar11
+
+bar12:
+ .global bar12
+ .weakref foo12, bar12
+ .long bar12
+
+bar13:
+ .global bar13
+ .weakref foo13, bar13
+ .long foo13
+
+bar14:
+ .global bar14
+ .weakref foo14, bar14
+ .long foo14
+ .long bar14
+
+bar15:
+ .global bar15
+ .weakref foo15, bar15
+ .long bar15
+ .long foo15
+
+// CHECK: # Symbol 0x00000000
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000001
+// CHECK-NEXT: (('st_name', 0x00000015) # 'bar6'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000018)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000002
+// CHECK-NEXT: (('st_name', 0x0000001a) # 'bar7'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000018)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000003
+// CHECK-NEXT: (('st_name', 0x0000001f) # 'bar8'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x000000000000001c)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000004
+// CHECK-NEXT: (('st_name', 0x00000024) # 'bar9'
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000020)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000005
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000006
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000002)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000007
+// CHECK-NEXT: (('st_name', 0x00000000) # ''
+// CHECK-NEXT: ('st_bind', 0x00000000)
+// CHECK-NEXT: ('st_type', 0x00000003)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000003)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000008
+// CHECK-NEXT: (('st_name', 0x00000029) # 'bar10'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000028)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000009
+// CHECK-NEXT: (('st_name', 0x0000002f) # 'bar11'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000030)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000a
+// CHECK-NEXT: (('st_name', 0x00000035) # 'bar12'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000030)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000b
+// CHECK-NEXT: (('st_name', 0x0000003b) # 'bar13'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000034)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000c
+// CHECK-NEXT: (('st_name', 0x00000041) # 'bar14'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000038)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000d
+// CHECK-NEXT: (('st_name', 0x00000047) # 'bar15'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000001)
+// CHECK-NEXT: ('st_value', 0x0000000000000040)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000e
+// CHECK-NEXT: (('st_name', 0x00000001) # 'bar2'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x0000000f
+// CHECK-NEXT: (('st_name', 0x00000006) # 'bar3'
+// CHECK-NEXT: ('st_bind', 0x00000002)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000010
+// CHECK-NEXT: (('st_name', 0x0000000b) # 'bar4'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 0x00000011
+// CHECK-NEXT: (('st_name', 0x00000010) # 'bar5'
+// CHECK-NEXT: ('st_bind', 0x00000001)
+// CHECK-NEXT: ('st_type', 0x00000000)
+// CHECK-NEXT: ('st_other', 0x00000000)
+// CHECK-NEXT: ('st_shndx', 0x00000000)
+// CHECK-NEXT: ('st_value', 0x0000000000000000)
+// CHECK-NEXT: ('st_size', 0x0000000000000000)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/ELF/zero.s b/test/MC/ELF/zero.s
new file mode 100644
index 0000000..adf21f8
--- /dev/null
+++ b/test/MC/ELF/zero.s
@@ -0,0 +1,16 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | elf-dump --dump-section-data | FileCheck %s
+
+.zero 4
+.zero 1,42
+
+// CHECK: ('sh_name', 0x00000001) # '.text'
+// CHECK: ('sh_type', 0x00000001)
+// CHECK: ('sh_flags', 0x00000006)
+// CHECK: ('sh_addr', 0x00000000)
+// CHECK: ('sh_offset', 0x00000040)
+// CHECK: ('sh_size', 0x00000005)
+// CHECK: ('sh_link', 0x00000000)
+// CHECK: ('sh_info', 0x00000000)
+// CHECK: ('sh_addralign', 0x00000004)
+// CHECK: ('sh_entsize', 0x00000000)
+// CHECK: ('_section_data', '00000000 2a')
diff --git a/test/MC/MBlaze/dg.exp b/test/MC/MBlaze/dg.exp
new file mode 100644
index 0000000..0c4e78e
--- /dev/null
+++ b/test/MC/MBlaze/dg.exp
@@ -0,0 +1,5 @@
+load_lib llvm.exp
+
+if { [llvm_supports_target MBlaze] } {
+ RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp,s}]]
+}
diff --git a/test/MC/MBlaze/mblaze_branch.s b/test/MC/MBlaze/mblaze_branch.s
new file mode 100644
index 0000000..2ec4319
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_branch.s
@@ -0,0 +1,197 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to make sure that all of the TYPE-A instructions supported by
+# the Microblaze can be parsed by the assembly parser.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 000000 00000 00000 00000 00000000000
+
+# CHECK: beq
+# BINARY: 100111 00000 00010 00011 00000000000
+# CHECK: encoding: [0x9c,0x02,0x18,0x00]
+ beq r2, r3
+
+# CHECK: bge
+# BINARY: 100111 00101 00010 00011 00000000000
+# CHECK: encoding: [0x9c,0xa2,0x18,0x00]
+ bge r2, r3
+
+# CHECK: bgt
+# BINARY: 100111 00100 00010 00011 00000000000
+# CHECK: encoding: [0x9c,0x82,0x18,0x00]
+ bgt r2, r3
+
+# CHECK: ble
+# BINARY: 100111 00011 00010 00011 00000000000
+# CHECK: encoding: [0x9c,0x62,0x18,0x00]
+ ble r2, r3
+
+# CHECK: blt
+# BINARY: 100111 00010 00010 00011 00000000000
+# CHECK: encoding: [0x9c,0x42,0x18,0x00]
+ blt r2, r3
+
+# CHECK: bne
+# BINARY: 100111 00001 00010 00011 00000000000
+# CHECK: encoding: [0x9c,0x22,0x18,0x00]
+ bne r2, r3
+
+# CHECK: beqd
+# BINARY: 100111 10000 00010 00011 00000000000
+# CHECK: encoding: [0x9e,0x02,0x18,0x00]
+ beqd r2, r3
+
+# CHECK: bged
+# BINARY: 100111 10101 00010 00011 00000000000
+# CHECK: encoding: [0x9e,0xa2,0x18,0x00]
+ bged r2, r3
+
+# CHECK: bgtd
+# BINARY: 100111 10100 00010 00011 00000000000
+# CHECK: encoding: [0x9e,0x82,0x18,0x00]
+ bgtd r2, r3
+
+# CHECK: bled
+# BINARY: 100111 10011 00010 00011 00000000000
+# CHECK: encoding: [0x9e,0x62,0x18,0x00]
+ bled r2, r3
+
+# CHECK: bltd
+# BINARY: 100111 10010 00010 00011 00000000000
+# CHECK: encoding: [0x9e,0x42,0x18,0x00]
+ bltd r2, r3
+
+# CHECK: bned
+# BINARY: 100111 10001 00010 00011 00000000000
+# CHECK: encoding: [0x9e,0x22,0x18,0x00]
+ bned r2, r3
+
+# CHECK: br
+# BINARY: 100110 00000 00000 00011 00000000000
+# CHECK: encoding: [0x98,0x00,0x18,0x00]
+ br r3
+
+# CHECK: bra
+# BINARY: 100110 00000 01000 00011 00000000000
+# CHECK: encoding: [0x98,0x08,0x18,0x00]
+ bra r3
+
+# CHECK: brd
+# BINARY: 100110 00000 10000 00011 00000000000
+# CHECK: encoding: [0x98,0x10,0x18,0x00]
+ brd r3
+
+# CHECK: brad
+# BINARY: 100110 00000 11000 00011 00000000000
+# CHECK: encoding: [0x98,0x18,0x18,0x00]
+ brad r3
+
+# CHECK: brld
+# BINARY: 100110 01111 10100 00011 00000000000
+# CHECK: encoding: [0x99,0xf4,0x18,0x00]
+ brld r15, r3
+
+# CHECK: brald
+# BINARY: 100110 01111 11100 00011 00000000000
+# CHECK: encoding: [0x99,0xfc,0x18,0x00]
+ brald r15, r3
+
+# CHECK: brk
+# BINARY: 100110 01111 01100 00011 00000000000
+# CHECK: encoding: [0x99,0xec,0x18,0x00]
+ brk r15, r3
+
+# CHECK: beqi
+# BINARY: 101111 00000 00010 0000000000000000
+# CHECK: encoding: [0xbc,0x02,0x00,0x00]
+ beqi r2, 0
+
+# CHECK: bgei
+# BINARY: 101111 00101 00010 0000000000000000
+# CHECK: encoding: [0xbc,0xa2,0x00,0x00]
+ bgei r2, 0
+
+# CHECK: bgti
+# BINARY: 101111 00100 00010 0000000000000000
+# CHECK: encoding: [0xbc,0x82,0x00,0x00]
+ bgti r2, 0
+
+# CHECK: blei
+# BINARY: 101111 00011 00010 0000000000000000
+# CHECK: encoding: [0xbc,0x62,0x00,0x00]
+ blei r2, 0
+
+# CHECK: blti
+# BINARY: 101111 00010 00010 0000000000000000
+# CHECK: encoding: [0xbc,0x42,0x00,0x00]
+ blti r2, 0
+
+# CHECK: bnei
+# BINARY: 101111 00001 00010 0000000000000000
+# CHECK: encoding: [0xbc,0x22,0x00,0x00]
+ bnei r2, 0
+
+# CHECK: beqid
+# BINARY: 101111 10000 00010 0000000000000000
+# CHECK: encoding: [0xbe,0x02,0x00,0x00]
+ beqid r2, 0
+
+# CHECK: bgeid
+# BINARY: 101111 10101 00010 0000000000000000
+# CHECK: encoding: [0xbe,0xa2,0x00,0x00]
+ bgeid r2, 0
+
+# CHECK: bgtid
+# BINARY: 101111 10100 00010 0000000000000000
+# CHECK: encoding: [0xbe,0x82,0x00,0x00]
+ bgtid r2, 0
+
+# CHECK: bleid
+# BINARY: 101111 10011 00010 0000000000000000
+# CHECK: encoding: [0xbe,0x62,0x00,0x00]
+ bleid r2, 0
+
+# CHECK: bltid
+# BINARY: 101111 10010 00010 0000000000000000
+# CHECK: encoding: [0xbe,0x42,0x00,0x00]
+ bltid r2, 0
+
+# CHECK: bneid
+# BINARY: 101111 10001 00010 0000000000000000
+# CHECK: encoding: [0xbe,0x22,0x00,0x00]
+ bneid r2, 0
+
+# CHECK: bri
+# BINARY: 101110 00000 00000 0000000000000000
+# CHECK: encoding: [0xb8,0x00,0x00,0x00]
+ bri 0
+
+# CHECK: brai
+# BINARY: 101110 00000 01000 0000000000000000
+# CHECK: encoding: [0xb8,0x08,0x00,0x00]
+ brai 0
+
+# CHECK: brid
+# BINARY: 101110 00000 10000 0000000000000000
+# CHECK: encoding: [0xb8,0x10,0x00,0x00]
+ brid 0
+
+# CHECK: braid
+# BINARY: 101110 00000 11000 0000000000000000
+# CHECK: encoding: [0xb8,0x18,0x00,0x00]
+ braid 0
+
+# CHECK: brlid
+# BINARY: 101110 01111 10100 0000000000000000
+# CHECK: encoding: [0xb9,0xf4,0x00,0x00]
+ brlid r15, 0
+
+# CHECK: bralid
+# BINARY: 101110 01111 11100 0000000000000000
+# CHECK: encoding: [0xb9,0xfc,0x00,0x00]
+ bralid r15, 0
+
+# CHECK: brki
+# BINARY: 101110 01111 01100 0000000000000000
+# CHECK: encoding: [0xb9,0xec,0x00,0x00]
+ brki r15, 0
diff --git a/test/MC/MBlaze/mblaze_fpu.s b/test/MC/MBlaze/mblaze_fpu.s
new file mode 100644
index 0000000..a3b6838
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_fpu.s
@@ -0,0 +1,77 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to ensure that all FPU instructions can be parsed by the
+# assembly parser correctly.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 011011 00000 00000 00000 00000000000
+
+# CHECK: fadd
+# BINARY: 010110 00000 00001 00010 00000000000
+# CHECK: encoding: [0x58,0x01,0x10,0x00]
+ fadd r0, r1, r2
+
+# CHECK: frsub
+# BINARY: 010110 00000 00001 00010 00010000000
+# CHECK: encoding: [0x58,0x01,0x10,0x80]
+ frsub r0, r1, r2
+
+# CHECK: fmul
+# BINARY: 010110 00000 00001 00010 00100000000
+# CHECK: encoding: [0x58,0x01,0x11,0x00]
+ fmul r0, r1, r2
+
+# CHECK: fdiv
+# BINARY: 010110 00000 00001 00010 00110000000
+# CHECK: encoding: [0x58,0x01,0x11,0x80]
+ fdiv r0, r1, r2
+
+# CHECK: fsqrt
+# BINARY: 010110 00000 00001 00000 01110000000
+# CHECK: encoding: [0x58,0x01,0x03,0x80]
+ fsqrt r0, r1
+
+# CHECK: fint
+# BINARY: 010110 00000 00001 00000 01100000000
+# CHECK: encoding: [0x58,0x01,0x03,0x00]
+ fint r0, r1
+
+# CHECK: flt
+# BINARY: 010110 00000 00001 00000 01010000000
+# CHECK: encoding: [0x58,0x01,0x02,0x80]
+ flt r0, r1
+
+# CHECK: fcmp.un
+# BINARY: 010110 00000 00001 00010 01000000000
+# CHECK: encoding: [0x58,0x01,0x12,0x00]
+ fcmp.un r0, r1, r2
+
+# CHECK: fcmp.lt
+# BINARY: 010110 00000 00001 00010 01000010000
+# CHECK: encoding: [0x58,0x01,0x12,0x10]
+ fcmp.lt r0, r1, r2
+
+# CHECK: fcmp.eq
+# BINARY: 010110 00000 00001 00010 01000100000
+# CHECK: encoding: [0x58,0x01,0x12,0x20]
+ fcmp.eq r0, r1, r2
+
+# CHECK: fcmp.le
+# BINARY: 010110 00000 00001 00010 01000110000
+# CHECK: encoding: [0x58,0x01,0x12,0x30]
+ fcmp.le r0, r1, r2
+
+# CHECK: fcmp.gt
+# BINARY: 010110 00000 00001 00010 01001000000
+# CHECK: encoding: [0x58,0x01,0x12,0x40]
+ fcmp.gt r0, r1, r2
+
+# CHECK: fcmp.ne
+# BINARY: 010110 00000 00001 00010 01001010000
+# CHECK: encoding: [0x58,0x01,0x12,0x50]
+ fcmp.ne r0, r1, r2
+
+# CHECK: fcmp.ge
+# BINARY: 010110 00000 00001 00010 01001100000
+# CHECK: encoding: [0x58,0x01,0x12,0x60]
+ fcmp.ge r0, r1, r2
diff --git a/test/MC/MBlaze/mblaze_fsl.s b/test/MC/MBlaze/mblaze_fsl.s
new file mode 100644
index 0000000..d0a42b3
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_fsl.s
@@ -0,0 +1,568 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to ensure that all FSL immediate operands and FSL instructions
+# can be parsed by the assembly parser correctly.
+
+# TYPE F: OPCODE RD NCTAE FSL
+# BINARY: 011011 00000 000000 00000 000000 0000
+
+# TYPE FD: OPCODE RD RB NCTAE
+# BINARY: 011011 00000 00000 00000 0 00000 00000
+
+# TYPE FP: OPCODE RA NCTA FSL
+# 000000 00000 00000 1 0000 0000000 0000
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x00,0x00]
+ get r0, rfsl0
+
+# CHECK: nget
+# BINARY: 011011 00000 000000 10000 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x40,0x00]
+ nget r0, rfsl0
+
+# CHECK: cget
+# BINARY: 011011 00000 000000 01000 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x20,0x00]
+ cget r0, rfsl0
+
+# CHECK: ncget
+# BINARY: 011011 00000 000000 11000 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x60,0x00]
+ ncget r0, rfsl0
+
+# CHECK: tget
+# BINARY: 011011 00000 000000 00100 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x10,0x00]
+ tget r0, rfsl0
+
+# CHECK: tnget
+# BINARY: 011011 00000 000000 10100 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x50,0x00]
+ tnget r0, rfsl0
+
+# CHECK: tcget
+# BINARY: 011011 00000 000000 01100 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x30,0x00]
+ tcget r0, rfsl0
+
+# CHECK: tncget
+# BINARY: 011011 00000 000000 11100 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x70,0x00]
+ tncget r0, rfsl0
+
+# CHECK: aget
+# BINARY: 011011 00000 000000 00010 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x08,0x00]
+ aget r0, rfsl0
+
+# CHECK: naget
+# BINARY: 011011 00000 000000 10010 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x48,0x00]
+ naget r0, rfsl0
+
+# CHECK: caget
+# BINARY: 011011 00000 000000 01010 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x28,0x00]
+ caget r0, rfsl0
+
+# CHECK: ncaget
+# BINARY: 011011 00000 000000 11010 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x68,0x00]
+ ncaget r0, rfsl0
+
+# CHECK: taget
+# BINARY: 011011 00000 000000 00110 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x18,0x00]
+ taget r0, rfsl0
+
+# CHECK: tnaget
+# BINARY: 011011 00000 000000 10110 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x58,0x00]
+ tnaget r0, rfsl0
+
+# CHECK: tcaget
+# BINARY: 011011 00000 000000 01110 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x38,0x00]
+ tcaget r0, rfsl0
+
+# CHECK: tncaget
+# BINARY: 011011 00000 000000 11110 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x78,0x00]
+ tncaget r0, rfsl0
+
+# CHECK: eget
+# BINARY: 011011 00000 000000 00001 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x04,0x00]
+ eget r0, rfsl0
+
+# CHECK: neget
+# BINARY: 011011 00000 000000 10001 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x44,0x00]
+ neget r0, rfsl0
+
+# CHECK: ecget
+# BINARY: 011011 00000 000000 01001 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x24,0x00]
+ ecget r0, rfsl0
+
+# CHECK: necget
+# BINARY: 011011 00000 000000 11001 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x64,0x00]
+ necget r0, rfsl0
+
+# CHECK: teget
+# BINARY: 011011 00000 000000 00101 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x14,0x00]
+ teget r0, rfsl0
+
+# CHECK: tneget
+# BINARY: 011011 00000 000000 10101 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x54,0x00]
+ tneget r0, rfsl0
+
+# CHECK: tecget
+# BINARY: 011011 00000 000000 01101 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x34,0x00]
+ tecget r0, rfsl0
+
+# CHECK: tnecget
+# BINARY: 011011 00000 000000 11101 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x74,0x00]
+ tnecget r0, rfsl0
+
+# CHECK: eaget
+# BINARY: 011011 00000 000000 00011 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x0c,0x00]
+ eaget r0, rfsl0
+
+# CHECK: neaget
+# BINARY: 011011 00000 000000 10011 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x4c,0x00]
+ neaget r0, rfsl0
+
+# CHECK: ecaget
+# BINARY: 011011 00000 000000 01011 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x2c,0x00]
+ ecaget r0, rfsl0
+
+# CHECK: necaget
+# BINARY: 011011 00000 000000 11011 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x6c,0x00]
+ necaget r0, rfsl0
+
+# CHECK: teaget
+# BINARY: 011011 00000 000000 00111 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x1c,0x00]
+ teaget r0, rfsl0
+
+# CHECK: tneaget
+# BINARY: 011011 00000 000000 10111 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x5c,0x00]
+ tneaget r0, rfsl0
+
+# CHECK: tecaget
+# BINARY: 011011 00000 000000 01111 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x3c,0x00]
+ tecaget r0, rfsl0
+
+# CHECK: tnecaget
+# BINARY: 011011 00000 000000 11111 000000 0000
+# CHECK: encoding: [0x6c,0x00,0x7c,0x00]
+ tnecaget r0, rfsl0
+
+# CHECK: getd
+# BINARY: 010011 00000 00000 00001 0 00000 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0x00]
+ getd r0, r1
+
+# CHECK: ngetd
+# BINARY: 010011 00000 00000 00001 0 10000 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0x00]
+ ngetd r0, r1
+
+# CHECK: cgetd
+# BINARY: 010011 00000 00000 00001 0 01000 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0x00]
+ cgetd r0, r1
+
+# CHECK: ncgetd
+# BINARY: 010011 00000 00000 00001 0 11000 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0x00]
+ ncgetd r0, r1
+
+# CHECK: tgetd
+# BINARY: 010011 00000 00000 00001 0 00100 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0x80]
+ tgetd r0, r1
+
+# CHECK: tngetd
+# BINARY: 010011 00000 00000 00001 0 10100 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0x80]
+ tngetd r0, r1
+
+# CHECK: tcgetd
+# BINARY: 010011 00000 00000 00001 0 01100 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0x80]
+ tcgetd r0, r1
+
+# CHECK: tncgetd
+# BINARY: 010011 00000 00000 00001 0 11100 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0x80]
+ tncgetd r0, r1
+
+# CHECK: agetd
+# BINARY: 010011 00000 00000 00001 0 00010 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0x40]
+ agetd r0, r1
+
+# CHECK: nagetd
+# BINARY: 010011 00000 00000 00001 0 10010 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0x40]
+ nagetd r0, r1
+
+# CHECK: cagetd
+# BINARY: 010011 00000 00000 00001 0 01010 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0x40]
+ cagetd r0, r1
+
+# CHECK: ncagetd
+# BINARY: 010011 00000 00000 00001 0 11010 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0x40]
+ ncagetd r0, r1
+
+# CHECK: tagetd
+# BINARY: 010011 00000 00000 00001 0 00110 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0xc0]
+ tagetd r0, r1
+
+# CHECK: tnagetd
+# BINARY: 010011 00000 00000 00001 0 10110 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0xc0]
+ tnagetd r0, r1
+
+# CHECK: tcagetd
+# BINARY: 010011 00000 00000 00001 0 01110 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0xc0]
+ tcagetd r0, r1
+
+# CHECK: tncagetd
+# BINARY: 010011 00000 00000 00001 0 11110 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0xc0]
+ tncagetd r0, r1
+
+# CHECK: egetd
+# BINARY: 010011 00000 00000 00001 0 00001 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0x20]
+ egetd r0, r1
+
+# CHECK: negetd
+# BINARY: 010011 00000 00000 00001 0 10001 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0x20]
+ negetd r0, r1
+
+# CHECK: ecgetd
+# BINARY: 010011 00000 00000 00001 0 01001 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0x20]
+ ecgetd r0, r1
+
+# CHECK: necgetd
+# BINARY: 010011 00000 00000 00001 0 11001 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0x20]
+ necgetd r0, r1
+
+# CHECK: tegetd
+# BINARY: 010011 00000 00000 00001 0 00101 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0xa0]
+ tegetd r0, r1
+
+# CHECK: tnegetd
+# BINARY: 010011 00000 00000 00001 0 10101 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0xa0]
+ tnegetd r0, r1
+
+# CHECK: tecgetd
+# BINARY: 010011 00000 00000 00001 0 01101 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0xa0]
+ tecgetd r0, r1
+
+# CHECK: tnecgetd
+# BINARY: 010011 00000 00000 00001 0 11101 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0xa0]
+ tnecgetd r0, r1
+
+# CHECK: eagetd
+# BINARY: 010011 00000 00000 00001 0 00011 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0x60]
+ eagetd r0, r1
+
+# CHECK: neagetd
+# BINARY: 010011 00000 00000 00001 0 10011 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0x60]
+ neagetd r0, r1
+
+# CHECK: ecagetd
+# BINARY: 010011 00000 00000 00001 0 01011 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0x60]
+ ecagetd r0, r1
+
+# CHECK: necagetd
+# BINARY: 010011 00000 00000 00001 0 11011 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0x60]
+ necagetd r0, r1
+
+# CHECK: teagetd
+# BINARY: 010011 00000 00000 00001 0 00111 00000
+# CHECK: encoding: [0x4c,0x00,0x08,0xe0]
+ teagetd r0, r1
+
+# CHECK: tneagetd
+# BINARY: 010011 00000 00000 00001 0 10111 00000
+# CHECK: encoding: [0x4c,0x00,0x0a,0xe0]
+ tneagetd r0, r1
+
+# CHECK: tecagetd
+# BINARY: 010011 00000 00000 00001 0 01111 00000
+# CHECK: encoding: [0x4c,0x00,0x09,0xe0]
+ tecagetd r0, r1
+
+# CHECK: tnecagetd
+# BINARY: 010011 00000 00000 00001 0 11111 00000
+# CHECK: encoding: [0x4c,0x00,0x0b,0xe0]
+ tnecagetd r0, r1
+
+# CHECK: put
+# BINARY: 011011 00000 00000 1 0000 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0x80,0x00]
+ put r0, rfsl0
+
+# CHECK: aput
+# BINARY: 011011 00000 00000 1 0001 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0x88,0x00]
+ aput r0, rfsl0
+
+# CHECK: cput
+# BINARY: 011011 00000 00000 1 0100 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xa0,0x00]
+ cput r0, rfsl0
+
+# CHECK: caput
+# BINARY: 011011 00000 00000 1 0101 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xa8,0x00]
+ caput r0, rfsl0
+
+# CHECK: nput
+# BINARY: 011011 00000 00000 1 1000 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xc0,0x00]
+ nput r0, rfsl0
+
+# CHECK: naput
+# BINARY: 011011 00000 00000 1 1001 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xc8,0x00]
+ naput r0, rfsl0
+
+# CHECK: ncput
+# BINARY: 011011 00000 00000 1 1100 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xe0,0x00]
+ ncput r0, rfsl0
+
+# CHECK: ncaput
+# BINARY: 011011 00000 00000 1 1101 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xe8,0x00]
+ ncaput r0, rfsl0
+
+# CHECK: tput
+# BINARY: 011011 00000 00000 1 0010 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0x90,0x00]
+ tput rfsl0
+
+# CHECK: taput
+# BINARY: 011011 00000 00000 1 0011 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0x98,0x00]
+ taput rfsl0
+
+# CHECK: tcput
+# BINARY: 011011 00000 00000 1 0110 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xb0,0x00]
+ tcput rfsl0
+
+# CHECK: tcaput
+# BINARY: 011011 00000 00000 1 0111 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xb8,0x00]
+ tcaput rfsl0
+
+# CHECK: tnput
+# BINARY: 011011 00000 00000 1 1010 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xd0,0x00]
+ tnput rfsl0
+
+# CHECK: tnaput
+# BINARY: 011011 00000 00000 1 1011 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xd8,0x00]
+ tnaput rfsl0
+
+# CHECK: tncput
+# BINARY: 011011 00000 00000 1 1110 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xf0,0x00]
+ tncput rfsl0
+
+# CHECK: tncaput
+# BINARY: 011011 00000 00000 1 1111 0000000 0000
+# CHECK: encoding: [0x6c,0x00,0xf8,0x00]
+ tncaput rfsl0
+
+# CHECK: putd
+# BINARY: 010011 00000 00000 00001 1 0000 000000
+# CHECK: encoding: [0x4c,0x00,0x0c,0x00]
+ putd r0, r1
+
+# CHECK: aputd
+# BINARY: 010011 00000 00000 00001 1 0001 000000
+# CHECK: encoding: [0x4c,0x00,0x0c,0x40]
+ aputd r0, r1
+
+# CHECK: cputd
+# BINARY: 010011 00000 00000 00001 1 0100 000000
+# CHECK: encoding: [0x4c,0x00,0x0d,0x00]
+ cputd r0, r1
+
+# CHECK: caputd
+# BINARY: 010011 00000 00000 00001 1 0101 000000
+# CHECK: encoding: [0x4c,0x00,0x0d,0x40]
+ caputd r0, r1
+
+# CHECK: nputd
+# BINARY: 010011 00000 00000 00001 1 1000 000000
+# CHECK: encoding: [0x4c,0x00,0x0e,0x00]
+ nputd r0, r1
+
+# CHECK: naputd
+# BINARY: 010011 00000 00000 00001 1 1001 000000
+# CHECK: encoding: [0x4c,0x00,0x0e,0x40]
+ naputd r0, r1
+
+# CHECK: ncputd
+# BINARY: 010011 00000 00000 00001 1 1100 000000
+# CHECK: encoding: [0x4c,0x00,0x0f,0x00]
+ ncputd r0, r1
+
+# CHECK: ncaputd
+# BINARY: 010011 00000 00000 00001 1 1101 000000
+# CHECK: encoding: [0x4c,0x00,0x0f,0x40]
+ ncaputd r0, r1
+
+# CHECK: tputd
+# BINARY: 010011 00000 00000 00001 1 0010 000000
+# CHECK: encoding: [0x4c,0x00,0x0c,0x80]
+ tputd r1
+
+# CHECK: taputd
+# BINARY: 010011 00000 00000 00001 1 0011 000000
+# CHECK: encoding: [0x4c,0x00,0x0c,0xc0]
+ taputd r1
+
+# CHECK: tcputd
+# BINARY: 010011 00000 00000 00001 1 0110 000000
+# CHECK: encoding: [0x4c,0x00,0x0d,0x80]
+ tcputd r1
+
+# CHECK: tcaputd
+# BINARY: 010011 00000 00000 00001 1 0111 000000
+# CHECK: encoding: [0x4c,0x00,0x0d,0xc0]
+ tcaputd r1
+
+# CHECK: tnputd
+# BINARY: 010011 00000 00000 00001 1 1010 000000
+# CHECK: encoding: [0x4c,0x00,0x0e,0x80]
+ tnputd r1
+
+# CHECK: tnaputd
+# BINARY: 010011 00000 00000 00001 1 1011 000000
+# CHECK: encoding: [0x4c,0x00,0x0e,0xc0]
+ tnaputd r1
+
+# CHECK: tncputd
+# BINARY: 010011 00000 00000 00001 1 1110 000000
+# CHECK: encoding: [0x4c,0x00,0x0f,0x80]
+ tncputd r1
+
+# CHECK: tncaputd
+# BINARY: 010011 00000 00000 00001 1 1111 000000
+# CHECK: encoding: [0x4c,0x00,0x0f,0xc0]
+ tncaputd r1
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0001
+# CHECK: encoding: [0x6c,0x00,0x00,0x01]
+ get r0, rfsl1
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0010
+# CHECK: encoding: [0x6c,0x00,0x00,0x02]
+ get r0, rfsl2
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0011
+# CHECK: encoding: [0x6c,0x00,0x00,0x03]
+ get r0, rfsl3
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0100
+# CHECK: encoding: [0x6c,0x00,0x00,0x04]
+ get r0, rfsl4
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0101
+# CHECK: encoding: [0x6c,0x00,0x00,0x05]
+ get r0, rfsl5
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0110
+# CHECK: encoding: [0x6c,0x00,0x00,0x06]
+ get r0, rfsl6
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 0111
+# CHECK: encoding: [0x6c,0x00,0x00,0x07]
+ get r0, rfsl7
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1000
+# CHECK: encoding: [0x6c,0x00,0x00,0x08]
+ get r0, rfsl8
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1001
+# CHECK: encoding: [0x6c,0x00,0x00,0x09]
+ get r0, rfsl9
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1010
+# CHECK: encoding: [0x6c,0x00,0x00,0x0a]
+ get r0, rfsl10
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1011
+# CHECK: encoding: [0x6c,0x00,0x00,0x0b]
+ get r0, rfsl11
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1100
+# CHECK: encoding: [0x6c,0x00,0x00,0x0c]
+ get r0, rfsl12
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1101
+# CHECK: encoding: [0x6c,0x00,0x00,0x0d]
+ get r0, rfsl13
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1110
+# CHECK: encoding: [0x6c,0x00,0x00,0x0e]
+ get r0, rfsl14
+
+# CHECK: get
+# BINARY: 011011 00000 000000 00000 000000 1111
+# CHECK: encoding: [0x6c,0x00,0x00,0x0f]
+ get r0, rfsl15
diff --git a/test/MC/MBlaze/mblaze_imm.s b/test/MC/MBlaze/mblaze_imm.s
new file mode 100644
index 0000000..08b8a0f
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_imm.s
@@ -0,0 +1,194 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# In the microblaze instruction set, any TYPE-B instruction with a
+# signed immediate value requiring more than 16-bits must be prefixed
+# with an IMM instruction that contains the high 16-bits. The higher
+# 16-bits are then combined with the lower 16-bits in the original
+# instruction to form a 32-bit immediate value.
+#
+# The generation of IMM instructions is handled automatically by the
+# code emitter. Test to ensure that IMM instructions are generated
+# when they are suppose to and are not generated when they are not
+# needed.
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00000000
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000001
+# CHECK: encoding: [0x20,0x00,0x00,0x01]
+ addi r0, r0, 0x00000001
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000010
+# CHECK: encoding: [0x20,0x00,0x00,0x02]
+ addi r0, r0, 0x00000002
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000100
+# CHECK: encoding: [0x20,0x00,0x00,0x04]
+ addi r0, r0, 0x00000004
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000001000
+# CHECK: encoding: [0x20,0x00,0x00,0x08]
+ addi r0, r0, 0x00000008
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000010000
+# CHECK: encoding: [0x20,0x00,0x00,0x10]
+ addi r0, r0, 0x00000010
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000100000
+# CHECK: encoding: [0x20,0x00,0x00,0x20]
+ addi r0, r0, 0x00000020
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000001000000
+# CHECK: encoding: [0x20,0x00,0x00,0x40]
+ addi r0, r0, 0x00000040
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000010000000
+# CHECK: encoding: [0x20,0x00,0x00,0x80]
+ addi r0, r0, 0x00000080
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000100000000
+# CHECK: encoding: [0x20,0x00,0x01,0x00]
+ addi r0, r0, 0x00000100
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000001000000000
+# CHECK: encoding: [0x20,0x00,0x02,0x00]
+ addi r0, r0, 0x00000200
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000010000000000
+# CHECK: encoding: [0x20,0x00,0x04,0x00]
+ addi r0, r0, 0x00000400
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000100000000000
+# CHECK: encoding: [0x20,0x00,0x08,0x00]
+ addi r0, r0, 0x00000800
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0001000000000000
+# CHECK: encoding: [0x20,0x00,0x10,0x00]
+ addi r0, r0, 0x00001000
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0010000000000000
+# CHECK: encoding: [0x20,0x00,0x20,0x00]
+ addi r0, r0, 0x00002000
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0100000000000000
+# CHECK: encoding: [0x20,0x00,0x40,0x00]
+ addi r0, r0, 0x00004000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000000000
+# BINARY: 001000 00000 00000 1000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x00,0x20,0x00,0x80,0x00]
+ addi r0, r0, 0x00008000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000000001
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x01,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00010000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000000010
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x02,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00020000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000000100
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x04,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00040000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000001000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x08,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00080000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000010000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x10,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00100000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000000100000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x20,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00200000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000001000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x40,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00400000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000010000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x00,0x80,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x00800000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000000100000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x01,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x01000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000001000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x02,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x02000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000010000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x04,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x04000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0000100000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x08,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x08000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0001000000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x10,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x10000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0010000000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x20,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x20000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 0100000000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x40,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x40000000
+
+# CHECK: addi
+# BINARY: 101100 00000 00000 1000000000000000
+# 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0xb0,0x00,0x80,0x00,0x20,0x00,0x00,0x00]
+ addi r0, r0, 0x80000000
diff --git a/test/MC/MBlaze/mblaze_memory.s b/test/MC/MBlaze/mblaze_memory.s
new file mode 100644
index 0000000..fe74475
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_memory.s
@@ -0,0 +1,107 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to make sure that all of the TYPE-A instructions supported by
+# the Microblaze can be parsed by the assembly parser.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 000000 00000 00000 00000 00000000000
+
+# CHECK: lbu
+# BINARY: 110000 00001 00010 00011 00000000000
+# CHECK: encoding: [0xc0,0x22,0x18,0x00]
+ lbu r1, r2, r3
+
+# CHECK: lbur
+# BINARY: 110000 00001 00010 00011 01000000000
+# CHECK: encoding: [0xc0,0x22,0x1a,0x00]
+ lbur r1, r2, r3
+
+# CHECK: lbui
+# BINARY: 111000 00001 00010 0000000000011100
+# CHECK: encoding: [0xe0,0x22,0x00,0x1c]
+ lbui r1, r2, 28
+
+# CHECK: lhu
+# BINARY: 110001 00001 00010 00011 00000000000
+# CHECK: encoding: [0xc4,0x22,0x18,0x00]
+ lhu r1, r2, r3
+
+# CHECK: lhur
+# BINARY: 110001 00001 00010 00011 01000000000
+# CHECK: encoding: [0xc4,0x22,0x1a,0x00]
+ lhur r1, r2, r3
+
+# CHECK: lhui
+# BINARY: 111001 00001 00010 0000000000011100
+# CHECK: encoding: [0xe4,0x22,0x00,0x1c]
+ lhui r1, r2, 28
+
+# CHECK: lw
+# BINARY: 110010 00001 00010 00011 00000000000
+# CHECK: encoding: [0xc8,0x22,0x18,0x00]
+ lw r1, r2, r3
+
+# CHECK: lwr
+# BINARY: 110010 00001 00010 00011 01000000000
+# CHECK: encoding: [0xc8,0x22,0x1a,0x00]
+ lwr r1, r2, r3
+
+# CHECK: lwi
+# BINARY: 111010 00001 00010 0000000000011100
+# CHECK: encoding: [0xe8,0x22,0x00,0x1c]
+ lwi r1, r2, 28
+
+# CHECK: lwx
+# BINARY: 110010 00001 00010 00011 10000000000
+# CHECK: encoding: [0xc8,0x22,0x1c,0x00]
+ lwx r1, r2, r3
+
+# CHECK: sb
+# BINARY: 110100 00001 00010 00011 00000000000
+# CHECK: encoding: [0xd0,0x22,0x18,0x00]
+ sb r1, r2, r3
+
+# CHECK: sbr
+# BINARY: 110100 00001 00010 00011 01000000000
+# CHECK: encoding: [0xd0,0x22,0x1a,0x00]
+ sbr r1, r2, r3
+
+# CHECK: sbi
+# BINARY: 111100 00001 00010 0000000000011100
+# CHECK: encoding: [0xf0,0x22,0x00,0x1c]
+ sbi r1, r2, 28
+
+# CHECK: sh
+# BINARY: 110101 00001 00010 00011 00000000000
+# CHECK: encoding: [0xd4,0x22,0x18,0x00]
+ sh r1, r2, r3
+
+# CHECK: shr
+# BINARY: 110101 00001 00010 00011 01000000000
+# CHECK: encoding: [0xd4,0x22,0x1a,0x00]
+ shr r1, r2, r3
+
+# CHECK: shi
+# BINARY: 111101 00001 00010 0000000000011100
+# CHECK: encoding: [0xf4,0x22,0x00,0x1c]
+ shi r1, r2, 28
+
+# CHECK: sw
+# BINARY: 110110 00001 00010 00011 00000000000
+# CHECK: encoding: [0xd8,0x22,0x18,0x00]
+ sw r1, r2, r3
+
+# CHECK: swr
+# BINARY: 110110 00001 00010 00011 01000000000
+# CHECK: encoding: [0xd8,0x22,0x1a,0x00]
+ swr r1, r2, r3
+
+# CHECK: swi
+# BINARY: 111110 00001 00010 0000000000011100
+# CHECK: encoding: [0xf8,0x22,0x00,0x1c]
+ swi r1, r2, 28
+
+# CHECK: swx
+# BINARY: 110110 00001 00010 00011 10000000000
+# CHECK: encoding: [0xd8,0x22,0x1c,0x00]
+ swx r1, r2, r3
diff --git a/test/MC/MBlaze/mblaze_operands.s b/test/MC/MBlaze/mblaze_operands.s
new file mode 100644
index 0000000..d5f1d80
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_operands.s
@@ -0,0 +1,328 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to ensure that all register and immediate operands can be parsed by
+# the assembly parser correctly. Testing the parsing of FSL immediate
+# values is done in a different test.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 000000 00000 00000 00000 00000000000
+
+# CHECK: add
+# BINARY: 000000 00000 00000 00000 00000000000
+# CHECK: encoding: [0x00,0x00,0x00,0x00]
+ add r0, r0, r0
+
+# CHECK: add
+# BINARY: 000000 00001 00001 00001 00000000000
+# CHECK: encoding: [0x00,0x21,0x08,0x00]
+ add r1, r1, r1
+
+# CHECK: add
+# BINARY: 000000 00010 00010 00010 00000000000
+# CHECK: encoding: [0x00,0x42,0x10,0x00]
+ add r2, r2, r2
+
+# CHECK: add
+# BINARY: 000000 00011 00011 00011 00000000000
+# CHECK: encoding: [0x00,0x63,0x18,0x00]
+ add r3, r3, r3
+
+# CHECK: add
+# BINARY: 000000 00100 00100 00100 00000000000
+# CHECK: encoding: [0x00,0x84,0x20,0x00]
+ add r4, r4, r4
+
+# CHECK: add
+# BINARY: 000000 00101 00101 00101 00000000000
+# CHECK: encoding: [0x00,0xa5,0x28,0x00]
+ add r5, r5, r5
+
+# CHECK: add
+# BINARY: 000000 00110 00110 00110 00000000000
+# CHECK: encoding: [0x00,0xc6,0x30,0x00]
+ add r6, r6, r6
+
+# CHECK: add
+# BINARY: 000000 00111 00111 00111 00000000000
+# CHECK: encoding: [0x00,0xe7,0x38,0x00]
+ add r7, r7, r7
+
+# CHECK: add
+# BINARY: 000000 01000 01000 01000 00000000000
+# CHECK: encoding: [0x01,0x08,0x40,0x00]
+ add r8, r8, r8
+
+# CHECK: add
+# BINARY: 000000 01001 01001 01001 00000000000
+# CHECK: encoding: [0x01,0x29,0x48,0x00]
+ add r9, r9, r9
+
+# CHECK: add
+# BINARY: 000000 01010 01010 01010 00000000000
+# CHECK: encoding: [0x01,0x4a,0x50,0x00]
+ add r10, r10, r10
+
+# CHECK: add
+# BINARY: 000000 01011 01011 01011 00000000000
+# CHECK: encoding: [0x01,0x6b,0x58,0x00]
+ add r11, r11, r11
+
+# CHECK: add
+# BINARY: 000000 01100 01100 01100 00000000000
+# CHECK: encoding: [0x01,0x8c,0x60,0x00]
+ add r12, r12, r12
+
+# CHECK: add
+# BINARY: 000000 01101 01101 01101 00000000000
+# CHECK: encoding: [0x01,0xad,0x68,0x00]
+ add r13, r13, r13
+
+# CHECK: add
+# BINARY: 000000 01110 01110 01110 00000000000
+# CHECK: encoding: [0x01,0xce,0x70,0x00]
+ add r14, r14, r14
+
+# CHECK: add
+# BINARY: 000000 01111 01111 01111 00000000000
+# CHECK: encoding: [0x01,0xef,0x78,0x00]
+ add r15, r15, r15
+
+# CHECK: add
+# BINARY: 000000 10000 10000 10000 00000000000
+# CHECK: encoding: [0x02,0x10,0x80,0x00]
+ add r16, r16, r16
+
+# CHECK: add
+# BINARY: 000000 10001 10001 10001 00000000000
+# CHECK: encoding: [0x02,0x31,0x88,0x00]
+ add r17, r17, r17
+
+# CHECK: add
+# BINARY: 000000 10010 10010 10010 00000000000
+# CHECK: encoding: [0x02,0x52,0x90,0x00]
+ add r18, r18, r18
+
+# CHECK: add
+# BINARY: 000000 10011 10011 10011 00000000000
+# CHECK: encoding: [0x02,0x73,0x98,0x00]
+ add r19, r19, r19
+
+# CHECK: add
+# BINARY: 000000 10100 10100 10100 00000000000
+# CHECK: encoding: [0x02,0x94,0xa0,0x00]
+ add r20, r20, r20
+
+# CHECK: add
+# BINARY: 000000 10101 10101 10101 00000000000
+# CHECK: encoding: [0x02,0xb5,0xa8,0x00]
+ add r21, r21, r21
+
+# CHECK: add
+# BINARY: 000000 10110 10110 10110 00000000000
+# CHECK: encoding: [0x02,0xd6,0xb0,0x00]
+ add r22, r22, r22
+
+# CHECK: add
+# BINARY: 000000 10111 10111 10111 00000000000
+# CHECK: encoding: [0x02,0xf7,0xb8,0x00]
+ add r23, r23, r23
+
+# CHECK: add
+# BINARY: 000000 11000 11000 11000 00000000000
+# CHECK: encoding: [0x03,0x18,0xc0,0x00]
+ add r24, r24, r24
+
+# CHECK: add
+# BINARY: 000000 11001 11001 11001 00000000000
+# CHECK: encoding: [0x03,0x39,0xc8,0x00]
+ add r25, r25, r25
+
+# CHECK: add
+# BINARY: 000000 11010 11010 11010 00000000000
+# CHECK: encoding: [0x03,0x5a,0xd0,0x00]
+ add r26, r26, r26
+
+# CHECK: add
+# BINARY: 000000 11011 11011 11011 00000000000
+# CHECK: encoding: [0x03,0x7b,0xd8,0x00]
+ add r27, r27, r27
+
+# CHECK: add
+# BINARY: 000000 11100 11100 11100 00000000000
+# CHECK: encoding: [0x03,0x9c,0xe0,0x00]
+ add r28, r28, r28
+
+# CHECK: add
+# BINARY: 000000 11101 11101 11101 00000000000
+# CHECK: encoding: [0x03,0xbd,0xe8,0x00]
+ add r29, r29, r29
+
+# CHECK: add
+# BINARY: 000000 11110 11110 11110 00000000000
+# CHECK: encoding: [0x03,0xde,0xf0,0x00]
+ add r30, r30, r30
+
+# CHECK: add
+# BINARY: 000000 11111 11111 11111 00000000000
+# CHECK: encoding: [0x03,0xff,0xf8,0x00]
+ add r31, r31, r31
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000000
+# CHECK: encoding: [0x20,0x00,0x00,0x00]
+ addi r0, r0, 0
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000001
+# CHECK: encoding: [0x20,0x00,0x00,0x01]
+ addi r0, r0, 1
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000010
+# CHECK: encoding: [0x20,0x00,0x00,0x02]
+ addi r0, r0, 2
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000000100
+# CHECK: encoding: [0x20,0x00,0x00,0x04]
+ addi r0, r0, 4
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000001000
+# CHECK: encoding: [0x20,0x00,0x00,0x08]
+ addi r0, r0, 8
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000010000
+# CHECK: encoding: [0x20,0x00,0x00,0x10]
+ addi r0, r0, 16
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000000100000
+# CHECK: encoding: [0x20,0x00,0x00,0x20]
+ addi r0, r0, 32
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000001000000
+# CHECK: encoding: [0x20,0x00,0x00,0x40]
+ addi r0, r0, 64
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000010000000
+# CHECK: encoding: [0x20,0x00,0x00,0x80]
+ addi r0, r0, 128
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000000100000000
+# CHECK: encoding: [0x20,0x00,0x01,0x00]
+ addi r0, r0, 256
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000001000000000
+# CHECK: encoding: [0x20,0x00,0x02,0x00]
+ addi r0, r0, 512
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000010000000000
+# CHECK: encoding: [0x20,0x00,0x04,0x00]
+ addi r0, r0, 1024
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0000100000000000
+# CHECK: encoding: [0x20,0x00,0x08,0x00]
+ addi r0, r0, 2048
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0001000000000000
+# CHECK: encoding: [0x20,0x00,0x10,0x00]
+ addi r0, r0, 4096
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0010000000000000
+# CHECK: encoding: [0x20,0x00,0x20,0x00]
+ addi r0, r0, 8192
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 0100000000000000
+# CHECK: encoding: [0x20,0x00,0x40,0x00]
+ addi r0, r0, 16384
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111111111
+# CHECK: encoding: [0x20,0x00,0xff,0xff]
+ addi r0, r0, -1
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111111110
+# CHECK: encoding: [0x20,0x00,0xff,0xfe]
+ addi r0, r0, -2
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111111100
+# CHECK: encoding: [0x20,0x00,0xff,0xfc]
+ addi r0, r0, -4
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111111000
+# CHECK: encoding: [0x20,0x00,0xff,0xf8]
+ addi r0, r0, -8
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111110000
+# CHECK: encoding: [0x20,0x00,0xff,0xf0]
+ addi r0, r0, -16
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111100000
+# CHECK: encoding: [0x20,0x00,0xff,0xe0]
+ addi r0, r0, -32
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111111000000
+# CHECK: encoding: [0x20,0x00,0xff,0xc0]
+ addi r0, r0, -64
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111110000000
+# CHECK: encoding: [0x20,0x00,0xff,0x80]
+ addi r0, r0, -128
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111100000000
+# CHECK: encoding: [0x20,0x00,0xff,0x00]
+ addi r0, r0, -256
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111111000000000
+# CHECK: encoding: [0x20,0x00,0xfe,0x00]
+ addi r0, r0, -512
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111110000000000
+# CHECK: encoding: [0x20,0x00,0xfc,0x00]
+ addi r0, r0, -1024
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111100000000000
+# CHECK: encoding: [0x20,0x00,0xf8,0x00]
+ addi r0, r0, -2048
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1111000000000000
+# CHECK: encoding: [0x20,0x00,0xf0,0x00]
+ addi r0, r0, -4096
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1110000000000000
+# CHECK: encoding: [0x20,0x00,0xe0,0x00]
+ addi r0, r0, -8192
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1100000000000000
+# CHECK: encoding: [0x20,0x00,0xc0,0x00]
+ addi r0, r0, -16384
+
+# CHECK: addi
+# BINARY: 001000 00000 00000 1000000000000000
+# CHECK: encoding: [0x20,0x00,0x80,0x00]
+ addi r0, r0, -32768
diff --git a/test/MC/MBlaze/mblaze_pattern.s b/test/MC/MBlaze/mblaze_pattern.s
new file mode 100644
index 0000000..6bbc234
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_pattern.s
@@ -0,0 +1,22 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to ensure that all FPU instructions can be parsed by the
+# assembly parser correctly.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 011011 00000 00000 00000 00000000000
+
+# CHECK: pcmpbf
+# BINARY: 100000 00000 00001 00010 10000000000
+# CHECK: encoding: [0x80,0x01,0x14,0x00]
+ pcmpbf r0, r1, r2
+
+# CHECK: pcmpne
+# BINARY: 100011 00000 00001 00010 10000000000
+# CHECK: encoding: [0x8c,0x01,0x14,0x00]
+ pcmpne r0, r1, r2
+
+# CHECK: pcmpeq
+# BINARY: 100010 00000 00001 00010 10000000000
+# CHECK: encoding: [0x88,0x01,0x14,0x00]
+ pcmpeq r0, r1, r2
diff --git a/test/MC/MBlaze/mblaze_shift.s b/test/MC/MBlaze/mblaze_shift.s
new file mode 100644
index 0000000..a25502b
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_shift.s
@@ -0,0 +1,47 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to make sure that all of the TYPE-A instructions supported by
+# the Microblaze can be parsed by the assembly parser.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 000000 00000 00000 00000 00000000000
+
+# CHECK: bsrl
+# BINARY: 010001 00001 00010 00011 00000000000
+# CHECK: encoding: [0x44,0x22,0x18,0x00]
+ bsrl r1, r2, r3
+
+# CHECK: bsra
+# BINARY: 010001 00001 00010 00011 01000000000
+# CHECK: encoding: [0x44,0x22,0x1a,0x00]
+ bsra r1, r2, r3
+
+# CHECK: bsll
+# BINARY: 010001 00001 00010 00011 10000000000
+# CHECK: encoding: [0x44,0x22,0x1c,0x00]
+ bsll r1, r2, r3
+
+# CHECK: bsrli
+# BINARY: 011001 00001 00010 0000000000000000
+# CHECK: encoding: [0x64,0x22,0x00,0x00]
+ bsrli r1, r2, 0
+
+# CHECK: bsrai
+# BINARY: 011001 00001 00010 0000001000000000
+# CHECK: encoding: [0x64,0x22,0x02,0x00]
+ bsrai r1, r2, 0
+
+# CHECK: bslli
+# BINARY: 011001 00001 00010 0000010000000000
+# CHECK: encoding: [0x64,0x22,0x04,0x00]
+ bslli r1, r2, 0
+
+# CHECK: sra
+# BINARY: 100100 00001 00010 00000 00000000001
+# CHECK: encoding: [0x90,0x22,0x00,0x01]
+ sra r1, r2
+
+# CHECK: srl
+# BINARY: 100100 00001 00010 00000 00001000001
+# CHECK: encoding: [0x90,0x22,0x00,0x41]
+ srl r1, r2
diff --git a/test/MC/MBlaze/mblaze_special.s b/test/MC/MBlaze/mblaze_special.s
new file mode 100644
index 0000000..c55ec27
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_special.s
@@ -0,0 +1,167 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to ensure that all special instructions and special registers can be
+# parsed by the assembly parser correctly.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 011011 00000 00000 00000 00000000000
+
+# CHECK: mfs
+# BINARY: 100101 00000 00000 10000 00000000000
+# CHECK: encoding: [0x94,0x00,0x80,0x00]
+ mfs r0, rpc
+
+# CHECK: msrclr
+# BINARY: 100101 00000 100010 000000000000000
+# CHECK: encoding: [0x94,0x11,0x00,0x00]
+ msrclr r0, 0x0
+
+# CHECK: msrset
+# BINARY: 100101 00000 100000 000000000000000
+# CHECK: encoding: [0x94,0x10,0x00,0x00]
+ msrset r0, 0x0
+
+# CHECK: mts
+# BINARY: 100101 00000 00000 11 00000000000000
+# CHECK: encoding: [0x94,0x00,0xc0,0x00]
+ mts rpc, r0
+
+# CHECK: wdc
+# BINARY: 100100 00000 00000 00001 00001100100
+# CHECK: encoding: [0x90,0x00,0x08,0x64]
+ wdc r0, r1
+
+# CHECK: wdc.clear
+# BINARY: 100100 00000 00000 00001 00001100110
+# CHECK: encoding: [0x90,0x00,0x08,0x66]
+ wdc.clear r0, r1
+
+# CHECK: wdc.flush
+# BINARY: 100100 00000 00000 00001 00001110100
+# CHECK: encoding: [0x90,0x00,0x08,0x74]
+ wdc.flush r0, r1
+
+# CHECK: wic
+# BINARY: 100100 00000 00000 00001 00001101000
+# CHECK: encoding: [0x90,0x00,0x08,0x68]
+ wic r0, r1
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000000000
+# CHECK: encoding: [0x94,0x20,0x80,0x00]
+ mfs r1, rpc
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000000001
+# CHECK: encoding: [0x94,0x20,0x80,0x01]
+ mfs r1, rmsr
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000000011
+# CHECK: encoding: [0x94,0x20,0x80,0x03]
+ mfs r1, rear
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000000101
+# CHECK: encoding: [0x94,0x20,0x80,0x05]
+ mfs r1, resr
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000000111
+# CHECK: encoding: [0x94,0x20,0x80,0x07]
+ mfs r1, rfsr
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000001011
+# CHECK: encoding: [0x94,0x20,0x80,0x0b]
+ mfs r1, rbtr
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10000 00000001101
+# CHECK: encoding: [0x94,0x20,0x80,0x0d]
+ mfs r1, redr
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10010 00000000000
+# CHECK: encoding: [0x94,0x20,0x90,0x00]
+ mfs r1, rpid
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10010 00000000001
+# CHECK: encoding: [0x94,0x20,0x90,0x01]
+ mfs r1, rzpr
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10010 00000000010
+# CHECK: encoding: [0x94,0x20,0x90,0x02]
+ mfs r1, rtlbx
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10010 00000000100
+# CHECK: encoding: [0x94,0x20,0x90,0x04]
+ mfs r1, rtlbhi
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10010 00000000011
+# CHECK: encoding: [0x94,0x20,0x90,0x03]
+ mfs r1, rtlblo
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000000
+# CHECK: encoding: [0x94,0x20,0xa0,0x00]
+ mfs r1, rpvr0
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000001
+# CHECK: encoding: [0x94,0x20,0xa0,0x01]
+ mfs r1, rpvr1
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000010
+# CHECK: encoding: [0x94,0x20,0xa0,0x02]
+ mfs r1, rpvr2
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000011
+# CHECK: encoding: [0x94,0x20,0xa0,0x03]
+ mfs r1, rpvr3
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000100
+# CHECK: encoding: [0x94,0x20,0xa0,0x04]
+ mfs r1, rpvr4
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000101
+# CHECK: encoding: [0x94,0x20,0xa0,0x05]
+ mfs r1, rpvr5
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000110
+# CHECK: encoding: [0x94,0x20,0xa0,0x06]
+ mfs r1, rpvr6
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000000111
+# CHECK: encoding: [0x94,0x20,0xa0,0x07]
+ mfs r1, rpvr7
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000001000
+# CHECK: encoding: [0x94,0x20,0xa0,0x08]
+ mfs r1, rpvr8
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000001001
+# CHECK: encoding: [0x94,0x20,0xa0,0x09]
+ mfs r1, rpvr9
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000001010
+# CHECK: encoding: [0x94,0x20,0xa0,0x0a]
+ mfs r1, rpvr10
+
+# CHECK: mfs
+# BINARY: 100101 00001 00000 10100 00000001011
+# CHECK: encoding: [0x94,0x20,0xa0,0x0b]
+ mfs r1, rpvr11
diff --git a/test/MC/MBlaze/mblaze_typea.s b/test/MC/MBlaze/mblaze_typea.s
new file mode 100644
index 0000000..a0735e4
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_typea.s
@@ -0,0 +1,122 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to make sure that all of the TYPE-A instructions supported by
+# the Microblaze can be parsed by the assembly parser.
+
+# TYPE A: OPCODE RD RA RB FLAGS
+# BINARY: 000000 00000 00000 00000 00000000000
+
+# CHECK: add
+# BINARY: 000000 00001 00010 00011 00000000000
+# CHECK: encoding: [0x00,0x22,0x18,0x00]
+ add r1, r2, r3
+
+# CHECK: addc
+# BINARY: 000010 00001 00010 00011 00000000000
+# CHECK: encoding: [0x08,0x22,0x18,0x00]
+ addc r1, r2, r3
+
+# CHECK: addk
+# BINARY: 000100 00001 00010 00011 00000000000
+# CHECK: encoding: [0x10,0x22,0x18,0x00]
+ addk r1, r2, r3
+
+# CHECK: addkc
+# BINARY: 000110 00001 00010 00011 00000000000
+# CHECK: encoding: [0x18,0x22,0x18,0x00]
+ addkc r1, r2, r3
+
+# CHECK: and
+# BINARY: 100001 00001 00010 00011 00000000000
+# CHECK: encoding: [0x84,0x22,0x18,0x00]
+ and r1, r2, r3
+
+# CHECK: andn
+# BINARY: 100011 00001 00010 00011 00000000000
+# CHECK: encoding: [0x8c,0x22,0x18,0x00]
+ andn r1, r2, r3
+
+# CHECK: cmp
+# BINARY: 000101 00001 00010 00011 00000000001
+# CHECK: encoding: [0x14,0x22,0x18,0x01]
+ cmp r1, r2, r3
+
+# CHECK: cmpu
+# BINARY: 000101 00001 00010 00011 00000000011
+# CHECK: encoding: [0x14,0x22,0x18,0x03]
+ cmpu r1, r2, r3
+
+# CHECK: idiv
+# BINARY: 010010 00001 00010 00011 00000000000
+# CHECK: encoding: [0x48,0x22,0x18,0x00]
+ idiv r1, r2, r3
+
+# CHECK: idivu
+# BINARY: 010010 00001 00010 00011 00000000010
+# CHECK: encoding: [0x48,0x22,0x18,0x02]
+ idivu r1, r2, r3
+
+# CHECK: mul
+# BINARY: 010000 00001 00010 00011 00000000000
+# CHECK: encoding: [0x40,0x22,0x18,0x00]
+ mul r1, r2, r3
+
+# CHECK: mulh
+# BINARY: 010000 00001 00010 00011 00000000001
+# CHECK: encoding: [0x40,0x22,0x18,0x01]
+ mulh r1, r2, r3
+
+# CHECK: mulhu
+# BINARY: 010000 00001 00010 00011 00000000011
+# CHECK: encoding: [0x40,0x22,0x18,0x03]
+ mulhu r1, r2, r3
+
+# CHECK: mulhsu
+# BINARY: 010000 00001 00010 00011 00000000010
+# CHECK: encoding: [0x40,0x22,0x18,0x02]
+ mulhsu r1, r2, r3
+
+# CHECK: or
+# BINARY: 100000 00001 00010 00011 00000000000
+# CHECK: encoding: [0x80,0x22,0x18,0x00]
+ or r1, r2, r3
+
+# CHECK: rsub
+# BINARY: 000001 00001 00010 00011 00000000000
+# CHECK: encoding: [0x04,0x22,0x18,0x00]
+ rsub r1, r2, r3
+
+# CHECK: rsubc
+# BINARY: 000011 00001 00010 00011 00000000000
+# CHECK: encoding: [0x0c,0x22,0x18,0x00]
+ rsubc r1, r2, r3
+
+# CHECK: rsubk
+# BINARY: 000101 00001 00010 00011 00000000000
+# CHECK: encoding: [0x14,0x22,0x18,0x00]
+ rsubk r1, r2, r3
+
+# CHECK: rsubkc
+# BINARY: 000111 00001 00010 00011 00000000000
+# CHECK: encoding: [0x1c,0x22,0x18,0x00]
+ rsubkc r1, r2, r3
+
+# CHECK: sext16
+# BINARY: 100100 00001 00010 00000 00001100001
+# CHECK: encoding: [0x90,0x22,0x00,0x61]
+ sext16 r1, r2
+
+# CHECK: sext8
+# BINARY: 100100 00001 00010 00000 00001100000
+# CHECK: encoding: [0x90,0x22,0x00,0x60]
+ sext8 r1, r2
+
+# CHECK: xor
+# BINARY: 100010 00001 00010 00011 00000000000
+# CHECK: encoding: [0x88,0x22,0x18,0x00]
+ xor r1, r2, r3
+
+# CHECK: nop
+# BINARY: 100000 00000 00000 00000 00000000000
+# CHECK: encoding: [0x80,0x00,0x00,0x00]
+ nop
diff --git a/test/MC/MBlaze/mblaze_typeb.s b/test/MC/MBlaze/mblaze_typeb.s
new file mode 100644
index 0000000..ac4f1e2
--- /dev/null
+++ b/test/MC/MBlaze/mblaze_typeb.s
@@ -0,0 +1,92 @@
+# RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s
+
+# Test to make sure that all of the TYPE-B instructions supported by
+# the Microblaze can be parsed by the assembly parser.
+
+# TYPE B: OPCODE RD RA IMMEDIATE
+# 000000 00000 00000 0000000000000000
+
+# CHECK: addi
+# BINARY: 001000 00001 00010 0000000000001111
+# CHECK: encoding: [0x20,0x22,0x00,0x0f]
+ addi r1, r2, 0x000F
+
+# CHECK: addic
+# BINARY: 001010 00001 00010 0000000000001111
+# CHECK: encoding: [0x28,0x22,0x00,0x0f]
+ addic r1, r2, 0x000F
+
+# CHECK: addik
+# BINARY: 001100 00001 00010 0000000000001111
+# CHECK: encoding: [0x30,0x22,0x00,0x0f]
+ addik r1, r2, 0x000F
+
+# CHECK: addikc
+# BINARY: 001110 00001 00010 0000000000001111
+# CHECK: encoding: [0x38,0x22,0x00,0x0f]
+ addikc r1, r2, 0x000F
+
+# CHECK: andi
+# BINARY: 101001 00001 00010 0000000000001111
+# CHECK: encoding: [0xa4,0x22,0x00,0x0f]
+ andi r1, r2, 0x000F
+
+# CHECK: andni
+# BINARY: 101011 00001 00010 0000000000001111
+# CHECK: encoding: [0xac,0x22,0x00,0x0f]
+ andni r1, r2, 0x000F
+
+# CHECK: muli
+# BINARY: 011000 00001 00010 0000000000001111
+# CHECK: encoding: [0x60,0x22,0x00,0x0f]
+ muli r1, r2, 0x000F
+
+# CHECK: ori
+# BINARY: 101000 00001 00010 0000000000001111
+# CHECK: encoding: [0xa0,0x22,0x00,0x0f]
+ ori r1, r2, 0x000F
+
+# CHECK: rsubi
+# BINARY: 001001 00001 00010 0000000000001111
+# CHECK: encoding: [0x24,0x22,0x00,0x0f]
+ rsubi r1, r2, 0x000F
+
+# CHECK: rsubic
+# BINARY: 001011 00001 00010 0000000000001111
+# CHECK: encoding: [0x2c,0x22,0x00,0x0f]
+ rsubic r1, r2, 0x000F
+
+# CHECK: rsubik
+# BINARY: 001101 00001 00010 0000000000001111
+# CHECK: encoding: [0x34,0x22,0x00,0x0f]
+ rsubik r1, r2, 0x000F
+
+# CHECK: rsubikc
+# BINARY: 001111 00001 00010 0000000000001111
+# CHECK: encoding: [0x3c,0x22,0x00,0x0f]
+ rsubikc r1, r2, 0x000F
+
+# CHECK: rtbd
+# BINARY: 101101 10010 01111 0000000000001111
+# CHECK: encoding: [0xb6,0x4f,0x00,0x0f]
+ rtbd r15, 0x000F
+
+# CHECK: rted
+# BINARY: 101101 10001 01111 0000000000001111
+# CHECK: encoding: [0xb6,0x8f,0x00,0x0f]
+ rted r15, 0x000F
+
+# CHECK: rtid
+# BINARY: 101101 10001 01111 0000000000001111
+# CHECK: encoding: [0xb6,0x2f,0x00,0x0f]
+ rtid r15, 0x000F
+
+# CHECK: rtsd
+# BINARY: 101101 10000 01111 0000000000001111
+# CHECK: encoding: [0xb6,0x0f,0x00,0x0f]
+ rtsd r15, 0x000F
+
+# CHECK: xori
+# BINARY: 101010 00001 00010 0000000000001111
+# CHECK: encoding: [0xa8,0x22,0x00,0x0f]
+ xori r1, r2, 0x000F
diff --git a/test/MC/MachO/absolutize.s b/test/MC/MachO/absolutize.s
index 76acd5b..39571dd 100644
--- a/test/MC/MachO/absolutize.s
+++ b/test/MC/MachO/absolutize.s
@@ -50,7 +50,7 @@ Ldata_expr_2 = Ldata_d - Ldata_c
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -103,7 +103,7 @@ Ldata_expr_2 = Ldata_d - Ldata_c
// CHECK: (('word-0', 0xa1000000),
// CHECK: ('word-1', 0x2)),
// CHECK: ])
-// CHECK: ('_section_data', '1\xc01\xc01\xc01\xc0\xb8\xfe\xff\xff\xff\xb8\xfe\xff\xff\xff\xb8\x02\x00\x00\x00\xb8\x02\x00\x00\x00\xb8\x02\x00\x00\x00\xb8\x02\x00\x00\x00\xb8\xfe\xff\xff\xff')
+// CHECK: ('_section_data', '31c031c0 31c031c0 b8feffff ffb8feff ffffb802 000000b8 02000000 b8020000 00b80200 0000b8fe ffffff')
// CHECK: # Section 1
// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -140,7 +140,7 @@ Ldata_expr_2 = Ldata_d - Ldata_c
// CHECK: (('word-0', 0xa1000000),
// CHECK: ('word-1', 0x2f)),
// CHECK: ])
-// CHECK: ('_section_data', "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\xfc\xff\xff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00'\x00\x00\x00")
+// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 fcffffff fcffffff 04000000 04000000 04000000 04000000 27000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/comm-1.s b/test/MC/MachO/comm-1.s
index e979fb1..5ffa979 100644
--- a/test/MC/MachO/comm-1.s
+++ b/test/MC/MachO/comm-1.s
@@ -10,7 +10,7 @@
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 228)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/darwin-ARM-reloc.s b/test/MC/MachO/darwin-ARM-reloc.s
new file mode 100644
index 0000000..86b45e0
--- /dev/null
+++ b/test/MC/MachO/darwin-ARM-reloc.s
@@ -0,0 +1,171 @@
+@ RUN: llvm-mc -n -triple armv7-apple-darwin10 %s -filetype=obj -o %t.obj
+@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: FileCheck < %t.dump %s
+
+ .syntax unified
+ .text
+_f0:
+ bl _printf
+
+_f1:
+ bl _f0
+
+ .data
+_d0:
+Ld0_0:
+ .long Lsc0_0 - Ld0_0
+
+ .section __TEXT,__cstring,cstring_literals
+Lsc0_0:
+ .long 0
+
+@ CHECK: ('cputype', 12)
+@ CHECK: ('cpusubtype', 9)
+@ CHECK: ('filetype', 1)
+@ CHECK: ('num_load_commands', 3)
+@ CHECK: ('load_commands_size', 364)
+@ CHECK: ('flag', 0)
+@ CHECK: ('load_commands', [
+@ CHECK: # Load Command 0
+@ CHECK: (('command', 1)
+@ CHECK: ('size', 260)
+@ CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('vm_addr', 0)
+@ CHECK: ('vm_size', 16)
+@ CHECK: ('file_offset', 392)
+@ CHECK: ('file_size', 16)
+@ CHECK: ('maxprot', 7)
+@ CHECK: ('initprot', 7)
+@ CHECK: ('num_sections', 3)
+@ CHECK: ('flags', 0)
+@ CHECK: ('sections', [
+@ CHECK: # Section 0
+@ CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('address', 0)
+@ CHECK: ('size', 8)
+@ CHECK: ('offset', 392)
+@ CHECK: ('alignment', 0)
+@ CHECK: ('reloc_offset', 408)
+@ CHECK: ('num_reloc', 2)
+@ CHECK: ('flags', 0x80000400)
+@ CHECK: ('reserved1', 0)
+@ CHECK: ('reserved2', 0)
+@ CHECK: ),
+@ CHECK: ('_relocations', [
+@ CHECK: # Relocation 0
+@ CHECK: (('word-0', 0x4),
+@ CHECK: ('word-1', 0x55000001)),
+@ CHECK: # Relocation 1
+@ CHECK: (('word-0', 0x0),
+@ CHECK: ('word-1', 0x5d000003)),
+@ CHECK: ])
+@ CHECK: ('_section_data', 'feffffeb fdffffeb')
+@ CHECK: # Section 1
+@ CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('address', 8)
+@ CHECK: ('size', 4)
+@ CHECK: ('offset', 400)
+@ CHECK: ('alignment', 0)
+@ CHECK: ('reloc_offset', 424)
+@ CHECK: ('num_reloc', 2)
+@ CHECK: ('flags', 0x0)
+@ CHECK: ('reserved1', 0)
+@ CHECK: ('reserved2', 0)
+@ CHECK: ),
+@ CHECK: ('_relocations', [
+@ CHECK: # Relocation 0
+@ CHECK: (('word-0', 0xa2000000),
+@ CHECK: ('word-1', 0xc)),
+@ CHECK: # Relocation 1
+@ CHECK: (('word-0', 0xa1000000),
+@ CHECK: ('word-1', 0x8)),
+@ CHECK: ])
+@ CHECK: ('_section_data', '04000000')
+@ CHECK: # Section 2
+@ CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('address', 12)
+@ CHECK: ('size', 4)
+@ CHECK: ('offset', 404)
+@ CHECK: ('alignment', 0)
+@ CHECK: ('reloc_offset', 0)
+@ CHECK: ('num_reloc', 0)
+@ CHECK: ('flags', 0x2)
+@ CHECK: ('reserved1', 0)
+@ CHECK: ('reserved2', 0)
+@ CHECK: ),
+@ CHECK: ('_relocations', [
+@ CHECK: ])
+@ CHECK: ('_section_data', '00000000')
+@ CHECK: ])
+@ CHECK: ),
+@ CHECK: # Load Command 1
+@ CHECK: (('command', 2)
+@ CHECK: ('size', 24)
+@ CHECK: ('symoff', 440)
+@ CHECK: ('nsyms', 4)
+@ CHECK: ('stroff', 488)
+@ CHECK: ('strsize', 24)
+@ CHECK: ('_string_data', '\x00_printf\x00_f0\x00_f1\x00_d0\x00\x00\x00\x00')
+@ CHECK: ('_symbols', [
+@ CHECK: # Symbol 0
+@ CHECK: (('n_strx', 9)
+@ CHECK: ('n_type', 0xe)
+@ CHECK: ('n_sect', 1)
+@ CHECK: ('n_desc', 0)
+@ CHECK: ('n_value', 0)
+@ CHECK: ('_string', '_f0')
+@ CHECK: ),
+@ CHECK: # Symbol 1
+@ CHECK: (('n_strx', 13)
+@ CHECK: ('n_type', 0xe)
+@ CHECK: ('n_sect', 1)
+@ CHECK: ('n_desc', 0)
+@ CHECK: ('n_value', 4)
+@ CHECK: ('_string', '_f1')
+@ CHECK: ),
+@ CHECK: # Symbol 2
+@ CHECK: (('n_strx', 17)
+@ CHECK: ('n_type', 0xe)
+@ CHECK: ('n_sect', 2)
+@ CHECK: ('n_desc', 0)
+@ CHECK: ('n_value', 8)
+@ CHECK: ('_string', '_d0')
+@ CHECK: ),
+@ CHECK: # Symbol 3
+@ CHECK: (('n_strx', 1)
+@ CHECK: ('n_type', 0x1)
+@ CHECK: ('n_sect', 0)
+@ CHECK: ('n_desc', 0)
+@ CHECK: ('n_value', 0)
+@ CHECK: ('_string', '_printf')
+@ CHECK: ),
+@ CHECK: ])
+@ CHECK: ),
+@ CHECK: # Load Command 2
+@ CHECK: (('command', 11)
+@ CHECK: ('size', 80)
+@ CHECK: ('ilocalsym', 0)
+@ CHECK: ('nlocalsym', 3)
+@ CHECK: ('iextdefsym', 3)
+@ CHECK: ('nextdefsym', 0)
+@ CHECK: ('iundefsym', 3)
+@ CHECK: ('nundefsym', 1)
+@ CHECK: ('tocoff', 0)
+@ CHECK: ('ntoc', 0)
+@ CHECK: ('modtaboff', 0)
+@ CHECK: ('nmodtab', 0)
+@ CHECK: ('extrefsymoff', 0)
+@ CHECK: ('nextrefsyms', 0)
+@ CHECK: ('indirectsymoff', 0)
+@ CHECK: ('nindirectsyms', 0)
+@ CHECK: ('extreloff', 0)
+@ CHECK: ('nextrel', 0)
+@ CHECK: ('locreloff', 0)
+@ CHECK: ('nlocrel', 0)
+@ CHECK: ('_indirect_symbols', [
+@ CHECK: ])
+@ CHECK: ),
+@ CHECK: ])
diff --git a/test/MC/MachO/darwin-Thumb-reloc.s b/test/MC/MachO/darwin-Thumb-reloc.s
new file mode 100644
index 0000000..567573d
--- /dev/null
+++ b/test/MC/MachO/darwin-Thumb-reloc.s
@@ -0,0 +1,139 @@
+@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj
+@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: FileCheck < %t.dump %s
+
+ .syntax unified
+ .section __TEXT,__text,regular,pure_instructions
+ .globl _main
+ .align 2
+ .code 16
+ .thumb_func _main
+_main:
+LPC0_0:
+ blx _printf
+ .align 2
+LCPI0_0:
+ .long L_.str-(LPC0_0+4)
+
+ .section __TEXT,__cstring,cstring_literals
+ .align 2
+L_.str:
+ .asciz "s0"
+
+.subsections_via_symbols
+
+@ CHECK: ('cputype', 12)
+@ CHECK: ('cpusubtype', 9)
+@ CHECK: ('filetype', 1)
+@ CHECK: ('num_load_commands', 3)
+@ CHECK: ('load_commands_size', 296)
+@ CHECK: ('flag', 8192)
+@ CHECK: ('load_commands', [
+@ CHECK: # Load Command 0
+@ CHECK: (('command', 1)
+@ CHECK: ('size', 192)
+@ CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('vm_addr', 0)
+@ CHECK: ('vm_size', 11)
+@ CHECK: ('file_offset', 324)
+@ CHECK: ('file_size', 11)
+@ CHECK: ('maxprot', 7)
+@ CHECK: ('initprot', 7)
+@ CHECK: ('num_sections', 2)
+@ CHECK: ('flags', 0)
+@ CHECK: ('sections', [
+@ CHECK: # Section 0
+@ CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('address', 0)
+@ CHECK: ('size', 8)
+@ CHECK: ('offset', 324)
+@ CHECK: ('alignment', 2)
+@ CHECK: ('reloc_offset', 336)
+@ CHECK: ('num_reloc', 3)
+@ CHECK: ('flags', 0x80000400)
+@ CHECK: ('reserved1', 0)
+@ CHECK: ('reserved2', 0)
+@ CHECK: ),
+@ CHECK: ('_relocations', [
+@ CHECK: # Relocation 0
+@ CHECK: (('word-0', 0xa2000004),
+@ CHECK: ('word-1', 0x8)),
+@ CHECK: # Relocation 1
+@ CHECK: (('word-0', 0xa1000000),
+@ CHECK: ('word-1', 0x0)),
+@ CHECK: # Relocation 2
+@ CHECK: (('word-0', 0x0),
+@ CHECK: ('word-1', 0x6d000001)),
+@ CHECK: ])
+@ CHECK-FIXME: ('_section_data', 'fff7feef 04000000')
+@ CHECK: # Section 1
+@ CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+@ CHECK: ('address', 8)
+@ CHECK: ('size', 3)
+@ CHECK: ('offset', 332)
+@ CHECK: ('alignment', 2)
+@ CHECK: ('reloc_offset', 0)
+@ CHECK: ('num_reloc', 0)
+@ CHECK: ('flags', 0x2)
+@ CHECK: ('reserved1', 0)
+@ CHECK: ('reserved2', 0)
+@ CHECK: ),
+@ CHECK: ('_relocations', [
+@ CHECK: ])
+@ CHECK: ('_section_data', '733000')
+@ CHECK: ])
+@ CHECK: ),
+@ CHECK: # Load Command 1
+@ CHECK: (('command', 2)
+@ CHECK: ('size', 24)
+@ CHECK: ('symoff', 360)
+@ CHECK: ('nsyms', 2)
+@ CHECK: ('stroff', 384)
+@ CHECK: ('strsize', 16)
+@ CHECK: ('_string_data', '\x00_main\x00_printf\x00\x00')
+@ CHECK: ('_symbols', [
+@ CHECK: # Symbol 0
+@ CHECK: (('n_strx', 1)
+@ CHECK: ('n_type', 0xf)
+@ CHECK: ('n_sect', 1)
+@ CHECK: ('n_desc', 8)
+@ CHECK: ('n_value', 0)
+@ CHECK: ('_string', '_main')
+@ CHECK: ),
+@ CHECK: # Symbol 1
+@ CHECK: (('n_strx', 7)
+@ CHECK: ('n_type', 0x1)
+@ CHECK: ('n_sect', 0)
+@ CHECK: ('n_desc', 0)
+@ CHECK: ('n_value', 0)
+@ CHECK: ('_string', '_printf')
+@ CHECK: ),
+@ CHECK: ])
+@ CHECK: ),
+@ CHECK: # Load Command 2
+@ CHECK: (('command', 11)
+@ CHECK: ('size', 80)
+@ CHECK: ('ilocalsym', 0)
+@ CHECK: ('nlocalsym', 0)
+@ CHECK: ('iextdefsym', 0)
+@ CHECK: ('nextdefsym', 1)
+@ CHECK: ('iundefsym', 1)
+@ CHECK: ('nundefsym', 1)
+@ CHECK: ('tocoff', 0)
+@ CHECK: ('ntoc', 0)
+@ CHECK: ('modtaboff', 0)
+@ CHECK: ('nmodtab', 0)
+@ CHECK: ('extrefsymoff', 0)
+@ CHECK: ('nextrefsyms', 0)
+@ CHECK: ('indirectsymoff', 0)
+@ CHECK: ('nindirectsyms', 0)
+@ CHECK: ('extreloff', 0)
+@ CHECK: ('nextrel', 0)
+@ CHECK: ('locreloff', 0)
+@ CHECK: ('nlocrel', 0)
+@ CHECK: ('_indirect_symbols', [
+@ CHECK: ])
+@ CHECK: ),
+@ CHECK: ])
diff --git a/test/MC/MachO/darwin-complex-difference.s b/test/MC/MachO/darwin-complex-difference.s
new file mode 100644
index 0000000..e66bd09
--- /dev/null
+++ b/test/MC/MachO/darwin-complex-difference.s
@@ -0,0 +1,129 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o %t.o
+// RUN: macho-dump --dump-section-data < %t.o > %t.dump
+// RUN: FileCheck < %t.dump %s
+
+_a:
+L0:
+ .long 1
+L1:
+ .long 2
+ .long _c - _d + 4
+ .long (_c - L0) - (_d - L1) // == (_c - _d) + (L1 - L0)
+ // == (_c - _d + 4)
+_c:
+ .long 0
+_d:
+ .long 0
+
+// CHECK: ('cputype', 16777223)
+// CHECK: ('cpusubtype', 3)
+// CHECK: ('filetype', 1)
+// CHECK: ('num_load_commands', 3)
+// CHECK: ('load_commands_size', 256)
+// CHECK: ('flag', 0)
+// CHECK: ('reserved', 0)
+// CHECK: ('load_commands', [
+// CHECK: # Load Command 0
+// CHECK: (('command', 25)
+// CHECK: ('size', 152)
+// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('vm_addr', 0)
+// CHECK: ('vm_size', 24)
+// CHECK: ('file_offset', 288)
+// CHECK: ('file_size', 24)
+// CHECK: ('maxprot', 7)
+// CHECK: ('initprot', 7)
+// CHECK: ('num_sections', 1)
+// CHECK: ('flags', 0)
+// CHECK: ('sections', [
+// CHECK: # Section 0
+// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('address', 0)
+// CHECK: ('size', 24)
+// CHECK: ('offset', 288)
+// CHECK: ('alignment', 0)
+// CHECK: ('reloc_offset', 312)
+// CHECK: ('num_reloc', 4)
+// CHECK: ('flags', 0x80000000)
+// CHECK: ('reserved1', 0)
+// CHECK: ('reserved2', 0)
+// CHECK: ('reserved3', 0)
+// CHECK: ),
+// CHECK: ('_relocations', [
+// CHECK: # Relocation 0
+// CHECK: (('word-0', 0xc),
+// CHECK: ('word-1', 0x5c000002)),
+// CHECK: # Relocation 1
+// CHECK: (('word-0', 0xc),
+// CHECK: ('word-1', 0xc000001)),
+// CHECK: # Relocation 2
+// CHECK: (('word-0', 0x8),
+// CHECK: ('word-1', 0x5c000002)),
+// CHECK: # Relocation 3
+// CHECK: (('word-0', 0x8),
+// CHECK: ('word-1', 0xc000001)),
+// CHECK: ])
+// CHECK: ('_section_data', '01000000 02000000 04000000 04000000 00000000 00000000')
+// CHECK: ])
+// CHECK: ),
+// CHECK: # Load Command 1
+// CHECK: (('command', 2)
+// CHECK: ('size', 24)
+// CHECK: ('symoff', 344)
+// CHECK: ('nsyms', 3)
+// CHECK: ('stroff', 392)
+// CHECK: ('strsize', 12)
+// CHECK: ('_string_data', '\x00_a\x00_c\x00_d\x00\x00\x00')
+// CHECK: ('_symbols', [
+// CHECK: # Symbol 0
+// CHECK: (('n_strx', 1)
+// CHECK: ('n_type', 0xe)
+// CHECK: ('n_sect', 1)
+// CHECK: ('n_desc', 0)
+// CHECK: ('n_value', 0)
+// CHECK: ('_string', '_a')
+// CHECK: ),
+// CHECK: # Symbol 1
+// CHECK: (('n_strx', 4)
+// CHECK: ('n_type', 0xe)
+// CHECK: ('n_sect', 1)
+// CHECK: ('n_desc', 0)
+// CHECK: ('n_value', 16)
+// CHECK: ('_string', '_c')
+// CHECK: ),
+// CHECK: # Symbol 2
+// CHECK: (('n_strx', 7)
+// CHECK: ('n_type', 0xe)
+// CHECK: ('n_sect', 1)
+// CHECK: ('n_desc', 0)
+// CHECK: ('n_value', 20)
+// CHECK: ('_string', '_d')
+// CHECK: ),
+// CHECK: ])
+// CHECK: ),
+// CHECK: # Load Command 2
+// CHECK: (('command', 11)
+// CHECK: ('size', 80)
+// CHECK: ('ilocalsym', 0)
+// CHECK: ('nlocalsym', 3)
+// CHECK: ('iextdefsym', 3)
+// CHECK: ('nextdefsym', 0)
+// CHECK: ('iundefsym', 3)
+// CHECK: ('nundefsym', 0)
+// CHECK: ('tocoff', 0)
+// CHECK: ('ntoc', 0)
+// CHECK: ('modtaboff', 0)
+// CHECK: ('nmodtab', 0)
+// CHECK: ('extrefsymoff', 0)
+// CHECK: ('nextrefsyms', 0)
+// CHECK: ('indirectsymoff', 0)
+// CHECK: ('nindirectsyms', 0)
+// CHECK: ('extreloff', 0)
+// CHECK: ('nextrel', 0)
+// CHECK: ('locreloff', 0)
+// CHECK: ('nlocrel', 0)
+// CHECK: ('_indirect_symbols', [
+// CHECK: ])
+// CHECK: ),
+// CHECK: ])
diff --git a/test/MC/MachO/darwin-x86_64-diff-relocs.s b/test/MC/MachO/darwin-x86_64-diff-relocs.s
index 38fa074..449d2f5 100644
--- a/test/MC/MachO/darwin-x86_64-diff-relocs.s
+++ b/test/MC/MachO/darwin-x86_64-diff-relocs.s
@@ -120,7 +120,7 @@ L3:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 336)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
diff --git a/test/MC/MachO/darwin-x86_64-reloc-offsets.s b/test/MC/MachO/darwin-x86_64-reloc-offsets.s
index ab6820e..f748064 100644
--- a/test/MC/MachO/darwin-x86_64-reloc-offsets.s
+++ b/test/MC/MachO/darwin-x86_64-reloc-offsets.s
@@ -117,7 +117,7 @@ L1:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 336)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -277,7 +277,7 @@ L1:
// CHECK: (('word-0', 0x2),
// CHECK: ('word-1', 0x6d000000)),
// CHECK: ])
-// CHECK: ('_section_data', '\xc6\x05\xff\xff\xff\xff\x12\xc6\x05\x00\x00\x00\x00\x12\xc7\x05\xfc\xff\xff\xffxV4\x12\xc7\x05\xfd\xff\xff\xffxV4\x12\xc7\x05\xfe\xff\xff\xffxV4\x12\xc7\x05\xff\xff\xff\xffxV4\x12\xc7\x05\x00\x00\x00\x00xV4\x12\x88\x05\x00\x00\x00\x00\x88\x05\x01\x00\x00\x00\x89\x05\x00\x00\x00\x00\x89\x05\x01\x00\x00\x00\x89\x05\x02\x00\x00\x00\x89\x05\x03\x00\x00\x00\x89\x05\x04\x00\x00\x00\xc6\x05\xdd\x00\x00\x00\x12\xc6\x05\xd7\x00\x00\x00\x12\xc7\x05\xcc\x00\x00\x00xV4\x12\xc7\x05\xc3\x00\x00\x00xV4\x12\xc7\x05\xba\x00\x00\x00xV4\x12\xc7\x05\xb1\x00\x00\x00xV4\x12\xc7\x05\xa8\x00\x00\x00xV4\x12\x88\x05\x9e\x00\x00\x00\x88\x05\x99\x00\x00\x00\x89\x05\x92\x00\x00\x00\x89\x05\x8d\x00\x00\x00\x89\x05\x88\x00\x00\x00\x89\x05\x83\x00\x00\x00\x89\x05~\x00\x00\x00\xc6\x05\x03\x00\x00\x00\x12\xc6\x05\x04\x00\x00\x00\x12\xc7\x05\x00\x00\x00\x00xV4\x12\xc7\x05\x01\x00\x00\x00xV4\x12\xc7\x05\x02\x00\x00\x00xV4\x12\xc7\x05\x03\x00\x00\x00xV4\x12\xc7\x05\x04\x00\x00\x00xV4\x12\x88\x05\x04\x00\x00\x00\x88\x05\x05\x00\x00\x00\x89\x05\x04\x00\x00\x00\x89\x05\x05\x00\x00\x00\x89\x05\x06\x00\x00\x00\x89\x05\x07\x00\x00\x00\x89\x05\x08\x00\x00\x00')
+// CHECK: ('_section_data', 'c605ffff ffff12c6 05000000 0012c705 fcffffff 78563412 c705fdff ffff7856 3412c705 feffffff 78563412 c705ffff ffff7856 3412c705 00000000 78563412 88050000 00008805 01000000 89050000 00008905 01000000 89050200 00008905 03000000 89050400 0000c605 dd000000 12c605d7 00000012 c705cc00 00007856 3412c705 c3000000 78563412 c705ba00 00007856 3412c705 b1000000 78563412 c705a800 00007856 34128805 9e000000 88059900 00008905 92000000 89058d00 00008905 88000000 89058300 00008905 7e000000 c6050300 000012c6 05040000 0012c705 00000000 78563412 c7050100 00007856 3412c705 02000000 78563412 c7050300 00007856 3412c705 04000000 78563412 88050400 00008805 05000000 89050400 00008905 05000000 89050600 00008905 07000000 89050800 0000')
// CHECK: # Section 1
// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -294,7 +294,7 @@ L1:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/darwin-x86_64-reloc.s b/test/MC/MachO/darwin-x86_64-reloc.s
index 19b4345..83c0de7 100644
--- a/test/MC/MachO/darwin-x86_64-reloc.s
+++ b/test/MC/MachO/darwin-x86_64-reloc.s
@@ -90,7 +90,7 @@ L6:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 496)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -139,7 +139,7 @@ L6:
// CHECK: (('word-0', 0x4),
// CHECK: ('word-1', 0x4d000008)),
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x1f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x01\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 04000000 04000000 00000000 1f010000 00000000 00000000 00000000 2f010000 00000000')
// CHECK: # Section 1
// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -252,7 +252,7 @@ L6:
// CHECK: (('word-0', 0x2),
// CHECK: ('word-1', 0x2d000000)),
// CHECK: ])
-// CHECK: ('_section_data', '\xc3\xe8\x00\x00\x00\x00\xe8\x04\x00\x00\x00H\x8b\x05\x00\x00\x00\x00\xff5\x00\x00\x00\x00\x8b\x05\x00\x00\x00\x00\x8b\x05\x04\x00\x00\x00\xc6\x05\xff\xff\xff\xff\x12\xc7\x05\xfc\xff\xff\xffxV4\x12\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00H\x8d\x05,\x00\x00\x00H\x8d\x05\x14\x00\x00\x00\x83\x05\x13\x00\x00\x00\x06f\x81\x05\x12\x00\x00\x00\xf4\x01\x81\x05\x10\x00\x00\x00\xf4\x01\x00\x00\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90,\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\xe4\xff\xff\xff\xff\xff\xff\xff\xd4\xff\xff\xff\xff\xff\xff\xff,\x00\x00\x00\x00\x00\x00\x00\x83\xc0\x00\x03\x04%\x03\x00\x00\x00\x8b\x05\x1f\xff\xff\xff\x8b\x05,\x00\x00\x00\x8b\x05\x00\x00\x00\x00\x8b\x050\x00\x00\x00H\x83=\xff\xff\xff\xff\x00')
+// CHECK: ('_section_data', 'c3e80000 0000e804 00000048 8b050000 0000ff35 00000000 8b050000 00008b05 04000000 c605ffff ffff12c7 05fcffff ff785634 12000000 00000000 00040000 00000000 00000000 00000000 00040000 00000000 00000000 00488d05 2c000000 488d0514 00000083 05130000 00066681 05120000 00f40181 05100000 00f40100 00909090 90909090 90909090 902c0000 00000000 00140000 00000000 00e4ffff ffffffff ffd4ffff ffffffff ff2c0000 00000000 0083c000 03042503 0000008b 051fffff ff8b052c 0000008b 05000000 008b0530 00000048 833dffff ffff00')
// CHECK: # Section 2
// CHECK: (('section_name', '__debug_frame\x00\x00\x00')
// CHECK: ('segment_name', '__DWARF\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -275,7 +275,7 @@ L6:
// CHECK: (('word-0', 0x0),
// CHECK: ('word-1', 0x6000002)),
// CHECK: ])
-// CHECK: ('_section_data', '\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', 'd5000000 00000000 00000000 00000000')
// CHECK: # Section 3
// CHECK: (('section_name', '__literal8\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -292,7 +292,7 @@ L6:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/diff-with-two-sections.s b/test/MC/MachO/diff-with-two-sections.s
new file mode 100644
index 0000000..b5e0988
--- /dev/null
+++ b/test/MC/MachO/diff-with-two-sections.s
@@ -0,0 +1,64 @@
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+
+ .section __TEXT,__text,regular,pure_instructions
+Leh_func_begin0:
+ .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
+Ltmp3:
+Ltmp4 = Leh_func_begin0-Ltmp3
+ .long Ltmp4
+
+// CHECK: ('cputype', 7)
+// CHECK-NEXT: ('cpusubtype', 3)
+// CHECK-NEXT: ('filetype', 1)
+// CHECK-NEXT: ('num_load_commands', 1)
+// CHECK-NEXT: ('load_commands_size', 192)
+// CHECK-NEXT: ('flag', 0)
+// CHECK-NEXT: ('load_commands', [
+// CHECK-NEXT: # Load Command 0
+// CHECK-NEXT: (('command', 1)
+// CHECK-NEXT: ('size', 192)
+// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('vm_addr', 0)
+// CHECK-NEXT: ('vm_size', 4)
+// CHECK-NEXT: ('file_offset', 220)
+// CHECK-NEXT: ('file_size', 4)
+// CHECK-NEXT: ('maxprot', 7)
+// CHECK-NEXT: ('initprot', 7)
+// CHECK-NEXT: ('num_sections', 2)
+// CHECK-NEXT: ('flags', 0)
+// CHECK-NEXT: ('sections', [
+// CHECK-NEXT: # Section 0
+// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 0)
+// CHECK-NEXT: ('offset', 220)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0x80000000)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '')
+// CHECK-NEXT: # Section 1
+// CHECK-NEXT: (('section_name', '__eh_frame\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 4)
+// CHECK-NEXT: ('offset', 220)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0x6800000b)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '00000000')
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/MachO/direction_labels.s b/test/MC/MachO/direction_labels.s
index 5a68f7f..e224ed3 100644
--- a/test/MC/MachO/direction_labels.s
+++ b/test/MC/MachO/direction_labels.s
@@ -14,7 +14,7 @@ direction_labels:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 228)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -46,7 +46,7 @@ direction_labels:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x90\xeb\xfd\x90u\x00\x90u\xfd\xeb\x00\x90\xc3')
+// CHECK: ('_section_data', '90ebfd90 75009075 fdeb0090 c3')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/empty-dwarf-lines.s b/test/MC/MachO/empty-dwarf-lines.s
new file mode 100644
index 0000000..4bdc16b
--- /dev/null
+++ b/test/MC/MachO/empty-dwarf-lines.s
@@ -0,0 +1,25 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+
+// This tests that when producing files for darwin9 or older we make sure
+// that debug_line sections are of a minimum size to avoid the linker bug
+// described in PR8715.
+
+ .section __DATA,__data
+ .file 1 "test.c"
+ .globl _c ## @c
+_c:
+ .asciz "hi\n"
+
+// CHECK: (('section_name', '__debug_line\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__DWARF\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 4)
+// CHECK-NEXT: ('size', 44)
+// CHECK-NEXT: ('offset', 452)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0x2000000)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ('reserved3', 0)
+// CHECK-NEXT: ),
diff --git a/test/MC/MachO/indirect-symbols.s b/test/MC/MachO/indirect-symbols.s
index 45a62f6..90fd231 100644
--- a/test/MC/MachO/indirect-symbols.s
+++ b/test/MC/MachO/indirect-symbols.s
@@ -23,7 +23,7 @@ _e:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 364)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -71,7 +71,7 @@ _e:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4\xf4')
+// CHECK: ('_section_data', 'f4f4f4f4 f4f4f4f4 f4f4f4f4 f4f4f4')
// CHECK: # Section 2
// CHECK: (('section_name', '__pointers\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__IMPORT\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -87,7 +87,7 @@ _e:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/jcc.s b/test/MC/MachO/jcc.s
index 7640429..2288a20 100644
--- a/test/MC/MachO/jcc.s
+++ b/test/MC/MachO/jcc.s
@@ -10,7 +10,7 @@
1: nop
jc 1f
1: nop
- jcxz 1f
+ jecxz 1f
1: nop
jecxz 1f
1: nop
@@ -100,7 +100,7 @@
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', 'w\x00\x90s\x00\x90r\x00\x90v\x00\x90r\x00\x90\xe3\x00\x90\xe3\x00\x90t\x00\x90\x7f\x00\x90}\x00\x90|\x00\x90~\x00\x90v\x00\x90r\x00\x90s\x00\x90w\x00\x90s\x00\x90u\x00\x90~\x00\x90|\x00\x90}\x00\x90\x7f\x00\x90q\x00\x90{\x00\x90y\x00\x90u\x00\x90p\x00\x90z\x00\x90z\x00\x90{\x00\x90x\x00\x90t\x00\x90')
+// CHECK: ('_section_data', '77009073 00907200 90760090 720090e3 0090e300 90740090 7f00907d 00907c00 907e0090 76009072 00907300 90770090 73009075 00907e00 907c0090 7d00907f 00907100 907b0090 79009075 00907000 907a0090 7a00907b 00907800 90740090')
// CHECK: ])
// CHECK: ),
// CHECK: ])
diff --git a/test/MC/MachO/lcomm-attributes.s b/test/MC/MachO/lcomm-attributes.s
index 2685395..1e95924 100644
--- a/test/MC/MachO/lcomm-attributes.s
+++ b/test/MC/MachO/lcomm-attributes.s
@@ -17,7 +17,7 @@
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/loc.s b/test/MC/MachO/loc.s
new file mode 100644
index 0000000..6e7faa3
--- /dev/null
+++ b/test/MC/MachO/loc.s
@@ -0,0 +1,25 @@
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+
+ .file 1 "foo"
+ .loc 1 64 0
+ nop
+
+// CHECK: # Section 1
+// CHECK-NEXT: (('section_name', '__debug_line\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__DWARF\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 1)
+// CHECK-NEXT: ('size', 51)
+// CHECK-NEXT: ('offset', 221)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 272)
+// CHECK-NEXT: ('num_reloc', 1)
+// CHECK-NEXT: ('flags', 0x2000000)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0
+// CHECK-NEXT: (('word-0', 0x27),
+// CHECK-NEXT: ('word-1', 0x4000001)),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '2f000000 02001a00 00000101 fb0e0d00 01010101 00000001 00000100 666f6f00 00000000 00050200 00000003 3f010201 000101')
diff --git a/test/MC/MachO/pcrel-to-other-section.s b/test/MC/MachO/pcrel-to-other-section.s
new file mode 100644
index 0000000..22a7822
--- /dev/null
+++ b/test/MC/MachO/pcrel-to-other-section.s
@@ -0,0 +1,107 @@
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+
+nop
+ .section __TEXT,__StaticInit,regular,pure_instructions
+ calll foo
+
+// CHECK: ('cputype', 7)
+// CHECK-NEXT: ('cpusubtype', 3)
+// CHECK-NEXT: ('filetype', 1)
+// CHECK-NEXT: ('num_load_commands', 3)
+// CHECK-NEXT: ('load_commands_size', 296)
+// CHECK-NEXT: ('flag', 0)
+// CHECK-NEXT: ('load_commands', [
+// CHECK-NEXT: # Load Command 0
+// CHECK-NEXT: (('command', 1)
+// CHECK-NEXT: ('size', 192)
+// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('vm_addr', 0)
+// CHECK-NEXT: ('vm_size', 6)
+// CHECK-NEXT: ('file_offset', 324)
+// CHECK-NEXT: ('file_size', 6)
+// CHECK-NEXT: ('maxprot', 7)
+// CHECK-NEXT: ('initprot', 7)
+// CHECK-NEXT: ('num_sections', 2)
+// CHECK-NEXT: ('flags', 0)
+// CHECK-NEXT: ('sections', [
+// CHECK-NEXT: # Section 0
+// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 1)
+// CHECK-NEXT: ('offset', 324)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0x80000400)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '90')
+// CHECK-NEXT: # Section 1
+// CHECK-NEXT: (('section_name', '__StaticInit\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 1)
+// CHECK-NEXT: ('size', 5)
+// CHECK-NEXT: ('offset', 325)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 332)
+// CHECK-NEXT: ('num_reloc', 1)
+// CHECK-NEXT: ('flags', 0x80000400)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0
+// CHECK-NEXT: (('word-0', 0x1),
+// CHECK-NEXT: ('word-1', 0xd000000)),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', 'e8faffff ff')
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Load Command 1
+// CHECK-NEXT: (('command', 2)
+// CHECK-NEXT: ('size', 24)
+// CHECK-NEXT: ('symoff', 340)
+// CHECK-NEXT: ('nsyms', 1)
+// CHECK-NEXT: ('stroff', 352)
+// CHECK-NEXT: ('strsize', 8)
+// CHECK-NEXT: ('_string_data', '\x00foo\x00\x00\x00\x00')
+// CHECK-NEXT: ('_symbols', [
+// CHECK-NEXT: # Symbol 0
+// CHECK-NEXT: (('n_strx', 1)
+// CHECK-NEXT: ('n_type', 0x1)
+// CHECK-NEXT: ('n_sect', 0)
+// CHECK-NEXT: ('n_desc', 0)
+// CHECK-NEXT: ('n_value', 0)
+// CHECK-NEXT: ('_string', 'foo')
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Load Command 2
+// CHECK-NEXT: (('command', 11)
+// CHECK-NEXT: ('size', 80)
+// CHECK-NEXT: ('ilocalsym', 0)
+// CHECK-NEXT: ('nlocalsym', 0)
+// CHECK-NEXT: ('iextdefsym', 0)
+// CHECK-NEXT: ('nextdefsym', 0)
+// CHECK-NEXT: ('iundefsym', 0)
+// CHECK-NEXT: ('nundefsym', 1)
+// CHECK-NEXT: ('tocoff', 0)
+// CHECK-NEXT: ('ntoc', 0)
+// CHECK-NEXT: ('modtaboff', 0)
+// CHECK-NEXT: ('nmodtab', 0)
+// CHECK-NEXT: ('extrefsymoff', 0)
+// CHECK-NEXT: ('nextrefsyms', 0)
+// CHECK-NEXT: ('indirectsymoff', 0)
+// CHECK-NEXT: ('nindirectsyms', 0)
+// CHECK-NEXT: ('extreloff', 0)
+// CHECK-NEXT: ('nextrel', 0)
+// CHECK-NEXT: ('locreloff', 0)
+// CHECK-NEXT: ('nlocrel', 0)
+// CHECK-NEXT: ('_indirect_symbols', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/MachO/relax-jumps.s b/test/MC/MachO/relax-jumps.s
index 9c58aa7..65a51e9 100644
--- a/test/MC/MachO/relax-jumps.s
+++ b/test/MC/MachO/relax-jumps.s
@@ -10,9 +10,9 @@
// diff $f.{as,mc}.dump)
// to examine the results in a more sensible fashion.
-// CHECK: ('_section_data', '\x90
-// CHECK: \x0f\x842\xff\xff\xff\x0f\x82\xe6\x00\x00\x00\x0f\x87&\xff\xff\xff\x0f\x8f\xda\x00\x00\x00\x0f\x88\x1a\xff\xff\xff\x0f\x83\xce\x00\x00\x00\x0f\x89\x0e\xff\xff\xff\x90
-// CHECK: \x901\xc0')
+// CHECK: ('_section_data', '90
+// CHECK: 0f8432ff ffff0f82 e6000000 0f8726ff ffff0f8f da000000 0f881aff ffff0f83 ce000000 0f890eff ffff90
+// CHECK: 9031c0')
L1:
.space 200, 0x90
diff --git a/test/MC/MachO/reloc-pcrel-offset.s b/test/MC/MachO/reloc-pcrel-offset.s
index 46dc3a9..e0f12bf 100644
--- a/test/MC/MachO/reloc-pcrel-offset.s
+++ b/test/MC/MachO/reloc-pcrel-offset.s
@@ -4,7 +4,7 @@
// CHECK: (('word-0', 0x1),
// CHECK: ('word-1', 0x5000002)),
// CHECK-NEXT: ])
-// CHECK: ('_section_data', '\xe8\xfb\xff\xff\xff')
+// CHECK: ('_section_data', 'e8fbffff ff')
.data
.long 0
diff --git a/test/MC/MachO/reloc.s b/test/MC/MachO/reloc.s
index f91f425..f6a3446 100644
--- a/test/MC/MachO/reloc.s
+++ b/test/MC/MachO/reloc.s
@@ -37,6 +37,7 @@ L0:
.text
_f0:
L1:
+ jmp 0xbabecafe
jmp L0
jmp L1
ret
@@ -55,7 +56,7 @@ _f1:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 364)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -64,9 +65,9 @@ _f1:
// CHECK: ('size', 260)
// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 71)
+// CHECK: ('vm_size', 76)
// CHECK: ('file_offset', 392)
-// CHECK: ('file_size', 71)
+// CHECK: ('file_size', 76)
// CHECK: ('maxprot', 7)
// CHECK: ('initprot', 7)
// CHECK: ('num_sections', 3)
@@ -76,29 +77,32 @@ _f1:
// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('address', 0)
-// CHECK: ('size', 8)
+// CHECK: ('size', 13)
// CHECK: ('offset', 392)
// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 464)
-// CHECK: ('num_reloc', 1)
+// CHECK: ('reloc_offset', 468)
+// CHECK: ('num_reloc', 2)
// CHECK: ('flags', 0x80000400)
// CHECK: ('reserved1', 0)
// CHECK: ('reserved2', 0)
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x1),
+// CHECK: (('word-0', 0x6),
// CHECK: ('word-1', 0x5000003)),
+// CHECK: # Relocation 1
+// CHECK: (('word-0', 0x1),
+// CHECK: ('word-1', 0x5000000)),
// CHECK: ])
-// CHECK: ('_section_data', '\xe9:\x00\x00\x00\xeb\xf9\xc3')
+// CHECK: ('_section_data', 'e9f9cabe bae93a00 0000ebf4 c3')
// CHECK: # Section 1
// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 8)
+// CHECK: ('address', 13)
// CHECK: ('size', 51)
-// CHECK: ('offset', 400)
+// CHECK: ('offset', 405)
// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 472)
+// CHECK: ('reloc_offset', 484)
// CHECK: ('num_reloc', 11)
// CHECK: ('flags', 0x0)
// CHECK: ('reserved1', 0)
@@ -113,22 +117,22 @@ _f1:
// CHECK: ('word-1', 0xc000007)),
// CHECK: # Relocation 2
// CHECK: (('word-0', 0x8000002a),
-// CHECK: ('word-1', 0x18)),
+// CHECK: ('word-1', 0x1d)),
// CHECK: # Relocation 3
// CHECK: (('word-0', 0x90000028),
-// CHECK: ('word-1', 0x18)),
+// CHECK: ('word-1', 0x1d)),
// CHECK: # Relocation 4
// CHECK: (('word-0', 0xa0000024),
-// CHECK: ('word-1', 0x18)),
+// CHECK: ('word-1', 0x1d)),
// CHECK: # Relocation 5
// CHECK: (('word-0', 0xa0000020),
-// CHECK: ('word-1', 0x18)),
+// CHECK: ('word-1', 0x1d)),
// CHECK: # Relocation 6
// CHECK: (('word-0', 0xa4000014),
-// CHECK: ('word-1', 0x1c)),
+// CHECK: ('word-1', 0x21)),
// CHECK: # Relocation 7
// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x24)),
+// CHECK: ('word-1', 0x29)),
// CHECK: # Relocation 8
// CHECK: (('word-0', 0x8),
// CHECK: ('word-1', 0x4000002)),
@@ -139,15 +143,15 @@ _f1:
// CHECK: (('word-0', 0x0),
// CHECK: ('word-1', 0xc000009)),
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x04\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00"\x00\x00\x00,\x00q\x00\x00\x00\x00\x04\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 04000000 15000000 00000000 00000000 ed000000 00000000 00000000 1e000000 27000000 31007600 00000004 000000')
// CHECK: # Section 2
// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 59)
+// CHECK: ('address', 64)
// CHECK: ('size', 12)
-// CHECK: ('offset', 451)
+// CHECK: ('offset', 456)
// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 560)
+// CHECK: ('reloc_offset', 572)
// CHECK: ('num_reloc', 4)
// CHECK: ('flags', 0x0)
// CHECK: ('reserved1', 0)
@@ -162,20 +166,20 @@ _f1:
// CHECK: ('word-1', 0x4000003)),
// CHECK: # Relocation 2
// CHECK: (('word-0', 0xa4000000),
-// CHECK: ('word-1', 0x18)),
+// CHECK: ('word-1', 0x1d)),
// CHECK: # Relocation 3
// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x3b)),
+// CHECK: ('word-1', 0x40)),
// CHECK: ])
-// CHECK: ('_section_data', '\xfe\xff\xff\xff?\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', 'feffffff 44000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
// CHECK: (('command', 2)
// CHECK: ('size', 24)
-// CHECK: ('symoff', 592)
+// CHECK: ('symoff', 604)
// CHECK: ('nsyms', 10)
-// CHECK: ('stroff', 712)
+// CHECK: ('stroff', 724)
// CHECK: ('strsize', 88)
// CHECK: ('_string_data', '\x00undef\x00local_a_ext\x00.objc_class_name_A\x00_f1\x00local_a\x00local_a_elt\x00local_b\x00local_c\x00bar\x00_f0\x00\x00\x00')
// CHECK: ('_symbols', [
@@ -184,7 +188,7 @@ _f1:
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 20)
+// CHECK: ('n_value', 25)
// CHECK: ('_string', 'local_a')
// CHECK: ),
// CHECK: # Symbol 1
@@ -192,7 +196,7 @@ _f1:
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 24)
+// CHECK: ('n_value', 29)
// CHECK: ('_string', 'local_a_elt')
// CHECK: ),
// CHECK: # Symbol 2
@@ -200,7 +204,7 @@ _f1:
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 28)
+// CHECK: ('n_value', 33)
// CHECK: ('_string', 'local_b')
// CHECK: ),
// CHECK: # Symbol 3
@@ -208,7 +212,7 @@ _f1:
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 36)
+// CHECK: ('n_value', 41)
// CHECK: ('_string', 'local_c')
// CHECK: ),
// CHECK: # Symbol 4
@@ -216,7 +220,7 @@ _f1:
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 59)
+// CHECK: ('n_value', 64)
// CHECK: ('_string', 'bar')
// CHECK: ),
// CHECK: # Symbol 5
@@ -240,7 +244,7 @@ _f1:
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 128)
-// CHECK: ('n_value', 8)
+// CHECK: ('n_value', 13)
// CHECK: ('_string', '_f1')
// CHECK: ),
// CHECK: # Symbol 8
@@ -248,7 +252,7 @@ _f1:
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 16)
+// CHECK: ('n_value', 21)
// CHECK: ('_string', 'local_a_ext')
// CHECK: ),
// CHECK: # Symbol 9
diff --git a/test/MC/MachO/section-align-1.s b/test/MC/MachO/section-align-1.s
index 6a5e247..360c0a8 100644
--- a/test/MC/MachO/section-align-1.s
+++ b/test/MC/MachO/section-align-1.s
@@ -9,7 +9,7 @@ name:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 228)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/section-align-2.s b/test/MC/MachO/section-align-2.s
index e070473..e0d7b8d 100644
--- a/test/MC/MachO/section-align-2.s
+++ b/test/MC/MachO/section-align-2.s
@@ -17,7 +17,7 @@ baz:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 364)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/string-table.s b/test/MC/MachO/string-table.s
index b811a0b..179528e 100644
--- a/test/MC/MachO/string-table.s
+++ b/test/MC/MachO/string-table.s
@@ -5,7 +5,7 @@
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 228)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -43,7 +43,7 @@
// CHECK: (('word-0', 0x2),
// CHECK: ('word-1', 0xc000001)),
// CHECK: ])
-// CHECK: ('_section_data', '\xc7\x05\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', 'c7050000 00000000 0000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/symbol-diff.s b/test/MC/MachO/symbol-diff.s
new file mode 100644
index 0000000..1483df1
--- /dev/null
+++ b/test/MC/MachO/symbol-diff.s
@@ -0,0 +1,122 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+_g:
+LFB2:
+ .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
+_g.eh:
+ .quad LFB2-.
+
+// CHECK: ('cputype', 16777223)
+// CHECK-NEXT: ('cpusubtype', 3)
+// CHECK-NEXT: ('filetype', 1)
+// CHECK-NEXT: ('num_load_commands', 3)
+// CHECK-NEXT: ('load_commands_size', 336)
+// CHECK-NEXT: ('flag', 0)
+// CHECK-NEXT: ('reserved', 0)
+// CHECK-NEXT: ('load_commands', [
+// CHECK-NEXT: # Load Command 0
+// CHECK-NEXT: (('command', 25)
+// CHECK-NEXT: ('size', 232)
+// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('vm_addr', 0)
+// CHECK-NEXT: ('vm_size', 8)
+// CHECK-NEXT: ('file_offset', 368)
+// CHECK-NEXT: ('file_size', 8)
+// CHECK-NEXT: ('maxprot', 7)
+// CHECK-NEXT: ('initprot', 7)
+// CHECK-NEXT: ('num_sections', 2)
+// CHECK-NEXT: ('flags', 0)
+// CHECK-NEXT: ('sections', [
+// CHECK-NEXT: # Section 0
+// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 0)
+// CHECK-NEXT: ('offset', 368)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0x80000000)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ('reserved3', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '')
+// CHECK-NEXT: # Section 1
+// CHECK-NEXT: (('section_name', '__eh_frame\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 8)
+// CHECK-NEXT: ('offset', 368)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 376)
+// CHECK-NEXT: ('num_reloc', 2)
+// CHECK-NEXT: ('flags', 0x6800000b)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ('reserved3', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0
+// CHECK-NEXT: (('word-0', 0x0),
+// CHECK-NEXT: ('word-1', 0x5e000001)),
+// CHECK-NEXT: # Relocation 1
+// CHECK-NEXT: (('word-0', 0x0),
+// CHECK-NEXT: ('word-1', 0xe000000)),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '00000000 00000000')
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Load Command 1
+// CHECK-NEXT: (('command', 2)
+// CHECK-NEXT: ('size', 24)
+// CHECK-NEXT: ('symoff', 392)
+// CHECK-NEXT: ('nsyms', 2)
+// CHECK-NEXT: ('stroff', 424)
+// CHECK-NEXT: ('strsize', 12)
+// CHECK-NEXT: ('_string_data', '\x00_g\x00_g.eh\x00\x00\x00')
+// CHECK-NEXT: ('_symbols', [
+// CHECK-NEXT: # Symbol 0
+// CHECK-NEXT: (('n_strx', 1)
+// CHECK-NEXT: ('n_type', 0xe)
+// CHECK-NEXT: ('n_sect', 1)
+// CHECK-NEXT: ('n_desc', 0)
+// CHECK-NEXT: ('n_value', 0)
+// CHECK-NEXT: ('_string', '_g')
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 1
+// CHECK-NEXT: (('n_strx', 4)
+// CHECK-NEXT: ('n_type', 0xe)
+// CHECK-NEXT: ('n_sect', 2)
+// CHECK-NEXT: ('n_desc', 0)
+// CHECK-NEXT: ('n_value', 0)
+// CHECK-NEXT: ('_string', '_g.eh')
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Load Command 2
+// CHECK-NEXT: (('command', 11)
+// CHECK-NEXT: ('size', 80)
+// CHECK-NEXT: ('ilocalsym', 0)
+// CHECK-NEXT: ('nlocalsym', 2)
+// CHECK-NEXT: ('iextdefsym', 2)
+// CHECK-NEXT: ('nextdefsym', 0)
+// CHECK-NEXT: ('iundefsym', 2)
+// CHECK-NEXT: ('nundefsym', 0)
+// CHECK-NEXT: ('tocoff', 0)
+// CHECK-NEXT: ('ntoc', 0)
+// CHECK-NEXT: ('modtaboff', 0)
+// CHECK-NEXT: ('nmodtab', 0)
+// CHECK-NEXT: ('extrefsymoff', 0)
+// CHECK-NEXT: ('nextrefsyms', 0)
+// CHECK-NEXT: ('indirectsymoff', 0)
+// CHECK-NEXT: ('nindirectsyms', 0)
+// CHECK-NEXT: ('extreloff', 0)
+// CHECK-NEXT: ('nextrel', 0)
+// CHECK-NEXT: ('locreloff', 0)
+// CHECK-NEXT: ('nlocrel', 0)
+// CHECK-NEXT: ('_indirect_symbols', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT:])
diff --git a/test/MC/MachO/symbol-flags.s b/test/MC/MachO/symbol-flags.s
index 705fa39..7a4f8e4 100644
--- a/test/MC/MachO/symbol-flags.s
+++ b/test/MC/MachO/symbol-flags.s
@@ -49,6 +49,9 @@ sym_private_ext_C:
.no_dead_strip sym_no_dead_strip_A
+sym_symbol_resolver_A:
+ .symbol_resolver sym_symbol_resolver_A
+
.reference sym_ref_A
.desc sym_ref_A, 1
.desc sym_ref_A, 0x1234
@@ -59,7 +62,7 @@ sym_desc_flags:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -112,10 +115,10 @@ sym_desc_flags:
// CHECK: (('command', 2)
// CHECK: ('size', 24)
// CHECK: ('symoff', 324)
-// CHECK: ('nsyms', 23)
-// CHECK: ('stroff', 600)
-// CHECK: ('strsize', 368)
-// CHECK: ('_string_data', '\x00sym_ref_A\x00sym_ref_def_D\x00sym_ref_def_E\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_weak_def_B\x00sym_weak_def_C\x00sym_lazy_ref_A\x00sym_lazy_ref_D\x00sym_lazy_ref_E\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_private_ext_E\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_desc_flags\x00\x00\x00\x00')
+// CHECK: ('nsyms', 24)
+// CHECK: ('stroff', 612)
+// CHECK: ('strsize', 388)
+// CHECK: ('_string_data', '\x00sym_ref_A\x00sym_ref_def_D\x00sym_ref_def_E\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_weak_def_B\x00sym_weak_def_C\x00sym_lazy_ref_A\x00sym_lazy_ref_D\x00sym_lazy_ref_E\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_private_ext_E\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_symbol_resolver_A\x00sym_desc_flags\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
// CHECK: (('n_strx', 254)
@@ -169,11 +172,19 @@ sym_desc_flags:
// CHECK: (('n_strx', 350)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
+// CHECK: ('n_desc', 256)
+// CHECK: ('n_value', 0)
+// CHECK: ('_string', 'sym_symbol_resolver_A')
+// CHECK: ),
+// CHECK: # Symbol 7
+// CHECK: (('n_strx', 372)
+// CHECK: ('n_type', 0xe)
+// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 64)
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_desc_flags')
// CHECK: ),
-// CHECK: # Symbol 7
+// CHECK: # Symbol 8
// CHECK: (('n_strx', 162)
// CHECK: ('n_type', 0x1f)
// CHECK: ('n_sect', 2)
@@ -181,7 +192,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_private_ext_B')
// CHECK: ),
-// CHECK: # Symbol 8
+// CHECK: # Symbol 9
// CHECK: (('n_strx', 180)
// CHECK: ('n_type', 0x1f)
// CHECK: ('n_sect', 2)
@@ -189,7 +200,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_private_ext_C')
// CHECK: ),
-// CHECK: # Symbol 9
+// CHECK: # Symbol 10
// CHECK: (('n_strx', 54)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
@@ -197,7 +208,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_weak_def_A')
// CHECK: ),
-// CHECK: # Symbol 10
+// CHECK: # Symbol 11
// CHECK: (('n_strx', 69)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
@@ -205,7 +216,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_weak_def_B')
// CHECK: ),
-// CHECK: # Symbol 11
+// CHECK: # Symbol 12
// CHECK: (('n_strx', 84)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
@@ -213,7 +224,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_weak_def_C')
// CHECK: ),
-// CHECK: # Symbol 12
+// CHECK: # Symbol 13
// CHECK: (('n_strx', 99)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -221,7 +232,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_lazy_ref_A')
// CHECK: ),
-// CHECK: # Symbol 13
+// CHECK: # Symbol 14
// CHECK: (('n_strx', 114)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -229,7 +240,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_lazy_ref_D')
// CHECK: ),
-// CHECK: # Symbol 14
+// CHECK: # Symbol 15
// CHECK: (('n_strx', 129)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -237,7 +248,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_lazy_ref_E')
// CHECK: ),
-// CHECK: # Symbol 15
+// CHECK: # Symbol 16
// CHECK: (('n_strx', 234)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -245,7 +256,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_no_dead_strip_A')
// CHECK: ),
-// CHECK: # Symbol 16
+// CHECK: # Symbol 17
// CHECK: (('n_strx', 144)
// CHECK: ('n_type', 0x11)
// CHECK: ('n_sect', 0)
@@ -253,7 +264,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_private_ext_A')
// CHECK: ),
-// CHECK: # Symbol 17
+// CHECK: # Symbol 18
// CHECK: (('n_strx', 198)
// CHECK: ('n_type', 0x11)
// CHECK: ('n_sect', 0)
@@ -261,7 +272,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_private_ext_D')
// CHECK: ),
-// CHECK: # Symbol 18
+// CHECK: # Symbol 19
// CHECK: (('n_strx', 216)
// CHECK: ('n_type', 0x11)
// CHECK: ('n_sect', 0)
@@ -269,7 +280,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_private_ext_E')
// CHECK: ),
-// CHECK: # Symbol 19
+// CHECK: # Symbol 20
// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -277,7 +288,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_ref_A')
// CHECK: ),
-// CHECK: # Symbol 20
+// CHECK: # Symbol 21
// CHECK: (('n_strx', 11)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -285,7 +296,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_ref_def_D')
// CHECK: ),
-// CHECK: # Symbol 21
+// CHECK: # Symbol 22
// CHECK: (('n_strx', 25)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -293,7 +304,7 @@ sym_desc_flags:
// CHECK: ('n_value', 0)
// CHECK: ('_string', 'sym_ref_def_E')
// CHECK: ),
-// CHECK: # Symbol 22
+// CHECK: # Symbol 23
// CHECK: (('n_strx', 39)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
@@ -307,10 +318,10 @@ sym_desc_flags:
// CHECK: (('command', 11)
// CHECK: ('size', 80)
// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 7)
-// CHECK: ('iextdefsym', 7)
+// CHECK: ('nlocalsym', 8)
+// CHECK: ('iextdefsym', 8)
// CHECK: ('nextdefsym', 5)
-// CHECK: ('iundefsym', 12)
+// CHECK: ('iundefsym', 13)
// CHECK: ('nundefsym', 11)
// CHECK: ('tocoff', 0)
// CHECK: ('ntoc', 0)
diff --git a/test/MC/MachO/symbol-indirect.s b/test/MC/MachO/symbol-indirect.s
index 461291a..2412970 100644
--- a/test/MC/MachO/symbol-indirect.s
+++ b/test/MC/MachO/symbol-indirect.s
@@ -72,7 +72,7 @@ sym_nlp_G:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 364)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/symbols-1.s b/test/MC/MachO/symbols-1.s
index 623e528..cf05afa 100644
--- a/test/MC/MachO/symbols-1.s
+++ b/test/MC/MachO/symbols-1.s
@@ -20,7 +20,7 @@ Lsym_asm_temp:
// CHECK-X86_32: ('cputype', 7)
// CHECK-X86_32: ('cpusubtype', 3)
// CHECK-X86_32: ('filetype', 1)
-// CHECK-X86_32: ('num_load_commands', 1)
+// CHECK-X86_32: ('num_load_commands', 3)
// CHECK-X86_32: ('load_commands_size', 228)
// CHECK-X86_32: ('flag', 0)
// CHECK-X86_32: ('load_commands', [
@@ -164,7 +164,7 @@ Lsym_asm_temp:
// CHECK-X86_64: ('cputype', 16777223)
// CHECK-X86_64: ('cpusubtype', 3)
// CHECK-X86_64: ('filetype', 1)
-// CHECK-X86_64: ('num_load_commands', 1)
+// CHECK-X86_64: ('num_load_commands', 3)
// CHECK-X86_64: ('load_commands_size', 256)
// CHECK-X86_64: ('flag', 0)
// CHECK-X86_64: ('reserved', 0)
diff --git a/test/MC/MachO/tbss.s b/test/MC/MachO/tbss.s
index 2131ea4..8eae142 100644
--- a/test/MC/MachO/tbss.s
+++ b/test/MC/MachO/tbss.s
@@ -6,7 +6,7 @@
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 336)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -57,7 +57,7 @@
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\xcf\xfa\xed\xfe\x07\x00\x00\x01\x03\x00\x00\x00')
+// CHECK: ('_section_data', 'cffaedfe 07000001 03000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/tdata.s b/test/MC/MachO/tdata.s
index 64f88b5..4829ca7 100644
--- a/test/MC/MachO/tdata.s
+++ b/test/MC/MachO/tdata.s
@@ -6,7 +6,7 @@ _a$tlv$init:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 336)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -57,7 +57,7 @@ _a$tlv$init:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x04\x00\x00\x00')
+// CHECK: ('_section_data', '04000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/thread_init_func.s b/test/MC/MachO/thread_init_func.s
index eeab6e1..d3ead83 100644
--- a/test/MC/MachO/thread_init_func.s
+++ b/test/MC/MachO/thread_init_func.s
@@ -57,7 +57,7 @@
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: ])
diff --git a/test/MC/MachO/tls.s b/test/MC/MachO/tls.s
index 07ea0aa..44b61be 100644
--- a/test/MC/MachO/tls.s
+++ b/test/MC/MachO/tls.s
@@ -48,7 +48,7 @@ _b:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 496)
// CHECK: ('flag', 8192)
// CHECK: ('reserved', 0)
@@ -99,7 +99,7 @@ _b:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x04\x00\x00\x00\x05\x00\x00\x00')
+// CHECK: ('_section_data', '04000000 05000000')
// CHECK: # Section 2
// CHECK: (('section_name', '__thread_vars\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -140,7 +140,7 @@ _b:
// CHECK: (('word-0', 0x0),
// CHECK: ('word-1', 0xe000008)),
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
// CHECK: # Section 3
// CHECK: (('section_name', '__thread_bss\x00\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -157,7 +157,7 @@ _b:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\xcf\xfa\xed\xfe\x07\x00\x00\x01')
+// CHECK: ('_section_data', 'cffaedfe 07000001')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/tlv-reloc.s b/test/MC/MachO/tlv-reloc.s
index 04fc7ae..d111241 100644
--- a/test/MC/MachO/tlv-reloc.s
+++ b/test/MC/MachO/tlv-reloc.s
@@ -24,7 +24,7 @@ _foo:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 416)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -61,7 +61,7 @@ _foo:
// CHECK: (('word-0', 0x3),
// CHECK: ('word-1', 0x9d000001)),
// CHECK: ])
-// CHECK: ('_section_data', 'H\x8b=\x00\x00\x00\x00\xff\x17\xc3')
+// CHECK: ('_section_data', '488b3d00 000000ff 17c3')
// CHECK: # Section 1
// CHECK: (('section_name', '__thread_data\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -78,7 +78,7 @@ _foo:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x04\x00\x00\x00')
+// CHECK: ('_section_data', '04000000')
// CHECK: # Section 2
// CHECK: (('section_name', '__thread_vars\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -101,7 +101,7 @@ _foo:
// CHECK: (('word-0', 0x0),
// CHECK: ('word-1', 0xe000003)),
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/tlv.s b/test/MC/MachO/tlv.s
index 7dd7390..0fe028e 100644
--- a/test/MC/MachO/tlv.s
+++ b/test/MC/MachO/tlv.s
@@ -10,7 +10,7 @@ _a:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 336)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -61,7 +61,7 @@ _a:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/values.s b/test/MC/MachO/values.s
index 2a472ab..9611599 100644
--- a/test/MC/MachO/values.s
+++ b/test/MC/MachO/values.s
@@ -20,7 +20,7 @@ data_def_ext:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/weakdef.s b/test/MC/MachO/weakdef.s
new file mode 100644
index 0000000..494079d
--- /dev/null
+++ b/test/MC/MachO/weakdef.s
@@ -0,0 +1,141 @@
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+
+ .section __DATA,__datacoal_nt,coalesced
+ .section __TEXT,__const_coal,coalesced
+ .globl __ZTS3optIbE ## @_ZTS3optIbE
+ .weak_definition __ZTS3optIbE
+__ZTS3optIbE:
+
+
+ .section __DATA,__datacoal_nt,coalesced
+ .globl __ZTI3optIbE ## @_ZTI3optIbE
+ .weak_definition __ZTI3optIbE
+
+__ZTI3optIbE:
+ .long __ZTS3optIbE
+
+// CHECK: ('cputype', 7)
+// CHECK-NEXT: ('cpusubtype', 3)
+// CHECK-NEXT: ('filetype', 1)
+// CHECK-NEXT: ('num_load_commands', 3)
+// CHECK-NEXT: ('load_commands_size', 364)
+// CHECK-NEXT: ('flag', 0)
+// CHECK-NEXT: ('load_commands', [
+// CHECK-NEXT: # Load Command 0
+// CHECK-NEXT: (('command', 1)
+// CHECK-NEXT: ('size', 260)
+// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('vm_addr', 0)
+// CHECK-NEXT: ('vm_size', 4)
+// CHECK-NEXT: ('file_offset', 392)
+// CHECK-NEXT: ('file_size', 4)
+// CHECK-NEXT: ('maxprot', 7)
+// CHECK-NEXT: ('initprot', 7)
+// CHECK-NEXT: ('num_sections', 3)
+// CHECK-NEXT: ('flags', 0)
+// CHECK-NEXT: ('sections', [
+// CHECK-NEXT: # Section 0
+// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 0)
+// CHECK-NEXT: ('offset', 392)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0x80000000)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '')
+// CHECK-NEXT: # Section 1
+// CHECK-NEXT: (('section_name', '__datacoal_nt\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 0)
+// CHECK-NEXT: ('size', 4)
+// CHECK-NEXT: ('offset', 392)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 396)
+// CHECK-NEXT: ('num_reloc', 1)
+// CHECK-NEXT: ('flags', 0xb)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: # Relocation 0
+// CHECK-NEXT: (('word-0', 0x0),
+// CHECK-NEXT: ('word-1', 0xc000001)),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '00000000')
+// CHECK-NEXT: # Section 2
+// CHECK-NEXT: (('section_name', '__const_coal\x00\x00\x00\x00')
+// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
+// CHECK-NEXT: ('address', 4)
+// CHECK-NEXT: ('size', 0)
+// CHECK-NEXT: ('offset', 396)
+// CHECK-NEXT: ('alignment', 0)
+// CHECK-NEXT: ('reloc_offset', 0)
+// CHECK-NEXT: ('num_reloc', 0)
+// CHECK-NEXT: ('flags', 0xb)
+// CHECK-NEXT: ('reserved1', 0)
+// CHECK-NEXT: ('reserved2', 0)
+// CHECK-NEXT: ),
+// CHECK-NEXT: ('_relocations', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ('_section_data', '')
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Load Command 1
+// CHECK-NEXT: (('command', 2)
+// CHECK-NEXT: ('size', 24)
+// CHECK-NEXT: ('symoff', 404)
+// CHECK-NEXT: ('nsyms', 2)
+// CHECK-NEXT: ('stroff', 428)
+// CHECK-NEXT: ('strsize', 28)
+// CHECK-NEXT: ('_string_data', '\x00__ZTS3optIbE\x00__ZTI3optIbE\x00\x00')
+// CHECK-NEXT: ('_symbols', [
+// CHECK-NEXT: # Symbol 0
+// CHECK-NEXT: (('n_strx', 14)
+// CHECK-NEXT: ('n_type', 0xf)
+// CHECK-NEXT: ('n_sect', 2)
+// CHECK-NEXT: ('n_desc', 128)
+// CHECK-NEXT: ('n_value', 0)
+// CHECK-NEXT: ('_string', '__ZTI3optIbE')
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Symbol 1
+// CHECK-NEXT: (('n_strx', 1)
+// CHECK-NEXT: ('n_type', 0xf)
+// CHECK-NEXT: ('n_sect', 3)
+// CHECK-NEXT: ('n_desc', 128)
+// CHECK-NEXT: ('n_value', 4)
+// CHECK-NEXT: ('_string', '__ZTS3optIbE')
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: # Load Command 2
+// CHECK-NEXT: (('command', 11)
+// CHECK-NEXT: ('size', 80)
+// CHECK-NEXT: ('ilocalsym', 0)
+// CHECK-NEXT: ('nlocalsym', 0)
+// CHECK-NEXT: ('iextdefsym', 0)
+// CHECK-NEXT: ('nextdefsym', 2)
+// CHECK-NEXT: ('iundefsym', 2)
+// CHECK-NEXT: ('nundefsym', 0)
+// CHECK-NEXT: ('tocoff', 0)
+// CHECK-NEXT: ('ntoc', 0)
+// CHECK-NEXT: ('modtaboff', 0)
+// CHECK-NEXT: ('nmodtab', 0)
+// CHECK-NEXT: ('extrefsymoff', 0)
+// CHECK-NEXT: ('nextrefsyms', 0)
+// CHECK-NEXT: ('indirectsymoff', 0)
+// CHECK-NEXT: ('nindirectsyms', 0)
+// CHECK-NEXT: ('extreloff', 0)
+// CHECK-NEXT: ('nextrel', 0)
+// CHECK-NEXT: ('locreloff', 0)
+// CHECK-NEXT: ('nlocrel', 0)
+// CHECK-NEXT: ('_indirect_symbols', [
+// CHECK-NEXT: ])
+// CHECK-NEXT: ),
+// CHECK-NEXT: ])
diff --git a/test/MC/MachO/x86_32-optimal_nop.s b/test/MC/MachO/x86_32-optimal_nop.s
index e6d41d7..2475140 100644
--- a/test/MC/MachO/x86_32-optimal_nop.s
+++ b/test/MC/MachO/x86_32-optimal_nop.s
@@ -104,7 +104,7 @@
ret
ret
# nopw %cs:0L(%[re]ax,%[re]ax,1)
- # 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
+ # 0x66, 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00
.align 4, 0x90
ret
# 12 byte nop test
@@ -160,7 +160,7 @@ f0:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
@@ -192,7 +192,7 @@ f0:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\xc3\x90\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3f\x90\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x0f\x1f\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x0f\x1f@\x00\xc3\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\x0f\x1fD\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\xc3\xc3f\x0f\x1fD\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\xc3\x0f\x1f\x80\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3f\x0f\x1f\x84\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3f\x0f\x1f\x84\x00\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\xc3\x0f\x1fD\x00\x00f\x0f\x1fD\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3f\x0f\x1fD\x00\x00f\x0f\x1fD\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\xc3f\x0f\x1fD\x00\x00\x0f\x1f\x80\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xc3\x0f\x1f\x80\x00\x00\x00\x00\x0f\x1f\x80\x00\x00\x00\x00\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x0f\x1f\x80\x00\x00\x00\x00\x0f\x1f\x84\x00\x00\x00\x00\x00\xc3')
+// CHECK: ('_section_data', 'c390c300 00000000 00000000 00000000 c3c36690 c3000000 00000000 00000000 c30f1f00 c3000000 00000000 00000000 c3c3c3c3 0f1f4000 c3000000 00000000 c3c3c30f 1f440000 c3000000 00000000 c3c3660f 1f440000 c3000000 00000000 c30f1f80 00000000 c3000000 00000000 c3c3c3c3 c3c3c3c3 c3000000 00000000 c3c3c3c3 c3c3c366 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c3c3 c3c3c366 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c3c3 c366662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c3c3 6666662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c366 6666662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c36666 6666662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3666666 6666662e 0f1f8400 00000000 c3')
// CHECK: # Section 1
// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -208,7 +208,7 @@ f0:
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x00\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x00\x00\x00\x00')
+// CHECK: ('_section_data', '00909090 90909090 90909090 90909090 00000000')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/MachO/x86_32-symbols.s b/test/MC/MachO/x86_32-symbols.s
index 629ba7d..35ada35 100644
--- a/test/MC/MachO/x86_32-symbols.s
+++ b/test/MC/MachO/x86_32-symbols.s
@@ -124,7 +124,7 @@ D39:
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 2608)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/x86_64-symbols.s b/test/MC/MachO/x86_64-symbols.s
index c5c39a6..804cee8 100644
--- a/test/MC/MachO/x86_64-symbols.s
+++ b/test/MC/MachO/x86_64-symbols.s
@@ -124,7 +124,7 @@ D38:
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 2656)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
diff --git a/test/MC/MachO/zerofill-1.s b/test/MC/MachO/zerofill-1.s
index a175d4c..805a786 100644
--- a/test/MC/MachO/zerofill-1.s
+++ b/test/MC/MachO/zerofill-1.s
@@ -11,7 +11,7 @@
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 364)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/zerofill-2.s b/test/MC/MachO/zerofill-2.s
index e76de84..16577e4 100644
--- a/test/MC/MachO/zerofill-2.s
+++ b/test/MC/MachO/zerofill-2.s
@@ -8,7 +8,7 @@
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/zerofill-3.s b/test/MC/MachO/zerofill-3.s
index e7f4c7b..cc81fa8 100644
--- a/test/MC/MachO/zerofill-3.s
+++ b/test/MC/MachO/zerofill-3.s
@@ -22,7 +22,7 @@
// CHECK: ('cputype', 7)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 296)
// CHECK: ('flag', 0)
// CHECK: ('load_commands', [
diff --git a/test/MC/MachO/zerofill-5.s b/test/MC/MachO/zerofill-5.s
index 3074f60..91f251b 100644
--- a/test/MC/MachO/zerofill-5.s
+++ b/test/MC/MachO/zerofill-5.s
@@ -9,7 +9,7 @@
// CHECK: ('cputype', 16777223)
// CHECK: ('cpusubtype', 3)
// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
+// CHECK: ('num_load_commands', 3)
// CHECK: ('load_commands_size', 336)
// CHECK: ('flag', 0)
// CHECK: ('reserved', 0)
@@ -43,7 +43,7 @@
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\x02\x00\x00\x00')
+// CHECK: ('_section_data', '02000000')
// CHECK: # Section 1
// CHECK: (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
@@ -60,7 +60,7 @@
// CHECK: ),
// CHECK: ('_relocations', [
// CHECK: ])
-// CHECK: ('_section_data', '\xcf\xfa\xed\xfe\x07\x00\x00\x01')
+// CHECK: ('_section_data', 'cffaedfe 07000001')
// CHECK: ])
// CHECK: ),
// CHECK: # Load Command 1
diff --git a/test/MC/X86/3DNow.s b/test/MC/X86/3DNow.s
new file mode 100644
index 0000000..4dc68ae
--- /dev/null
+++ b/test/MC/X86/3DNow.s
@@ -0,0 +1,92 @@
+// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
+
+// PR8283
+
+// CHECK: pavgusb %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xbf]
+pavgusb %mm2, %mm1
+
+// CHECK: pavgusb 9(%esi,%edx), %mm3 # encoding: [0x0f,0x0f,0x5c,0x16,0x09,0xbf]
+pavgusb 9(%esi,%edx), %mm3
+
+
+// CHECK: pf2id %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x1d]
+pf2id %mm2, %mm1
+
+// CHECK: pf2id 9(%esi,%edx), %mm3 # encoding: [0x0f,0x0f,0x5c,0x16,0x09,0x1d]
+pf2id 9(%esi,%edx), %mm3
+
+// CHECK: pfacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xae]
+pfacc %mm2, %mm1
+
+// CHECK: pfadd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x9e]
+pfadd %mm2, %mm1
+
+// CHECK: pfcmpeq %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb0]
+pfcmpeq %mm2, %mm1
+
+// CHECK: pfcmpge %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x90]
+pfcmpge %mm2, %mm1
+
+// CHECK: pfcmpgt %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa0]
+pfcmpgt %mm2, %mm1
+
+// CHECK: pfmax %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa4]
+pfmax %mm2, %mm1
+
+// CHECK: pfmin %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x94]
+pfmin %mm2, %mm1
+
+// CHECK: pfmul %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb4]
+pfmul %mm2, %mm1
+
+// CHECK: pfrcp %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x96]
+pfrcp %mm2, %mm1
+
+// CHECK: pfrcpit1 %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa6]
+pfrcpit1 %mm2, %mm1
+
+// CHECK: pfrcpit2 %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb6]
+pfrcpit2 %mm2, %mm1
+
+// CHECK: pfrsqit1 %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xa7]
+pfrsqit1 %mm2, %mm1
+
+// CHECK: pfrsqrt %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x97]
+pfrsqrt %mm2, %mm1
+
+// CHECK: pfsub %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x9a]
+pfsub %mm2, %mm1
+
+// CHECK: pfsubr %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xaa]
+pfsubr %mm2, %mm1
+
+// CHECK: pi2fd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x0d]
+pi2fd %mm2, %mm1
+
+// CHECK: pmulhrw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xb7]
+pmulhrw %mm2, %mm1
+
+
+// CHECK: femms # encoding: [0x0f,0x0e]
+femms
+
+// CHECK: prefetch (%rax) # encoding: [0x0f,0x0d,0x00]
+// CHECK: prefetchw (%rax) # encoding: [0x0f,0x0d,0x08]
+prefetch (%rax)
+prefetchw (%rax)
+
+
+// CHECK: pf2iw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x1c]
+pf2iw %mm2, %mm1
+
+// CHECK: pi2fw %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x0c]
+pi2fw %mm2, %mm1
+
+// CHECK: pfnacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x8a]
+pfnacc %mm2, %mm1
+
+// CHECK: pfpnacc %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0x8e]
+pfpnacc %mm2, %mm1
+
+// CHECK: pswapd %mm2, %mm1 # encoding: [0x0f,0x0f,0xca,0xbb]
+pswapd %mm2, %mm1
diff --git a/test/MC/AsmParser/X86/dg.exp b/test/MC/X86/dg.exp
index ec87b69..ec87b69 100644
--- a/test/MC/AsmParser/X86/dg.exp
+++ b/test/MC/X86/dg.exp
diff --git a/test/MC/AsmParser/X86/x86_32-avx-encoding.s b/test/MC/X86/x86-32-avx.s
index b7ade66..1927e4e 100644
--- a/test/MC/AsmParser/X86/x86_32-avx-encoding.s
+++ b/test/MC/X86/x86-32-avx.s
@@ -3239,3 +3239,45 @@
// CHECK: encoding: [0xc4,0xe3,0x75,0x4b,0x94,0x20,0xad,0xde,0x00,0x00,0x00]
vblendvpd %ymm0, 0xdead(%eax,%eiz), %ymm1, %ymm2
+
+
+// CHECK: vpclmulqdq $17, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x11]
+ vpclmulhqhqdq %xmm2, %xmm5, %xmm1
+
+// CHECK: vpclmulqdq $17, (%eax), %xmm5, %xmm3
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x11]
+ vpclmulhqhqdq (%eax), %xmm5, %xmm3
+
+// CHECK: vpclmulqdq $1, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x01]
+ vpclmulhqlqdq %xmm2, %xmm5, %xmm1
+
+// CHECK: vpclmulqdq $1, (%eax), %xmm5, %xmm3
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x01]
+ vpclmulhqlqdq (%eax), %xmm5, %xmm3
+
+// CHECK: vpclmulqdq $16, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x10]
+ vpclmullqhqdq %xmm2, %xmm5, %xmm1
+
+// CHECK: vpclmulqdq $16, (%eax), %xmm5, %xmm3
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x10]
+ vpclmullqhqdq (%eax), %xmm5, %xmm3
+
+// CHECK: vpclmulqdq $0, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x00]
+ vpclmullqlqdq %xmm2, %xmm5, %xmm1
+
+// CHECK: vpclmulqdq $0, (%eax), %xmm5, %xmm3
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x00]
+ vpclmullqlqdq (%eax), %xmm5, %xmm3
+
+// CHECK: vpclmulqdq $17, %xmm2, %xmm5, %xmm1
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0xca,0x11]
+ vpclmulqdq $17, %xmm2, %xmm5, %xmm1
+
+// CHECK: vpclmulqdq $17, (%eax), %xmm5, %xmm3
+// CHECK: encoding: [0xc4,0xe3,0x51,0x44,0x18,0x11]
+ vpclmulqdq $17, (%eax), %xmm5, %xmm3
+
diff --git a/test/MC/AsmParser/X86/x86_32-encoding.s b/test/MC/X86/x86-32-coverage.s
index ef77423..4ec9fcd 100644
--- a/test/MC/AsmParser/X86/x86_32-encoding.s
+++ b/test/MC/X86/x86-32-coverage.s
@@ -1,5 +1,1636 @@
-// RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
-// XFAIL: *
+// RUN: llvm-mc -triple i386-unknown-unknown %s --show-encoding | FileCheck %s
+
+// CHECK: movb $127, 3735928559(%ebx,%ecx,8)
+ movb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movw $31438, 3735928559(%ebx,%ecx,8)
+ movw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8)
+ movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8)
+ movl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx
+ movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx
+ movswl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx
+ movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx
+ movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: pushl 3735928559(%ebx,%ecx,8)
+ pushl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: popl 3735928559(%ebx,%ecx,8)
+ popl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: lahf
+ lahf
+
+// CHECK: sahf
+ sahf
+
+// CHECK: addb $254, 3735928559(%ebx,%ecx,8)
+ addb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addb $127, 3735928559(%ebx,%ecx,8)
+ addb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addw $31438, 3735928559(%ebx,%ecx,8)
+ addw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8)
+ addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8)
+ addl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: incl 3735928559(%ebx,%ecx,8)
+ incl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subb $254, 3735928559(%ebx,%ecx,8)
+ subb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subb $127, 3735928559(%ebx,%ecx,8)
+ subb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subw $31438, 3735928559(%ebx,%ecx,8)
+ subw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8)
+ subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8)
+ subl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: decl 3735928559(%ebx,%ecx,8)
+ decl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8)
+ sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8)
+ sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8)
+ sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8)
+ cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8)
+ cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8)
+ cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8)
+ cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8)
+ cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testb $127, 3735928559(%ebx,%ecx,8)
+ testb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testw $31438, 3735928559(%ebx,%ecx,8)
+ testw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8)
+ testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8)
+ testl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andb $254, 3735928559(%ebx,%ecx,8)
+ andb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andb $127, 3735928559(%ebx,%ecx,8)
+ andb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andw $31438, 3735928559(%ebx,%ecx,8)
+ andw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8)
+ andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8)
+ andl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orb $254, 3735928559(%ebx,%ecx,8)
+ orb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orb $127, 3735928559(%ebx,%ecx,8)
+ orb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orw $31438, 3735928559(%ebx,%ecx,8)
+ orw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8)
+ orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8)
+ orl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorb $254, 3735928559(%ebx,%ecx,8)
+ xorb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorb $127, 3735928559(%ebx,%ecx,8)
+ xorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8)
+ xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8)
+ xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8)
+ xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcb $254, 3735928559(%ebx,%ecx,8)
+ adcb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcb $127, 3735928559(%ebx,%ecx,8)
+ adcb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8)
+ adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8)
+ adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8)
+ adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: negl 3735928559(%ebx,%ecx,8)
+ negl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: notl 3735928559(%ebx,%ecx,8)
+ notl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cbtw
+ cbtw
+
+// CHECK: cwtl
+ cwtl
+
+// CHECK: cwtd
+ cwtd
+
+// CHECK: cltd
+ cltd
+
+// CHECK: mull 3735928559(%ebx,%ecx,8)
+ mull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: imull 3735928559(%ebx,%ecx,8)
+ imull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: divl 3735928559(%ebx,%ecx,8)
+ divl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: idivl 3735928559(%ebx,%ecx,8)
+ idivl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: roll $0, 3735928559(%ebx,%ecx,8)
+ roll $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rolb $127, 3735928559(%ebx,%ecx,8)
+ rolb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: roll 3735928559(%ebx,%ecx,8)
+ roll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rorl $0, 3735928559(%ebx,%ecx,8)
+ rorl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rorb $127, 3735928559(%ebx,%ecx,8)
+ rorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rorl 3735928559(%ebx,%ecx,8)
+ rorl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shll $0, 3735928559(%ebx,%ecx,8)
+ shll $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shlb $127, 3735928559(%ebx,%ecx,8)
+ shlb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shll 3735928559(%ebx,%ecx,8)
+ shll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shrl $0, 3735928559(%ebx,%ecx,8)
+ shrl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shrb $127, 3735928559(%ebx,%ecx,8)
+ shrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shrl 3735928559(%ebx,%ecx,8)
+ shrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sarl $0, 3735928559(%ebx,%ecx,8)
+ sarl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sarb $127, 3735928559(%ebx,%ecx,8)
+ sarb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sarl 3735928559(%ebx,%ecx,8)
+ sarl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: calll *%ecx
+ call *%ecx
+
+// CHECK: calll *3735928559(%ebx,%ecx,8)
+ call *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: calll *3735928559(%ebx,%ecx,8)
+ call *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: jmpl *3735928559(%ebx,%ecx,8)
+ jmp *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: jmpl *3735928559(%ebx,%ecx,8)
+ jmp *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ljmpl *3735928559(%ebx,%ecx,8)
+ ljmpl *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: lret
+ lret
+
+// CHECK: leave
+ leave
+
+// CHECK: leave
+ leavel
+
+// CHECK: seto %bl
+ seto %bl
+
+// CHECK: seto 3735928559(%ebx,%ecx,8)
+ seto 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setno %bl
+ setno %bl
+
+// CHECK: setno 3735928559(%ebx,%ecx,8)
+ setno 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setb %bl
+ setb %bl
+
+// CHECK: setb 3735928559(%ebx,%ecx,8)
+ setb 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setae %bl
+ setae %bl
+
+// CHECK: setae 3735928559(%ebx,%ecx,8)
+ setae 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sete %bl
+ sete %bl
+
+// CHECK: sete 3735928559(%ebx,%ecx,8)
+ sete 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setne %bl
+ setne %bl
+
+// CHECK: setne 3735928559(%ebx,%ecx,8)
+ setne 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setbe %bl
+ setbe %bl
+
+// CHECK: setbe 3735928559(%ebx,%ecx,8)
+ setbe 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: seta %bl
+ seta %bl
+
+// CHECK: seta 3735928559(%ebx,%ecx,8)
+ seta 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sets %bl
+ sets %bl
+
+// CHECK: sets 3735928559(%ebx,%ecx,8)
+ sets 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setns %bl
+ setns %bl
+
+// CHECK: setns 3735928559(%ebx,%ecx,8)
+ setns 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setp %bl
+ setp %bl
+
+// CHECK: setp 3735928559(%ebx,%ecx,8)
+ setp 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setnp %bl
+ setnp %bl
+
+// CHECK: setnp 3735928559(%ebx,%ecx,8)
+ setnp 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setl %bl
+ setl %bl
+
+// CHECK: setl 3735928559(%ebx,%ecx,8)
+ setl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setge %bl
+ setge %bl
+
+// CHECK: setge 3735928559(%ebx,%ecx,8)
+ setge 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setle %bl
+ setle %bl
+
+// CHECK: setle 3735928559(%ebx,%ecx,8)
+ setle 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setg %bl
+ setg %bl
+
+// CHECK: setg 3735928559(%ebx,%ecx,8)
+ setg 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: nopl 3735928559(%ebx,%ecx,8)
+ nopl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: nop
+ nop
+
+// CHECK: fldl 3735928559(%ebx,%ecx,8)
+ fldl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fildl 3735928559(%ebx,%ecx,8)
+ fildl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fildll 3735928559(%ebx,%ecx,8)
+ fildll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fldt 3735928559(%ebx,%ecx,8)
+ fldt 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fbld 3735928559(%ebx,%ecx,8)
+ fbld 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fstl 3735928559(%ebx,%ecx,8)
+ fstl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fistl 3735928559(%ebx,%ecx,8)
+ fistl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fstpl 3735928559(%ebx,%ecx,8)
+ fstpl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fistpl 3735928559(%ebx,%ecx,8)
+ fistpl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fistpll 3735928559(%ebx,%ecx,8)
+ fistpll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fstpt 3735928559(%ebx,%ecx,8)
+ fstpt 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fbstp 3735928559(%ebx,%ecx,8)
+ fbstp 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ficoml 3735928559(%ebx,%ecx,8)
+ ficoml 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ficompl 3735928559(%ebx,%ecx,8)
+ ficompl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fucompp
+ fucompp
+
+// CHECK: ftst
+ ftst
+
+// CHECK: fld1
+ fld1
+
+// CHECK: fldz
+ fldz
+
+// CHECK: faddl 3735928559(%ebx,%ecx,8)
+ faddl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fiaddl 3735928559(%ebx,%ecx,8)
+ fiaddl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fsubl 3735928559(%ebx,%ecx,8)
+ fsubl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fisubl 3735928559(%ebx,%ecx,8)
+ fisubl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fsubrl 3735928559(%ebx,%ecx,8)
+ fsubrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fisubrl 3735928559(%ebx,%ecx,8)
+ fisubrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fmull 3735928559(%ebx,%ecx,8)
+ fmull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fimull 3735928559(%ebx,%ecx,8)
+ fimull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fdivl 3735928559(%ebx,%ecx,8)
+ fdivl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fidivl 3735928559(%ebx,%ecx,8)
+ fidivl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fdivrl 3735928559(%ebx,%ecx,8)
+ fdivrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fidivrl 3735928559(%ebx,%ecx,8)
+ fidivrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fsqrt
+ fsqrt
+
+// CHECK: fsin
+ fsin
+
+// CHECK: fcos
+ fcos
+
+// CHECK: fchs
+ fchs
+
+// CHECK: fabs
+ fabs
+
+// CHECK: fldcw 3735928559(%ebx,%ecx,8)
+ fldcw 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
+ fnstcw 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rdtsc
+ rdtsc
+
+// CHECK: sysenter
+ sysenter
+
+// CHECK: sysexit
+ sysexit
+
+// CHECK: ud2
+ ud2
+
+// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
+ movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: clflush 3735928559(%ebx,%ecx,8)
+ clflush 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: emms
+ emms
+
+// CHECK: movd %ecx, %mm3
+ movd %ecx,%mm3
+
+// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3
+ movd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: movd %ecx, %xmm5
+ movd %ecx,%xmm5
+
+// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5
+ movd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movd %xmm5, %ecx
+ movd %xmm5,%ecx
+
+// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8)
+ movd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3
+ movq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: movq %mm3, %mm3
+ movq %mm3,%mm3
+
+// CHECK: movq %mm3, %mm3
+ movq %mm3,%mm3
+
+// CHECK: movq %xmm5, %xmm5
+ movq %xmm5,%xmm5
+
+// CHECK: movq %xmm5, %xmm5
+ movq %xmm5,%xmm5
+
+// CHECK: packssdw %mm3, %mm3
+ packssdw %mm3,%mm3
+
+// CHECK: packssdw %xmm5, %xmm5
+ packssdw %xmm5,%xmm5
+
+// CHECK: packsswb %mm3, %mm3
+ packsswb %mm3,%mm3
+
+// CHECK: packsswb %xmm5, %xmm5
+ packsswb %xmm5,%xmm5
+
+// CHECK: packuswb %mm3, %mm3
+ packuswb %mm3,%mm3
+
+// CHECK: packuswb %xmm5, %xmm5
+ packuswb %xmm5,%xmm5
+
+// CHECK: paddb %mm3, %mm3
+ paddb %mm3,%mm3
+
+// CHECK: paddb %xmm5, %xmm5
+ paddb %xmm5,%xmm5
+
+// CHECK: paddw %mm3, %mm3
+ paddw %mm3,%mm3
+
+// CHECK: paddw %xmm5, %xmm5
+ paddw %xmm5,%xmm5
+
+// CHECK: paddd %mm3, %mm3
+ paddd %mm3,%mm3
+
+// CHECK: paddd %xmm5, %xmm5
+ paddd %xmm5,%xmm5
+
+// CHECK: paddq %mm3, %mm3
+ paddq %mm3,%mm3
+
+// CHECK: paddq %xmm5, %xmm5
+ paddq %xmm5,%xmm5
+
+// CHECK: paddsb %mm3, %mm3
+ paddsb %mm3,%mm3
+
+// CHECK: paddsb %xmm5, %xmm5
+ paddsb %xmm5,%xmm5
+
+// CHECK: paddsw %mm3, %mm3
+ paddsw %mm3,%mm3
+
+// CHECK: paddsw %xmm5, %xmm5
+ paddsw %xmm5,%xmm5
+
+// CHECK: paddusb %mm3, %mm3
+ paddusb %mm3,%mm3
+
+// CHECK: paddusb %xmm5, %xmm5
+ paddusb %xmm5,%xmm5
+
+// CHECK: paddusw %mm3, %mm3
+ paddusw %mm3,%mm3
+
+// CHECK: paddusw %xmm5, %xmm5
+ paddusw %xmm5,%xmm5
+
+// CHECK: pand %mm3, %mm3
+ pand %mm3,%mm3
+
+// CHECK: pand %xmm5, %xmm5
+ pand %xmm5,%xmm5
+
+// CHECK: pandn %mm3, %mm3
+ pandn %mm3,%mm3
+
+// CHECK: pandn %xmm5, %xmm5
+ pandn %xmm5,%xmm5
+
+// CHECK: pcmpeqb %mm3, %mm3
+ pcmpeqb %mm3,%mm3
+
+// CHECK: pcmpeqb %xmm5, %xmm5
+ pcmpeqb %xmm5,%xmm5
+
+// CHECK: pcmpeqw %mm3, %mm3
+ pcmpeqw %mm3,%mm3
+
+// CHECK: pcmpeqw %xmm5, %xmm5
+ pcmpeqw %xmm5,%xmm5
+
+// CHECK: pcmpeqd %mm3, %mm3
+ pcmpeqd %mm3,%mm3
+
+// CHECK: pcmpeqd %xmm5, %xmm5
+ pcmpeqd %xmm5,%xmm5
+
+// CHECK: pcmpgtb %mm3, %mm3
+ pcmpgtb %mm3,%mm3
+
+// CHECK: pcmpgtb %xmm5, %xmm5
+ pcmpgtb %xmm5,%xmm5
+
+// CHECK: pcmpgtw %mm3, %mm3
+ pcmpgtw %mm3,%mm3
+
+// CHECK: pcmpgtw %xmm5, %xmm5
+ pcmpgtw %xmm5,%xmm5
+
+// CHECK: pcmpgtd %mm3, %mm3
+ pcmpgtd %mm3,%mm3
+
+// CHECK: pcmpgtd %xmm5, %xmm5
+ pcmpgtd %xmm5,%xmm5
+
+// CHECK: pmaddwd %mm3, %mm3
+ pmaddwd %mm3,%mm3
+
+// CHECK: pmaddwd %xmm5, %xmm5
+ pmaddwd %xmm5,%xmm5
+
+// CHECK: pmulhw %mm3, %mm3
+ pmulhw %mm3,%mm3
+
+// CHECK: pmulhw %xmm5, %xmm5
+ pmulhw %xmm5,%xmm5
+
+// CHECK: pmullw %mm3, %mm3
+ pmullw %mm3,%mm3
+
+// CHECK: pmullw %xmm5, %xmm5
+ pmullw %xmm5,%xmm5
+
+// CHECK: por %mm3, %mm3
+ por %mm3,%mm3
+
+// CHECK: por %xmm5, %xmm5
+ por %xmm5,%xmm5
+
+// CHECK: psllw %mm3, %mm3
+ psllw %mm3,%mm3
+
+// CHECK: psllw %xmm5, %xmm5
+ psllw %xmm5,%xmm5
+
+// CHECK: psllw $127, %mm3
+ psllw $0x7f,%mm3
+
+// CHECK: psllw $127, %xmm5
+ psllw $0x7f,%xmm5
+
+// CHECK: pslld %mm3, %mm3
+ pslld %mm3,%mm3
+
+// CHECK: pslld %xmm5, %xmm5
+ pslld %xmm5,%xmm5
+
+// CHECK: pslld $127, %mm3
+ pslld $0x7f,%mm3
+
+// CHECK: pslld $127, %xmm5
+ pslld $0x7f,%xmm5
+
+// CHECK: psllq %mm3, %mm3
+ psllq %mm3,%mm3
+
+// CHECK: psllq %xmm5, %xmm5
+ psllq %xmm5,%xmm5
+
+// CHECK: psllq $127, %mm3
+ psllq $0x7f,%mm3
+
+// CHECK: psllq $127, %xmm5
+ psllq $0x7f,%xmm5
+
+// CHECK: psraw %mm3, %mm3
+ psraw %mm3,%mm3
+
+// CHECK: psraw %xmm5, %xmm5
+ psraw %xmm5,%xmm5
+
+// CHECK: psraw $127, %mm3
+ psraw $0x7f,%mm3
+
+// CHECK: psraw $127, %xmm5
+ psraw $0x7f,%xmm5
+
+// CHECK: psrad %mm3, %mm3
+ psrad %mm3,%mm3
+
+// CHECK: psrad %xmm5, %xmm5
+ psrad %xmm5,%xmm5
+
+// CHECK: psrad $127, %mm3
+ psrad $0x7f,%mm3
+
+// CHECK: psrad $127, %xmm5
+ psrad $0x7f,%xmm5
+
+// CHECK: psrlw %mm3, %mm3
+ psrlw %mm3,%mm3
+
+// CHECK: psrlw %xmm5, %xmm5
+ psrlw %xmm5,%xmm5
+
+// CHECK: psrlw $127, %mm3
+ psrlw $0x7f,%mm3
+
+// CHECK: psrlw $127, %xmm5
+ psrlw $0x7f,%xmm5
+
+// CHECK: psrld %mm3, %mm3
+ psrld %mm3,%mm3
+
+// CHECK: psrld %xmm5, %xmm5
+ psrld %xmm5,%xmm5
+
+// CHECK: psrld $127, %mm3
+ psrld $0x7f,%mm3
+
+// CHECK: psrld $127, %xmm5
+ psrld $0x7f,%xmm5
+
+// CHECK: psrlq %mm3, %mm3
+ psrlq %mm3,%mm3
+
+// CHECK: psrlq %xmm5, %xmm5
+ psrlq %xmm5,%xmm5
+
+// CHECK: psrlq $127, %mm3
+ psrlq $0x7f,%mm3
+
+// CHECK: psrlq $127, %xmm5
+ psrlq $0x7f,%xmm5
+
+// CHECK: psubb %mm3, %mm3
+ psubb %mm3,%mm3
+
+// CHECK: psubb %xmm5, %xmm5
+ psubb %xmm5,%xmm5
+
+// CHECK: psubw %mm3, %mm3
+ psubw %mm3,%mm3
+
+// CHECK: psubw %xmm5, %xmm5
+ psubw %xmm5,%xmm5
+
+// CHECK: psubd %mm3, %mm3
+ psubd %mm3,%mm3
+
+// CHECK: psubd %xmm5, %xmm5
+ psubd %xmm5,%xmm5
+
+// CHECK: psubq %mm3, %mm3
+ psubq %mm3,%mm3
+
+// CHECK: psubq %xmm5, %xmm5
+ psubq %xmm5,%xmm5
+
+// CHECK: psubsb %mm3, %mm3
+ psubsb %mm3,%mm3
+
+// CHECK: psubsb %xmm5, %xmm5
+ psubsb %xmm5,%xmm5
+
+// CHECK: psubsw %mm3, %mm3
+ psubsw %mm3,%mm3
+
+// CHECK: psubsw %xmm5, %xmm5
+ psubsw %xmm5,%xmm5
+
+// CHECK: psubusb %mm3, %mm3
+ psubusb %mm3,%mm3
+
+// CHECK: psubusb %xmm5, %xmm5
+ psubusb %xmm5,%xmm5
+
+// CHECK: psubusw %mm3, %mm3
+ psubusw %mm3,%mm3
+
+// CHECK: psubusw %xmm5, %xmm5
+ psubusw %xmm5,%xmm5
+
+// CHECK: punpckhbw %mm3, %mm3
+ punpckhbw %mm3,%mm3
+
+// CHECK: punpckhbw %xmm5, %xmm5
+ punpckhbw %xmm5,%xmm5
+
+// CHECK: punpckhwd %mm3, %mm3
+ punpckhwd %mm3,%mm3
+
+// CHECK: punpckhwd %xmm5, %xmm5
+ punpckhwd %xmm5,%xmm5
+
+// CHECK: punpckhdq %mm3, %mm3
+ punpckhdq %mm3,%mm3
+
+// CHECK: punpckhdq %xmm5, %xmm5
+ punpckhdq %xmm5,%xmm5
+
+// CHECK: punpcklbw %mm3, %mm3
+ punpcklbw %mm3,%mm3
+
+// CHECK: punpcklbw %xmm5, %xmm5
+ punpcklbw %xmm5,%xmm5
+
+// CHECK: punpcklwd %mm3, %mm3
+ punpcklwd %mm3,%mm3
+
+// CHECK: punpcklwd %xmm5, %xmm5
+ punpcklwd %xmm5,%xmm5
+
+// CHECK: punpckldq %mm3, %mm3
+ punpckldq %mm3,%mm3
+
+// CHECK: punpckldq %xmm5, %xmm5
+ punpckldq %xmm5,%xmm5
+
+// CHECK: pxor %mm3, %mm3
+ pxor %mm3,%mm3
+
+// CHECK: pxor %xmm5, %xmm5
+ pxor %xmm5,%xmm5
+
+// CHECK: addps %xmm5, %xmm5
+ addps %xmm5,%xmm5
+
+// CHECK: addss %xmm5, %xmm5
+ addss %xmm5,%xmm5
+
+// CHECK: andnps %xmm5, %xmm5
+ andnps %xmm5,%xmm5
+
+// CHECK: andps %xmm5, %xmm5
+ andps %xmm5,%xmm5
+
+// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpi2ps %mm3, %xmm5
+ cvtpi2ps %mm3,%xmm5
+
+// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvtps2pi %xmm5, %mm3
+ cvtps2pi %xmm5,%mm3
+
+// CHECK: cvtsi2ss %ecx, %xmm5
+ cvtsi2ss %ecx,%xmm5
+
+// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5
+ cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvttps2pi %xmm5, %mm3
+ cvttps2pi %xmm5,%mm3
+
+// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx
+ cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: cvttss2si %xmm5, %ecx
+ cvttss2si %xmm5,%ecx
+
+// CHECK: divps %xmm5, %xmm5
+ divps %xmm5,%xmm5
+
+// CHECK: divss %xmm5, %xmm5
+ divss %xmm5,%xmm5
+
+// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8)
+ ldmxcsr 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: maskmovq %mm3, %mm3
+ maskmovq %mm3,%mm3
+
+// CHECK: maxps %xmm5, %xmm5
+ maxps %xmm5,%xmm5
+
+// CHECK: maxss %xmm5, %xmm5
+ maxss %xmm5,%xmm5
+
+// CHECK: minps %xmm5, %xmm5
+ minps %xmm5,%xmm5
+
+// CHECK: minss %xmm5, %xmm5
+ minss %xmm5,%xmm5
+
+// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5
+ movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movaps %xmm5, %xmm5
+ movaps %xmm5,%xmm5
+
+// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8)
+ movaps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movaps %xmm5, %xmm5
+ movaps %xmm5,%xmm5
+
+// CHECK: movhlps %xmm5, %xmm5
+ movhlps %xmm5,%xmm5
+
+// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8)
+ movhps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movlhps %xmm5, %xmm5
+ movlhps %xmm5,%xmm5
+
+// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8)
+ movlps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movmskps %xmm5, %ecx
+ movmskps %xmm5,%ecx
+
+// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8)
+ movntps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8)
+ movntq %mm3,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8)
+ movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5
+ movss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movss %xmm5, %xmm5
+ movss %xmm5,%xmm5
+
+// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8)
+ movss %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movss %xmm5, %xmm5
+ movss %xmm5,%xmm5
+
+// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5
+ movups 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movups %xmm5, %xmm5
+ movups %xmm5,%xmm5
+
+// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8)
+ movups %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movups %xmm5, %xmm5
+ movups %xmm5,%xmm5
+
+// CHECK: mulps %xmm5, %xmm5
+ mulps %xmm5,%xmm5
+
+// CHECK: mulss %xmm5, %xmm5
+ mulss %xmm5,%xmm5
+
+// CHECK: orps %xmm5, %xmm5
+ orps %xmm5,%xmm5
+
+// CHECK: pavgb %mm3, %mm3
+ pavgb %mm3,%mm3
+
+// CHECK: pavgb %xmm5, %xmm5
+ pavgb %xmm5,%xmm5
+
+// CHECK: pavgw %mm3, %mm3
+ pavgw %mm3,%mm3
+
+// CHECK: pavgw %xmm5, %xmm5
+ pavgw %xmm5,%xmm5
+
+// CHECK: pmaxsw %mm3, %mm3
+ pmaxsw %mm3,%mm3
+
+// CHECK: pmaxsw %xmm5, %xmm5
+ pmaxsw %xmm5,%xmm5
+
+// CHECK: pmaxub %mm3, %mm3
+ pmaxub %mm3,%mm3
+
+// CHECK: pmaxub %xmm5, %xmm5
+ pmaxub %xmm5,%xmm5
+
+// CHECK: pminsw %mm3, %mm3
+ pminsw %mm3,%mm3
+
+// CHECK: pminsw %xmm5, %xmm5
+ pminsw %xmm5,%xmm5
+
+// CHECK: pminub %mm3, %mm3
+ pminub %mm3,%mm3
+
+// CHECK: pminub %xmm5, %xmm5
+ pminub %xmm5,%xmm5
+
+// CHECK: pmovmskb %mm3, %ecx
+ pmovmskb %mm3,%ecx
+
+// CHECK: pmovmskb %xmm5, %ecx
+ pmovmskb %xmm5,%ecx
+
+// CHECK: pmulhuw %mm3, %mm3
+ pmulhuw %mm3,%mm3
+
+// CHECK: pmulhuw %xmm5, %xmm5
+ pmulhuw %xmm5,%xmm5
+
+// CHECK: prefetchnta 3735928559(%ebx,%ecx,8)
+ prefetchnta 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetcht0 3735928559(%ebx,%ecx,8)
+ prefetcht0 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetcht1 3735928559(%ebx,%ecx,8)
+ prefetcht1 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetcht2 3735928559(%ebx,%ecx,8)
+ prefetcht2 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: psadbw %mm3, %mm3
+ psadbw %mm3,%mm3
+
+// CHECK: psadbw %xmm5, %xmm5
+ psadbw %xmm5,%xmm5
+
+// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5
+ rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rcpps %xmm5, %xmm5
+ rcpps %xmm5,%xmm5
+
+// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5
+ rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rcpss %xmm5, %xmm5
+ rcpss %xmm5,%xmm5
+
+// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5
+ rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rsqrtps %xmm5, %xmm5
+ rsqrtps %xmm5,%xmm5
+
+// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5
+ rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rsqrtss %xmm5, %xmm5
+ rsqrtss %xmm5,%xmm5
+
+// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtps %xmm5, %xmm5
+ sqrtps %xmm5,%xmm5
+
+// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtss %xmm5, %xmm5
+ sqrtss %xmm5,%xmm5
+
+// CHECK: stmxcsr 3735928559(%ebx,%ecx,8)
+ stmxcsr 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subps %xmm5, %xmm5
+ subps %xmm5,%xmm5
+
+// CHECK: subss %xmm5, %xmm5
+ subss %xmm5,%xmm5
+
+// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5
+ ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: ucomiss %xmm5, %xmm5
+ ucomiss %xmm5,%xmm5
+
+// CHECK: unpckhps %xmm5, %xmm5
+ unpckhps %xmm5,%xmm5
+
+// CHECK: unpcklps %xmm5, %xmm5
+ unpcklps %xmm5,%xmm5
+
+// CHECK: xorps %xmm5, %xmm5
+ xorps %xmm5,%xmm5
+
+// CHECK: addpd %xmm5, %xmm5
+ addpd %xmm5,%xmm5
+
+// CHECK: addsd %xmm5, %xmm5
+ addsd %xmm5,%xmm5
+
+// CHECK: andnpd %xmm5, %xmm5
+ andnpd %xmm5,%xmm5
+
+// CHECK: andpd %xmm5, %xmm5
+ andpd %xmm5,%xmm5
+
+// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5
+ comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: comisd %xmm5, %xmm5
+ comisd %xmm5,%xmm5
+
+// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpi2pd %mm3, %xmm5
+ cvtpi2pd %mm3,%xmm5
+
+// CHECK: cvtsi2sd %ecx, %xmm5
+ cvtsi2sd %ecx,%xmm5
+
+// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: divpd %xmm5, %xmm5
+ divpd %xmm5,%xmm5
+
+// CHECK: divsd %xmm5, %xmm5
+ divsd %xmm5,%xmm5
+
+// CHECK: maxpd %xmm5, %xmm5
+ maxpd %xmm5,%xmm5
+
+// CHECK: maxsd %xmm5, %xmm5
+ maxsd %xmm5,%xmm5
+
+// CHECK: minpd %xmm5, %xmm5
+ minpd %xmm5,%xmm5
+
+// CHECK: minsd %xmm5, %xmm5
+ minsd %xmm5,%xmm5
+
+// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5
+ movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movapd %xmm5, %xmm5
+ movapd %xmm5,%xmm5
+
+// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8)
+ movapd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movapd %xmm5, %xmm5
+ movapd %xmm5,%xmm5
+
+// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8)
+ movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8)
+ movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movmskpd %xmm5, %ecx
+ movmskpd %xmm5,%ecx
+
+// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8)
+ movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5
+ movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movsd %xmm5, %xmm5
+ movsd %xmm5,%xmm5
+
+// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8)
+ movsd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movsd %xmm5, %xmm5
+ movsd %xmm5,%xmm5
+
+// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5
+ movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movupd %xmm5, %xmm5
+ movupd %xmm5,%xmm5
+
+// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8)
+ movupd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movupd %xmm5, %xmm5
+ movupd %xmm5,%xmm5
+
+// CHECK: mulpd %xmm5, %xmm5
+ mulpd %xmm5,%xmm5
+
+// CHECK: mulsd %xmm5, %xmm5
+ mulsd %xmm5,%xmm5
+
+// CHECK: orpd %xmm5, %xmm5
+ orpd %xmm5,%xmm5
+
+// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtpd %xmm5, %xmm5
+ sqrtpd %xmm5,%xmm5
+
+// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtsd %xmm5, %xmm5
+ sqrtsd %xmm5,%xmm5
+
+// CHECK: subpd %xmm5, %xmm5
+ subpd %xmm5,%xmm5
+
+// CHECK: subsd %xmm5, %xmm5
+ subsd %xmm5,%xmm5
+
+// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5
+ ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: ucomisd %xmm5, %xmm5
+ ucomisd %xmm5,%xmm5
+
+// CHECK: unpckhpd %xmm5, %xmm5
+ unpckhpd %xmm5,%xmm5
+
+// CHECK: unpcklpd %xmm5, %xmm5
+ unpcklpd %xmm5,%xmm5
+
+// CHECK: xorpd %xmm5, %xmm5
+ xorpd %xmm5,%xmm5
+
+// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtdq2pd %xmm5, %xmm5
+ cvtdq2pd %xmm5,%xmm5
+
+// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpd2dq %xmm5, %xmm5
+ cvtpd2dq %xmm5,%xmm5
+
+// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5
+ cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtdq2ps %xmm5, %xmm5
+ cvtdq2ps %xmm5,%xmm5
+
+// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvtpd2pi %xmm5, %mm3
+ cvtpd2pi %xmm5,%mm3
+
+// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5
+ cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtps2dq %xmm5, %xmm5
+ cvtps2dq %xmm5,%xmm5
+
+// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5
+ cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtsd2ss %xmm5, %xmm5
+ cvtsd2ss %xmm5,%xmm5
+
+// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtss2sd %xmm5, %xmm5
+ cvtss2sd %xmm5,%xmm5
+
+// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvttpd2pi %xmm5, %mm3
+ cvttpd2pi %xmm5,%mm3
+
+// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx
+ cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: cvttsd2si %xmm5, %ecx
+ cvttsd2si %xmm5,%ecx
+
+// CHECK: maskmovdqu %xmm5, %xmm5
+ maskmovdqu %xmm5,%xmm5
+
+// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5
+ movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movdqa %xmm5, %xmm5
+ movdqa %xmm5,%xmm5
+
+// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8)
+ movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movdqa %xmm5, %xmm5
+ movdqa %xmm5,%xmm5
+
+// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5
+ movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8)
+ movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movdq2q %xmm5, %mm3
+ movdq2q %xmm5,%mm3
+
+// CHECK: movq2dq %mm3, %xmm5
+ movq2dq %mm3,%xmm5
+
+// CHECK: pmuludq %mm3, %mm3
+ pmuludq %mm3,%mm3
+
+// CHECK: pmuludq %xmm5, %xmm5
+ pmuludq %xmm5,%xmm5
+
+// CHECK: pslldq $127, %xmm5
+ pslldq $0x7f,%xmm5
+
+// CHECK: psrldq $127, %xmm5
+ psrldq $0x7f,%xmm5
+
+// CHECK: punpckhqdq %xmm5, %xmm5
+ punpckhqdq %xmm5,%xmm5
+
+// CHECK: punpcklqdq %xmm5, %xmm5
+ punpcklqdq %xmm5,%xmm5
+
+// CHECK: addsubpd %xmm5, %xmm5
+ addsubpd %xmm5,%xmm5
+
+// CHECK: addsubps %xmm5, %xmm5
+ addsubps %xmm5,%xmm5
+
+// CHECK: haddpd %xmm5, %xmm5
+ haddpd %xmm5,%xmm5
+
+// CHECK: haddps %xmm5, %xmm5
+ haddps %xmm5,%xmm5
+
+// CHECK: hsubpd %xmm5, %xmm5
+ hsubpd %xmm5,%xmm5
+
+// CHECK: hsubps %xmm5, %xmm5
+ hsubps %xmm5,%xmm5
+
+// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5
+ lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5
+ movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movddup %xmm5, %xmm5
+ movddup %xmm5,%xmm5
+
+// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5
+ movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movshdup %xmm5, %xmm5
+ movshdup %xmm5,%xmm5
+
+// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5
+ movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movsldup %xmm5, %xmm5
+ movsldup %xmm5,%xmm5
+
+// CHECK: phaddw %mm3, %mm3
+ phaddw %mm3,%mm3
+
+// CHECK: phaddw %xmm5, %xmm5
+ phaddw %xmm5,%xmm5
+
+// CHECK: phaddd %mm3, %mm3
+ phaddd %mm3,%mm3
+
+// CHECK: phaddd %xmm5, %xmm5
+ phaddd %xmm5,%xmm5
+
+// CHECK: phaddsw %mm3, %mm3
+ phaddsw %mm3,%mm3
+
+// CHECK: phaddsw %xmm5, %xmm5
+ phaddsw %xmm5,%xmm5
+
+// CHECK: phsubw %mm3, %mm3
+ phsubw %mm3,%mm3
+
+// CHECK: phsubw %xmm5, %xmm5
+ phsubw %xmm5,%xmm5
+
+// CHECK: phsubd %mm3, %mm3
+ phsubd %mm3,%mm3
+
+// CHECK: phsubd %xmm5, %xmm5
+ phsubd %xmm5,%xmm5
+
+// CHECK: phsubsw %mm3, %mm3
+ phsubsw %mm3,%mm3
+
+// CHECK: phsubsw %xmm5, %xmm5
+ phsubsw %xmm5,%xmm5
+
+// CHECK: pmaddubsw %mm3, %mm3
+ pmaddubsw %mm3,%mm3
+
+// CHECK: pmaddubsw %xmm5, %xmm5
+ pmaddubsw %xmm5,%xmm5
+
+// CHECK: pmulhrsw %mm3, %mm3
+ pmulhrsw %mm3,%mm3
+
+// CHECK: pmulhrsw %xmm5, %xmm5
+ pmulhrsw %xmm5,%xmm5
+
+// CHECK: pshufb %mm3, %mm3
+ pshufb %mm3,%mm3
+
+// CHECK: pshufb %xmm5, %xmm5
+ pshufb %xmm5,%xmm5
+
+// CHECK: psignb %mm3, %mm3
+ psignb %mm3,%mm3
+
+// CHECK: psignb %xmm5, %xmm5
+ psignb %xmm5,%xmm5
+
+// CHECK: psignw %mm3, %mm3
+ psignw %mm3,%mm3
+
+// CHECK: psignw %xmm5, %xmm5
+ psignw %xmm5,%xmm5
+
+// CHECK: psignd %mm3, %mm3
+ psignd %mm3,%mm3
+
+// CHECK: psignd %xmm5, %xmm5
+ psignd %xmm5,%xmm5
+
+// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3
+ pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pabsb %mm3, %mm3
+ pabsb %mm3,%mm3
+
+// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5
+ pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pabsb %xmm5, %xmm5
+ pabsb %xmm5,%xmm5
+
+// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3
+ pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pabsw %mm3, %mm3
+ pabsw %mm3,%mm3
+
+// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5
+ pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pabsw %xmm5, %xmm5
+ pabsw %xmm5,%xmm5
+
+// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3
+ pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pabsd %mm3, %mm3
+ pabsd %mm3,%mm3
+
+// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5
+ pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pabsd %xmm5, %xmm5
+ pabsd %xmm5,%xmm5
+
+// CHECK: femms
+ femms
+
+// CHECK: packusdw %xmm5, %xmm5
+ packusdw %xmm5,%xmm5
+
+// CHECK: pcmpeqq %xmm5, %xmm5
+ pcmpeqq %xmm5,%xmm5
+
+// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5
+ phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phminposuw %xmm5, %xmm5
+ phminposuw %xmm5,%xmm5
+
+// CHECK: pmaxsb %xmm5, %xmm5
+ pmaxsb %xmm5,%xmm5
+
+// CHECK: pmaxsd %xmm5, %xmm5
+ pmaxsd %xmm5,%xmm5
+
+// CHECK: pmaxud %xmm5, %xmm5
+ pmaxud %xmm5,%xmm5
+
+// CHECK: pmaxuw %xmm5, %xmm5
+ pmaxuw %xmm5,%xmm5
+
+// CHECK: pminsb %xmm5, %xmm5
+ pminsb %xmm5,%xmm5
+
+// CHECK: pminsd %xmm5, %xmm5
+ pminsd %xmm5,%xmm5
+
+// CHECK: pminud %xmm5, %xmm5
+ pminud %xmm5,%xmm5
+
+// CHECK: pminuw %xmm5, %xmm5
+ pminuw %xmm5,%xmm5
+
+// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxbw %xmm5, %xmm5
+ pmovsxbw %xmm5,%xmm5
+
+// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxbd %xmm5, %xmm5
+ pmovsxbd %xmm5,%xmm5
+
+// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxbq %xmm5, %xmm5
+ pmovsxbq %xmm5,%xmm5
+
+// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxwd %xmm5, %xmm5
+ pmovsxwd %xmm5,%xmm5
+
+// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxwq %xmm5, %xmm5
+ pmovsxwq %xmm5,%xmm5
+
+// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxdq %xmm5, %xmm5
+ pmovsxdq %xmm5,%xmm5
+
+// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxbw %xmm5, %xmm5
+ pmovzxbw %xmm5,%xmm5
+
+// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxbd %xmm5, %xmm5
+ pmovzxbd %xmm5,%xmm5
+
+// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxbq %xmm5, %xmm5
+ pmovzxbq %xmm5,%xmm5
+
+// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxwd %xmm5, %xmm5
+ pmovzxwd %xmm5,%xmm5
+
+// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxwq %xmm5, %xmm5
+ pmovzxwq %xmm5,%xmm5
+
+// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxdq %xmm5, %xmm5
+ pmovzxdq %xmm5,%xmm5
+
+// CHECK: pmuldq %xmm5, %xmm5
+ pmuldq %xmm5,%xmm5
+
+// CHECK: pmulld %xmm5, %xmm5
+ pmulld %xmm5,%xmm5
+
+// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5
+ ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: ptest %xmm5, %xmm5
+ ptest %xmm5,%xmm5
+
+// CHECK: pcmpgtq %xmm5, %xmm5
+ pcmpgtq %xmm5,%xmm5
// CHECK: movb $127, 3735928559(%ebx,%ecx,8)
@@ -1634,23 +3265,23 @@
// CHECK: encoding: [0xd1,0x3d,0x78,0x56,0x34,0x12]
sarl 0x12345678
-// CHECK: call *%ecx
+// CHECK: calll *%ecx
// CHECK: encoding: [0xff,0xd1]
call *%ecx
-// CHECK: call *3735928559(%ebx,%ecx,8)
+// CHECK: calll *3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xff,0x94,0xcb,0xef,0xbe,0xad,0xde]
call *0xdeadbeef(%ebx,%ecx,8)
-// CHECK: call *3135175374
+// CHECK: calll *3135175374
// CHECK: encoding: [0xff,0x15,0xce,0xfa,0xde,0xba]
call *0xbadeface
-// CHECK: call *3735928559(%ebx,%ecx,8)
+// CHECK: calll *3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xff,0x94,0xcb,0xef,0xbe,0xad,0xde]
call *0xdeadbeef(%ebx,%ecx,8)
-// CHECK: call *3135175374
+// CHECK: calll *3135175374
// CHECK: encoding: [0xff,0x15,0xce,0xfa,0xde,0xba]
call *0xbadeface
@@ -1658,19 +3289,19 @@
// CHECK: encoding: [0x66,0xff,0x1d,0xed,0x7e,0x00,0x00]
lcallw *0x7eed
-// CHECK: jmp *3735928559(%ebx,%ecx,8)
+// CHECK: jmpl *3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xff,0xa4,0xcb,0xef,0xbe,0xad,0xde]
jmp *0xdeadbeef(%ebx,%ecx,8)
-// CHECK: jmp *3135175374
+// CHECK: jmpl *3135175374
// CHECK: encoding: [0xff,0x25,0xce,0xfa,0xde,0xba]
jmp *0xbadeface
-// CHECK: jmp *3735928559(%ebx,%ecx,8)
+// CHECK: jmpl *3735928559(%ebx,%ecx,8)
// CHECK: encoding: [0xff,0xa4,0xcb,0xef,0xbe,0xad,0xde]
jmp *0xdeadbeef(%ebx,%ecx,8)
-// CHECK: jmp *3135175374
+// CHECK: jmpl *3135175374
// CHECK: encoding: [0xff,0x25,0xce,0xfa,0xde,0xba]
jmp *0xbadeface
@@ -1702,6 +3333,10 @@
// CHECK: encoding: [0xc9]
leave
+// CHECK: leave
+// CHECK: encoding: [0xc9]
+ leavel
+
// CHECK: seto %bl
// CHECK: encoding: [0x0f,0x90,0xc3]
seto %bl
@@ -2846,19 +4481,19 @@
// CHECK: encoding: [0xdb,0xda]
fcmovnu %st(2),%st
-// CHECK: fcomi %st(2), %st(0)
+// CHECK: fcomi %st(2)
// CHECK: encoding: [0xdb,0xf2]
fcomi %st(2),%st
-// CHECK: fucomi %st(2), %st(0)
+// CHECK: fucomi %st(2)
// CHECK: encoding: [0xdb,0xea]
fucomi %st(2),%st
-// CHECK: fcomip %st(2), %st(0)
+// CHECK: fcompi %st(2)
// CHECK: encoding: [0xdf,0xf2]
fcomip %st(2),%st
-// CHECK: fucomip %st(2), %st(0)
+// CHECK: fucompi %st(2)
// CHECK: encoding: [0xdf,0xea]
fucomip %st(2),%st
@@ -9964,7 +11599,7 @@
// rdar://8017638
// CHECK: aeskeygenassist $128, %xmm1, %xmm2
-// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0x14,0x82,0x80]
+// CHECK: encoding: [0x66,0x0f,0x3a,0xdf,0xd1,0x80]
aeskeygenassist $128, %xmm1, %xmm2
// rdar://7910087
@@ -9986,7 +11621,7 @@
// radr://7901779
// CHECK: pushl $127
-// CHECK: encoding: [0x6a,0xfe]
+// CHECK: encoding: [0x6a,0x7f]
pushl $127
// CHECK: pushw $254
@@ -10067,3 +11702,7863 @@
// CHECK: encoding: [0x8b,0x04,0xe1]
movl (%ecx,%eiz,8), %eax
+// CHECK: addl $4294967295, %eax # encoding: [0x83,0xc0,0xff]
+ addl $0xFFFFFFFF, %eax
+
+// CHECK: addw $65535, %ax # encoding: [0x66,0x83,0xc0,0xff]
+ addw $0xFFFF, %ax
+
+
+// CHECK: movb $127, 3735928559(%ebx,%ecx,8)
+ movb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movb $127, 69
+ movb $0x7f,0x45
+
+// CHECK: movb $127, 32493
+ movb $0x7f,0x7eed
+
+// CHECK: movb $127, 3133065982
+ movb $0x7f,0xbabecafe
+
+// CHECK: movb $127, 305419896
+ movb $0x7f,0x12345678
+
+// CHECK: movw $31438, 3735928559(%ebx,%ecx,8)
+ movw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movw $31438, 69
+ movw $0x7ace,0x45
+
+// CHECK: movw $31438, 32493
+ movw $0x7ace,0x7eed
+
+// CHECK: movw $31438, 3133065982
+ movw $0x7ace,0xbabecafe
+
+// CHECK: movw $31438, 305419896
+ movw $0x7ace,0x12345678
+
+// CHECK: movl $2063514302, 3735928559(%ebx,%ecx,8)
+ movl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movl $2063514302, 69
+ movl $0x7afebabe,0x45
+
+// CHECK: movl $2063514302, 32493
+ movl $0x7afebabe,0x7eed
+
+// CHECK: movl $2063514302, 3133065982
+ movl $0x7afebabe,0xbabecafe
+
+// CHECK: movl $2063514302, 305419896
+ movl $0x7afebabe,0x12345678
+
+// CHECK: movl $324478056, 3735928559(%ebx,%ecx,8)
+ movl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movl $324478056, 69
+ movl $0x13572468,0x45
+
+// CHECK: movl $324478056, 32493
+ movl $0x13572468,0x7eed
+
+// CHECK: movl $324478056, 3133065982
+ movl $0x13572468,0xbabecafe
+
+// CHECK: movl $324478056, 305419896
+ movl $0x13572468,0x12345678
+
+// CHECK: movsbl 3735928559(%ebx,%ecx,8), %ecx
+ movsbl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movsbl 69, %ecx
+ movsbl 0x45,%ecx
+
+// CHECK: movsbl 32493, %ecx
+ movsbl 0x7eed,%ecx
+
+// CHECK: movsbl 3133065982, %ecx
+ movsbl 0xbabecafe,%ecx
+
+// CHECK: movsbl 305419896, %ecx
+ movsbl 0x12345678,%ecx
+
+// CHECK: movsbw 3735928559(%ebx,%ecx,8), %bx
+ movsbw 0xdeadbeef(%ebx,%ecx,8),%bx
+
+// CHECK: movsbw 69, %bx
+ movsbw 0x45,%bx
+
+// CHECK: movsbw 32493, %bx
+ movsbw 0x7eed,%bx
+
+// CHECK: movsbw 3133065982, %bx
+ movsbw 0xbabecafe,%bx
+
+// CHECK: movsbw 305419896, %bx
+ movsbw 0x12345678,%bx
+
+// CHECK: movswl 3735928559(%ebx,%ecx,8), %ecx
+ movswl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movswl 69, %ecx
+ movswl 0x45,%ecx
+
+// CHECK: movswl 32493, %ecx
+ movswl 0x7eed,%ecx
+
+// CHECK: movswl 3133065982, %ecx
+ movswl 0xbabecafe,%ecx
+
+// CHECK: movswl 305419896, %ecx
+ movswl 0x12345678,%ecx
+
+// CHECK: movzbl 3735928559(%ebx,%ecx,8), %ecx
+ movzbl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movzbl 69, %ecx
+ movzbl 0x45,%ecx
+
+// CHECK: movzbl 32493, %ecx
+ movzbl 0x7eed,%ecx
+
+// CHECK: movzbl 3133065982, %ecx
+ movzbl 0xbabecafe,%ecx
+
+// CHECK: movzbl 305419896, %ecx
+ movzbl 0x12345678,%ecx
+
+// CHECK: movzbw 3735928559(%ebx,%ecx,8), %bx
+ movzbw 0xdeadbeef(%ebx,%ecx,8),%bx
+
+// CHECK: movzbw 69, %bx
+ movzbw 0x45,%bx
+
+// CHECK: movzbw 32493, %bx
+ movzbw 0x7eed,%bx
+
+// CHECK: movzbw 3133065982, %bx
+ movzbw 0xbabecafe,%bx
+
+// CHECK: movzbw 305419896, %bx
+ movzbw 0x12345678,%bx
+
+// CHECK: movzwl 3735928559(%ebx,%ecx,8), %ecx
+ movzwl 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: movzwl 69, %ecx
+ movzwl 0x45,%ecx
+
+// CHECK: movzwl 32493, %ecx
+ movzwl 0x7eed,%ecx
+
+// CHECK: movzwl 3133065982, %ecx
+ movzwl 0xbabecafe,%ecx
+
+// CHECK: movzwl 305419896, %ecx
+ movzwl 0x12345678,%ecx
+
+// CHECK: pushw 32493
+ pushw 0x7eed
+
+// CHECK: popw 32493
+ popw 0x7eed
+
+// CHECK: pushf
+ pushfl
+
+// CHECK: pushfl
+ pushfl
+
+// CHECK: popf
+ popfl
+
+// CHECK: popfl
+ popfl
+
+// CHECK: clc
+ clc
+
+// CHECK: cld
+ cld
+
+// CHECK: cli
+ cli
+
+// CHECK: clts
+ clts
+
+// CHECK: cmc
+ cmc
+
+// CHECK: lahf
+ lahf
+
+// CHECK: sahf
+ sahf
+
+// CHECK: stc
+ stc
+
+// CHECK: std
+ std
+
+// CHECK: sti
+ sti
+
+// CHECK: addb $254, 3735928559(%ebx,%ecx,8)
+ addb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addb $254, 69
+ addb $0xfe,0x45
+
+// CHECK: addb $254, 32493
+ addb $0xfe,0x7eed
+
+// CHECK: addb $254, 3133065982
+ addb $0xfe,0xbabecafe
+
+// CHECK: addb $254, 305419896
+ addb $0xfe,0x12345678
+
+// CHECK: addb $127, 3735928559(%ebx,%ecx,8)
+ addb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addb $127, 69
+ addb $0x7f,0x45
+
+// CHECK: addb $127, 32493
+ addb $0x7f,0x7eed
+
+// CHECK: addb $127, 3133065982
+ addb $0x7f,0xbabecafe
+
+// CHECK: addb $127, 305419896
+ addb $0x7f,0x12345678
+
+// CHECK: addw $31438, 3735928559(%ebx,%ecx,8)
+ addw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addw $31438, 69
+ addw $0x7ace,0x45
+
+// CHECK: addw $31438, 32493
+ addw $0x7ace,0x7eed
+
+// CHECK: addw $31438, 3133065982
+ addw $0x7ace,0xbabecafe
+
+// CHECK: addw $31438, 305419896
+ addw $0x7ace,0x12345678
+
+// CHECK: addl $2063514302, 3735928559(%ebx,%ecx,8)
+ addl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addl $2063514302, 69
+ addl $0x7afebabe,0x45
+
+// CHECK: addl $2063514302, 32493
+ addl $0x7afebabe,0x7eed
+
+// CHECK: addl $2063514302, 3133065982
+ addl $0x7afebabe,0xbabecafe
+
+// CHECK: addl $2063514302, 305419896
+ addl $0x7afebabe,0x12345678
+
+// CHECK: addl $324478056, 3735928559(%ebx,%ecx,8)
+ addl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: addl $324478056, 69
+ addl $0x13572468,0x45
+
+// CHECK: addl $324478056, 32493
+ addl $0x13572468,0x7eed
+
+// CHECK: addl $324478056, 3133065982
+ addl $0x13572468,0xbabecafe
+
+// CHECK: addl $324478056, 305419896
+ addl $0x13572468,0x12345678
+
+// CHECK: incl 3735928559(%ebx,%ecx,8)
+ incl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: incw 32493
+ incw 0x7eed
+
+// CHECK: incl 3133065982
+ incl 0xbabecafe
+
+// CHECK: incl 305419896
+ incl 0x12345678
+
+// CHECK: subb $254, 3735928559(%ebx,%ecx,8)
+ subb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subb $254, 69
+ subb $0xfe,0x45
+
+// CHECK: subb $254, 32493
+ subb $0xfe,0x7eed
+
+// CHECK: subb $254, 3133065982
+ subb $0xfe,0xbabecafe
+
+// CHECK: subb $254, 305419896
+ subb $0xfe,0x12345678
+
+// CHECK: subb $127, 3735928559(%ebx,%ecx,8)
+ subb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subb $127, 69
+ subb $0x7f,0x45
+
+// CHECK: subb $127, 32493
+ subb $0x7f,0x7eed
+
+// CHECK: subb $127, 3133065982
+ subb $0x7f,0xbabecafe
+
+// CHECK: subb $127, 305419896
+ subb $0x7f,0x12345678
+
+// CHECK: subw $31438, 3735928559(%ebx,%ecx,8)
+ subw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subw $31438, 69
+ subw $0x7ace,0x45
+
+// CHECK: subw $31438, 32493
+ subw $0x7ace,0x7eed
+
+// CHECK: subw $31438, 3133065982
+ subw $0x7ace,0xbabecafe
+
+// CHECK: subw $31438, 305419896
+ subw $0x7ace,0x12345678
+
+// CHECK: subl $2063514302, 3735928559(%ebx,%ecx,8)
+ subl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subl $2063514302, 69
+ subl $0x7afebabe,0x45
+
+// CHECK: subl $2063514302, 32493
+ subl $0x7afebabe,0x7eed
+
+// CHECK: subl $2063514302, 3133065982
+ subl $0x7afebabe,0xbabecafe
+
+// CHECK: subl $2063514302, 305419896
+ subl $0x7afebabe,0x12345678
+
+// CHECK: subl $324478056, 3735928559(%ebx,%ecx,8)
+ subl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: subl $324478056, 69
+ subl $0x13572468,0x45
+
+// CHECK: subl $324478056, 32493
+ subl $0x13572468,0x7eed
+
+// CHECK: subl $324478056, 3133065982
+ subl $0x13572468,0xbabecafe
+
+// CHECK: subl $324478056, 305419896
+ subl $0x13572468,0x12345678
+
+// CHECK: decl 3735928559(%ebx,%ecx,8)
+ decl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: decw 32493
+ decw 0x7eed
+
+// CHECK: decl 3133065982
+ decl 0xbabecafe
+
+// CHECK: decl 305419896
+ decl 0x12345678
+
+// CHECK: sbbb $254, 3735928559(%ebx,%ecx,8)
+ sbbb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbb $254, 69
+ sbbb $0xfe,0x45
+
+// CHECK: sbbb $254, 32493
+ sbbb $0xfe,0x7eed
+
+// CHECK: sbbb $254, 3133065982
+ sbbb $0xfe,0xbabecafe
+
+// CHECK: sbbb $254, 305419896
+ sbbb $0xfe,0x12345678
+
+// CHECK: sbbb $127, 3735928559(%ebx,%ecx,8)
+ sbbb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbb $127, 69
+ sbbb $0x7f,0x45
+
+// CHECK: sbbb $127, 32493
+ sbbb $0x7f,0x7eed
+
+// CHECK: sbbb $127, 3133065982
+ sbbb $0x7f,0xbabecafe
+
+// CHECK: sbbb $127, 305419896
+ sbbb $0x7f,0x12345678
+
+// CHECK: sbbw $31438, 3735928559(%ebx,%ecx,8)
+ sbbw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbw $31438, 69
+ sbbw $0x7ace,0x45
+
+// CHECK: sbbw $31438, 32493
+ sbbw $0x7ace,0x7eed
+
+// CHECK: sbbw $31438, 3133065982
+ sbbw $0x7ace,0xbabecafe
+
+// CHECK: sbbw $31438, 305419896
+ sbbw $0x7ace,0x12345678
+
+// CHECK: sbbl $2063514302, 3735928559(%ebx,%ecx,8)
+ sbbl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbl $2063514302, 69
+ sbbl $0x7afebabe,0x45
+
+// CHECK: sbbl $2063514302, 32493
+ sbbl $0x7afebabe,0x7eed
+
+// CHECK: sbbl $2063514302, 3133065982
+ sbbl $0x7afebabe,0xbabecafe
+
+// CHECK: sbbl $2063514302, 305419896
+ sbbl $0x7afebabe,0x12345678
+
+// CHECK: sbbl $324478056, 3735928559(%ebx,%ecx,8)
+ sbbl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sbbl $324478056, 69
+ sbbl $0x13572468,0x45
+
+// CHECK: sbbl $324478056, 32493
+ sbbl $0x13572468,0x7eed
+
+// CHECK: sbbl $324478056, 3133065982
+ sbbl $0x13572468,0xbabecafe
+
+// CHECK: sbbl $324478056, 305419896
+ sbbl $0x13572468,0x12345678
+
+// CHECK: cmpb $254, 3735928559(%ebx,%ecx,8)
+ cmpb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpb $254, 69
+ cmpb $0xfe,0x45
+
+// CHECK: cmpb $254, 32493
+ cmpb $0xfe,0x7eed
+
+// CHECK: cmpb $254, 3133065982
+ cmpb $0xfe,0xbabecafe
+
+// CHECK: cmpb $254, 305419896
+ cmpb $0xfe,0x12345678
+
+// CHECK: cmpb $127, 3735928559(%ebx,%ecx,8)
+ cmpb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpb $127, 69
+ cmpb $0x7f,0x45
+
+// CHECK: cmpb $127, 32493
+ cmpb $0x7f,0x7eed
+
+// CHECK: cmpb $127, 3133065982
+ cmpb $0x7f,0xbabecafe
+
+// CHECK: cmpb $127, 305419896
+ cmpb $0x7f,0x12345678
+
+// CHECK: cmpw $31438, 3735928559(%ebx,%ecx,8)
+ cmpw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpw $31438, 69
+ cmpw $0x7ace,0x45
+
+// CHECK: cmpw $31438, 32493
+ cmpw $0x7ace,0x7eed
+
+// CHECK: cmpw $31438, 3133065982
+ cmpw $0x7ace,0xbabecafe
+
+// CHECK: cmpw $31438, 305419896
+ cmpw $0x7ace,0x12345678
+
+// CHECK: cmpl $2063514302, 3735928559(%ebx,%ecx,8)
+ cmpl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpl $2063514302, 69
+ cmpl $0x7afebabe,0x45
+
+// CHECK: cmpl $2063514302, 32493
+ cmpl $0x7afebabe,0x7eed
+
+// CHECK: cmpl $2063514302, 3133065982
+ cmpl $0x7afebabe,0xbabecafe
+
+// CHECK: cmpl $2063514302, 305419896
+ cmpl $0x7afebabe,0x12345678
+
+// CHECK: cmpl $324478056, 3735928559(%ebx,%ecx,8)
+ cmpl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpl $324478056, 69
+ cmpl $0x13572468,0x45
+
+// CHECK: cmpl $324478056, 32493
+ cmpl $0x13572468,0x7eed
+
+// CHECK: cmpl $324478056, 3133065982
+ cmpl $0x13572468,0xbabecafe
+
+// CHECK: cmpl $324478056, 305419896
+ cmpl $0x13572468,0x12345678
+
+// CHECK: testb $127, 3735928559(%ebx,%ecx,8)
+ testb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testb $127, 69
+ testb $0x7f,0x45
+
+// CHECK: testb $127, 32493
+ testb $0x7f,0x7eed
+
+// CHECK: testb $127, 3133065982
+ testb $0x7f,0xbabecafe
+
+// CHECK: testb $127, 305419896
+ testb $0x7f,0x12345678
+
+// CHECK: testw $31438, 3735928559(%ebx,%ecx,8)
+ testw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testw $31438, 69
+ testw $0x7ace,0x45
+
+// CHECK: testw $31438, 32493
+ testw $0x7ace,0x7eed
+
+// CHECK: testw $31438, 3133065982
+ testw $0x7ace,0xbabecafe
+
+// CHECK: testw $31438, 305419896
+ testw $0x7ace,0x12345678
+
+// CHECK: testl $2063514302, 3735928559(%ebx,%ecx,8)
+ testl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testl $2063514302, 69
+ testl $0x7afebabe,0x45
+
+// CHECK: testl $2063514302, 32493
+ testl $0x7afebabe,0x7eed
+
+// CHECK: testl $2063514302, 3133065982
+ testl $0x7afebabe,0xbabecafe
+
+// CHECK: testl $2063514302, 305419896
+ testl $0x7afebabe,0x12345678
+
+// CHECK: testl $324478056, 3735928559(%ebx,%ecx,8)
+ testl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: testl $324478056, 69
+ testl $0x13572468,0x45
+
+// CHECK: testl $324478056, 32493
+ testl $0x13572468,0x7eed
+
+// CHECK: testl $324478056, 3133065982
+ testl $0x13572468,0xbabecafe
+
+// CHECK: testl $324478056, 305419896
+ testl $0x13572468,0x12345678
+
+// CHECK: andb $254, 3735928559(%ebx,%ecx,8)
+ andb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andb $254, 69
+ andb $0xfe,0x45
+
+// CHECK: andb $254, 32493
+ andb $0xfe,0x7eed
+
+// CHECK: andb $254, 3133065982
+ andb $0xfe,0xbabecafe
+
+// CHECK: andb $254, 305419896
+ andb $0xfe,0x12345678
+
+// CHECK: andb $127, 3735928559(%ebx,%ecx,8)
+ andb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andb $127, 69
+ andb $0x7f,0x45
+
+// CHECK: andb $127, 32493
+ andb $0x7f,0x7eed
+
+// CHECK: andb $127, 3133065982
+ andb $0x7f,0xbabecafe
+
+// CHECK: andb $127, 305419896
+ andb $0x7f,0x12345678
+
+// CHECK: andw $31438, 3735928559(%ebx,%ecx,8)
+ andw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andw $31438, 69
+ andw $0x7ace,0x45
+
+// CHECK: andw $31438, 32493
+ andw $0x7ace,0x7eed
+
+// CHECK: andw $31438, 3133065982
+ andw $0x7ace,0xbabecafe
+
+// CHECK: andw $31438, 305419896
+ andw $0x7ace,0x12345678
+
+// CHECK: andl $2063514302, 3735928559(%ebx,%ecx,8)
+ andl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andl $2063514302, 69
+ andl $0x7afebabe,0x45
+
+// CHECK: andl $2063514302, 32493
+ andl $0x7afebabe,0x7eed
+
+// CHECK: andl $2063514302, 3133065982
+ andl $0x7afebabe,0xbabecafe
+
+// CHECK: andl $2063514302, 305419896
+ andl $0x7afebabe,0x12345678
+
+// CHECK: andl $324478056, 3735928559(%ebx,%ecx,8)
+ andl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: andl $324478056, 69
+ andl $0x13572468,0x45
+
+// CHECK: andl $324478056, 32493
+ andl $0x13572468,0x7eed
+
+// CHECK: andl $324478056, 3133065982
+ andl $0x13572468,0xbabecafe
+
+// CHECK: andl $324478056, 305419896
+ andl $0x13572468,0x12345678
+
+// CHECK: orb $254, 3735928559(%ebx,%ecx,8)
+ orb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orb $254, 69
+ orb $0xfe,0x45
+
+// CHECK: orb $254, 32493
+ orb $0xfe,0x7eed
+
+// CHECK: orb $254, 3133065982
+ orb $0xfe,0xbabecafe
+
+// CHECK: orb $254, 305419896
+ orb $0xfe,0x12345678
+
+// CHECK: orb $127, 3735928559(%ebx,%ecx,8)
+ orb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orb $127, 69
+ orb $0x7f,0x45
+
+// CHECK: orb $127, 32493
+ orb $0x7f,0x7eed
+
+// CHECK: orb $127, 3133065982
+ orb $0x7f,0xbabecafe
+
+// CHECK: orb $127, 305419896
+ orb $0x7f,0x12345678
+
+// CHECK: orw $31438, 3735928559(%ebx,%ecx,8)
+ orw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orw $31438, 69
+ orw $0x7ace,0x45
+
+// CHECK: orw $31438, 32493
+ orw $0x7ace,0x7eed
+
+// CHECK: orw $31438, 3133065982
+ orw $0x7ace,0xbabecafe
+
+// CHECK: orw $31438, 305419896
+ orw $0x7ace,0x12345678
+
+// CHECK: orl $2063514302, 3735928559(%ebx,%ecx,8)
+ orl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orl $2063514302, 69
+ orl $0x7afebabe,0x45
+
+// CHECK: orl $2063514302, 32493
+ orl $0x7afebabe,0x7eed
+
+// CHECK: orl $2063514302, 3133065982
+ orl $0x7afebabe,0xbabecafe
+
+// CHECK: orl $2063514302, 305419896
+ orl $0x7afebabe,0x12345678
+
+// CHECK: orl $324478056, 3735928559(%ebx,%ecx,8)
+ orl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: orl $324478056, 69
+ orl $0x13572468,0x45
+
+// CHECK: orl $324478056, 32493
+ orl $0x13572468,0x7eed
+
+// CHECK: orl $324478056, 3133065982
+ orl $0x13572468,0xbabecafe
+
+// CHECK: orl $324478056, 305419896
+ orl $0x13572468,0x12345678
+
+// CHECK: xorb $254, 3735928559(%ebx,%ecx,8)
+ xorb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorb $254, 69
+ xorb $0xfe,0x45
+
+// CHECK: xorb $254, 32493
+ xorb $0xfe,0x7eed
+
+// CHECK: xorb $254, 3133065982
+ xorb $0xfe,0xbabecafe
+
+// CHECK: xorb $254, 305419896
+ xorb $0xfe,0x12345678
+
+// CHECK: xorb $127, 3735928559(%ebx,%ecx,8)
+ xorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorb $127, 69
+ xorb $0x7f,0x45
+
+// CHECK: xorb $127, 32493
+ xorb $0x7f,0x7eed
+
+// CHECK: xorb $127, 3133065982
+ xorb $0x7f,0xbabecafe
+
+// CHECK: xorb $127, 305419896
+ xorb $0x7f,0x12345678
+
+// CHECK: xorw $31438, 3735928559(%ebx,%ecx,8)
+ xorw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorw $31438, 69
+ xorw $0x7ace,0x45
+
+// CHECK: xorw $31438, 32493
+ xorw $0x7ace,0x7eed
+
+// CHECK: xorw $31438, 3133065982
+ xorw $0x7ace,0xbabecafe
+
+// CHECK: xorw $31438, 305419896
+ xorw $0x7ace,0x12345678
+
+// CHECK: xorl $2063514302, 3735928559(%ebx,%ecx,8)
+ xorl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorl $2063514302, 69
+ xorl $0x7afebabe,0x45
+
+// CHECK: xorl $2063514302, 32493
+ xorl $0x7afebabe,0x7eed
+
+// CHECK: xorl $2063514302, 3133065982
+ xorl $0x7afebabe,0xbabecafe
+
+// CHECK: xorl $2063514302, 305419896
+ xorl $0x7afebabe,0x12345678
+
+// CHECK: xorl $324478056, 3735928559(%ebx,%ecx,8)
+ xorl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: xorl $324478056, 69
+ xorl $0x13572468,0x45
+
+// CHECK: xorl $324478056, 32493
+ xorl $0x13572468,0x7eed
+
+// CHECK: xorl $324478056, 3133065982
+ xorl $0x13572468,0xbabecafe
+
+// CHECK: xorl $324478056, 305419896
+ xorl $0x13572468,0x12345678
+
+// CHECK: adcb $254, 3735928559(%ebx,%ecx,8)
+ adcb $0xfe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcb $254, 69
+ adcb $0xfe,0x45
+
+// CHECK: adcb $254, 32493
+ adcb $0xfe,0x7eed
+
+// CHECK: adcb $254, 3133065982
+ adcb $0xfe,0xbabecafe
+
+// CHECK: adcb $254, 305419896
+ adcb $0xfe,0x12345678
+
+// CHECK: adcb $127, 3735928559(%ebx,%ecx,8)
+ adcb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcb $127, 69
+ adcb $0x7f,0x45
+
+// CHECK: adcb $127, 32493
+ adcb $0x7f,0x7eed
+
+// CHECK: adcb $127, 3133065982
+ adcb $0x7f,0xbabecafe
+
+// CHECK: adcb $127, 305419896
+ adcb $0x7f,0x12345678
+
+// CHECK: adcw $31438, 3735928559(%ebx,%ecx,8)
+ adcw $0x7ace,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcw $31438, 69
+ adcw $0x7ace,0x45
+
+// CHECK: adcw $31438, 32493
+ adcw $0x7ace,0x7eed
+
+// CHECK: adcw $31438, 3133065982
+ adcw $0x7ace,0xbabecafe
+
+// CHECK: adcw $31438, 305419896
+ adcw $0x7ace,0x12345678
+
+// CHECK: adcl $2063514302, 3735928559(%ebx,%ecx,8)
+ adcl $0x7afebabe,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcl $2063514302, 69
+ adcl $0x7afebabe,0x45
+
+// CHECK: adcl $2063514302, 32493
+ adcl $0x7afebabe,0x7eed
+
+// CHECK: adcl $2063514302, 3133065982
+ adcl $0x7afebabe,0xbabecafe
+
+// CHECK: adcl $2063514302, 305419896
+ adcl $0x7afebabe,0x12345678
+
+// CHECK: adcl $324478056, 3735928559(%ebx,%ecx,8)
+ adcl $0x13572468,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: adcl $324478056, 69
+ adcl $0x13572468,0x45
+
+// CHECK: adcl $324478056, 32493
+ adcl $0x13572468,0x7eed
+
+// CHECK: adcl $324478056, 3133065982
+ adcl $0x13572468,0xbabecafe
+
+// CHECK: adcl $324478056, 305419896
+ adcl $0x13572468,0x12345678
+
+// CHECK: negl 3735928559(%ebx,%ecx,8)
+ negl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: negw 32493
+ negw 0x7eed
+
+// CHECK: negl 3133065982
+ negl 0xbabecafe
+
+// CHECK: negl 305419896
+ negl 0x12345678
+
+// CHECK: notl 3735928559(%ebx,%ecx,8)
+ notl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: notw 32493
+ notw 0x7eed
+
+// CHECK: notl 3133065982
+ notl 0xbabecafe
+
+// CHECK: notl 305419896
+ notl 0x12345678
+
+// CHECK: cbtw
+ cbtw
+
+// CHECK: cwtl
+ cwtl
+
+// CHECK: cwtd
+ cwtd
+
+// CHECK: cltd
+ cltd
+
+// CHECK: mull 3735928559(%ebx,%ecx,8)
+ mull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: mulw 32493
+ mulw 0x7eed
+
+// CHECK: mull 3133065982
+ mull 0xbabecafe
+
+// CHECK: mull 305419896
+ mull 0x12345678
+
+// CHECK: imull 3735928559(%ebx,%ecx,8)
+ imull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: imulw 32493
+ imulw 0x7eed
+
+// CHECK: imull 3133065982
+ imull 0xbabecafe
+
+// CHECK: imull 305419896
+ imull 0x12345678
+
+// CHECK: divl 3735928559(%ebx,%ecx,8)
+ divl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: divw 32493
+ divw 0x7eed
+
+// CHECK: divl 3133065982
+ divl 0xbabecafe
+
+// CHECK: divl 305419896
+ divl 0x12345678
+
+// CHECK: idivl 3735928559(%ebx,%ecx,8)
+ idivl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: idivw 32493
+ idivw 0x7eed
+
+// CHECK: idivl 3133065982
+ idivl 0xbabecafe
+
+// CHECK: idivl 305419896
+ idivl 0x12345678
+
+// CHECK: roll $0, 3735928559(%ebx,%ecx,8)
+ roll $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: roll $0, 69
+ roll $0,0x45
+
+// CHECK: roll $0, 32493
+ roll $0,0x7eed
+
+// CHECK: roll $0, 3133065982
+ roll $0,0xbabecafe
+
+// CHECK: roll $0, 305419896
+ roll $0,0x12345678
+
+// CHECK: rolb $127, 3735928559(%ebx,%ecx,8)
+ rolb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rolb $127, 69
+ rolb $0x7f,0x45
+
+// CHECK: rolb $127, 32493
+ rolb $0x7f,0x7eed
+
+// CHECK: rolb $127, 3133065982
+ rolb $0x7f,0xbabecafe
+
+// CHECK: rolb $127, 305419896
+ rolb $0x7f,0x12345678
+
+// CHECK: roll 3735928559(%ebx,%ecx,8)
+ roll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rolw 32493
+ rolw 0x7eed
+
+// CHECK: roll 3133065982
+ roll 0xbabecafe
+
+// CHECK: roll 305419896
+ roll 0x12345678
+
+// CHECK: rorl $0, 3735928559(%ebx,%ecx,8)
+ rorl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rorl $0, 69
+ rorl $0,0x45
+
+// CHECK: rorl $0, 32493
+ rorl $0,0x7eed
+
+// CHECK: rorl $0, 3133065982
+ rorl $0,0xbabecafe
+
+// CHECK: rorl $0, 305419896
+ rorl $0,0x12345678
+
+// CHECK: rorb $127, 3735928559(%ebx,%ecx,8)
+ rorb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rorb $127, 69
+ rorb $0x7f,0x45
+
+// CHECK: rorb $127, 32493
+ rorb $0x7f,0x7eed
+
+// CHECK: rorb $127, 3133065982
+ rorb $0x7f,0xbabecafe
+
+// CHECK: rorb $127, 305419896
+ rorb $0x7f,0x12345678
+
+// CHECK: rorl 3735928559(%ebx,%ecx,8)
+ rorl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rorw 32493
+ rorw 0x7eed
+
+// CHECK: rorl 3133065982
+ rorl 0xbabecafe
+
+// CHECK: rorl 305419896
+ rorl 0x12345678
+
+// CHECK: rcll $0, 3735928559(%ebx,%ecx,8)
+ rcll $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rcll $0, 69
+ rcll $0,0x45
+
+// CHECK: rcll $0, 32493
+ rcll $0,0x7eed
+
+// CHECK: rcll $0, 3133065982
+ rcll $0,0xbabecafe
+
+// CHECK: rcll $0, 305419896
+ rcll $0,0x12345678
+
+// CHECK: rclb $127, 3735928559(%ebx,%ecx,8)
+ rclb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rclb $127, 69
+ rclb $0x7f,0x45
+
+// CHECK: rclb $127, 32493
+ rclb $0x7f,0x7eed
+
+// CHECK: rclb $127, 3133065982
+ rclb $0x7f,0xbabecafe
+
+// CHECK: rclb $127, 305419896
+ rclb $0x7f,0x12345678
+
+// CHECK: rcrl $0, 3735928559(%ebx,%ecx,8)
+ rcrl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rcrl $0, 69
+ rcrl $0,0x45
+
+// CHECK: rcrl $0, 32493
+ rcrl $0,0x7eed
+
+// CHECK: rcrl $0, 3133065982
+ rcrl $0,0xbabecafe
+
+// CHECK: rcrl $0, 305419896
+ rcrl $0,0x12345678
+
+// CHECK: rcrb $127, 3735928559(%ebx,%ecx,8)
+ rcrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: rcrb $127, 69
+ rcrb $0x7f,0x45
+
+// CHECK: rcrb $127, 32493
+ rcrb $0x7f,0x7eed
+
+// CHECK: rcrb $127, 3133065982
+ rcrb $0x7f,0xbabecafe
+
+// CHECK: rcrb $127, 305419896
+ rcrb $0x7f,0x12345678
+
+// CHECK: shll $0, 3735928559(%ebx,%ecx,8)
+ sall $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shll $0, 69
+ sall $0,0x45
+
+// CHECK: shll $0, 32493
+ sall $0,0x7eed
+
+// CHECK: shll $0, 3133065982
+ sall $0,0xbabecafe
+
+// CHECK: shll $0, 305419896
+ sall $0,0x12345678
+
+// CHECK: shlb $127, 3735928559(%ebx,%ecx,8)
+ salb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shlb $127, 69
+ salb $0x7f,0x45
+
+// CHECK: shlb $127, 32493
+ salb $0x7f,0x7eed
+
+// CHECK: shlb $127, 3133065982
+ salb $0x7f,0xbabecafe
+
+// CHECK: shlb $127, 305419896
+ salb $0x7f,0x12345678
+
+// CHECK: shll 3735928559(%ebx,%ecx,8)
+ sall 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shlw 32493
+ salw 0x7eed
+
+// CHECK: shll 3133065982
+ sall 0xbabecafe
+
+// CHECK: shll 305419896
+ sall 0x12345678
+
+// CHECK: shll $0, 3735928559(%ebx,%ecx,8)
+ shll $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shll $0, 69
+ shll $0,0x45
+
+// CHECK: shll $0, 32493
+ shll $0,0x7eed
+
+// CHECK: shll $0, 3133065982
+ shll $0,0xbabecafe
+
+// CHECK: shll $0, 305419896
+ shll $0,0x12345678
+
+// CHECK: shlb $127, 3735928559(%ebx,%ecx,8)
+ shlb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shlb $127, 69
+ shlb $0x7f,0x45
+
+// CHECK: shlb $127, 32493
+ shlb $0x7f,0x7eed
+
+// CHECK: shlb $127, 3133065982
+ shlb $0x7f,0xbabecafe
+
+// CHECK: shlb $127, 305419896
+ shlb $0x7f,0x12345678
+
+// CHECK: shll 3735928559(%ebx,%ecx,8)
+ shll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shlw 32493
+ shlw 0x7eed
+
+// CHECK: shll 3133065982
+ shll 0xbabecafe
+
+// CHECK: shll 305419896
+ shll 0x12345678
+
+// CHECK: shrl $0, 3735928559(%ebx,%ecx,8)
+ shrl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shrl $0, 69
+ shrl $0,0x45
+
+// CHECK: shrl $0, 32493
+ shrl $0,0x7eed
+
+// CHECK: shrl $0, 3133065982
+ shrl $0,0xbabecafe
+
+// CHECK: shrl $0, 305419896
+ shrl $0,0x12345678
+
+// CHECK: shrb $127, 3735928559(%ebx,%ecx,8)
+ shrb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shrb $127, 69
+ shrb $0x7f,0x45
+
+// CHECK: shrb $127, 32493
+ shrb $0x7f,0x7eed
+
+// CHECK: shrb $127, 3133065982
+ shrb $0x7f,0xbabecafe
+
+// CHECK: shrb $127, 305419896
+ shrb $0x7f,0x12345678
+
+// CHECK: shrl 3735928559(%ebx,%ecx,8)
+ shrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: shrw 32493
+ shrw 0x7eed
+
+// CHECK: shrl 3133065982
+ shrl 0xbabecafe
+
+// CHECK: shrl 305419896
+ shrl 0x12345678
+
+// CHECK: sarl $0, 3735928559(%ebx,%ecx,8)
+ sarl $0,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sarl $0, 69
+ sarl $0,0x45
+
+// CHECK: sarl $0, 32493
+ sarl $0,0x7eed
+
+// CHECK: sarl $0, 3133065982
+ sarl $0,0xbabecafe
+
+// CHECK: sarl $0, 305419896
+ sarl $0,0x12345678
+
+// CHECK: sarb $127, 3735928559(%ebx,%ecx,8)
+ sarb $0x7f,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sarb $127, 69
+ sarb $0x7f,0x45
+
+// CHECK: sarb $127, 32493
+ sarb $0x7f,0x7eed
+
+// CHECK: sarb $127, 3133065982
+ sarb $0x7f,0xbabecafe
+
+// CHECK: sarb $127, 305419896
+ sarb $0x7f,0x12345678
+
+// CHECK: sarl 3735928559(%ebx,%ecx,8)
+ sarl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sarw 32493
+ sarw 0x7eed
+
+// CHECK: sarl 3133065982
+ sarl 0xbabecafe
+
+// CHECK: sarl 305419896
+ sarl 0x12345678
+
+// CHECK: calll 3133065982
+ calll 0xbabecafe
+
+// CHECK: calll *3735928559(%ebx,%ecx,8)
+ calll *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: calll 3133065982
+ calll 0xbabecafe
+
+// CHECK: calll 305419896
+ calll 0x12345678
+
+// CHECK: calll *3135175374
+ call *0xbadeface
+
+// CHECK: calll *3735928559(%ebx,%ecx,8)
+ call *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: calll 32493
+ call 0x7eed
+
+// CHECK: calll 3133065982
+ call 0xbabecafe
+
+// CHECK: calll 305419896
+ call 0x12345678
+
+// CHECK: calll *3135175374
+ call *0xbadeface
+
+// CHECK: lcallw *32493
+ lcallw *0x7eed
+
+// CHECK: jmp 32493
+ jmp 0x7eed
+
+// CHECK: jmp 3133065982
+ jmp 0xbabecafe
+
+// CHECK: jmp 305419896
+ jmp 0x12345678
+
+// CHECK: jmp -77129852792157442
+ jmp 0xfeedfacebabecafe
+
+// CHECK: jmpl *3735928559(%ebx,%ecx,8)
+ jmp *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: jmp 32493
+ jmp 0x7eed
+
+// CHECK: jmp 3133065982
+ jmp 0xbabecafe
+
+// CHECK: jmp 305419896
+ jmp 0x12345678
+
+// CHECK: jmpl *3135175374
+ jmp *0xbadeface
+
+// CHECK: jmpl *3735928559(%ebx,%ecx,8)
+ jmp *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: jmp 32493
+ jmp 0x7eed
+
+// CHECK: jmp 3133065982
+ jmp 0xbabecafe
+
+// CHECK: jmp 305419896
+ jmp 0x12345678
+
+// CHECK: jmpl *3135175374
+ jmp *0xbadeface
+
+// CHECK: ljmpl *3735928559(%ebx,%ecx,8)
+ ljmpl *0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ljmpw *32493
+ ljmpw *0x7eed
+
+// CHECK: ljmpl *3133065982
+ ljmpl *0xbabecafe
+
+// CHECK: ljmpl *305419896
+ ljmpl *0x12345678
+
+// CHECK: ret
+ ret
+
+// CHECK: lret
+ lret
+
+// CHECK: enter $31438, $127
+ enter $0x7ace,$0x7f
+
+// CHECK: leave
+ leave
+
+// CHECK: jo 32493
+ jo 0x7eed
+
+// CHECK: jo 3133065982
+ jo 0xbabecafe
+
+// CHECK: jo 305419896
+ jo 0x12345678
+
+// CHECK: jo -77129852792157442
+ jo 0xfeedfacebabecafe
+
+// CHECK: jno 32493
+ jno 0x7eed
+
+// CHECK: jno 3133065982
+ jno 0xbabecafe
+
+// CHECK: jno 305419896
+ jno 0x12345678
+
+// CHECK: jno -77129852792157442
+ jno 0xfeedfacebabecafe
+
+// CHECK: jb 32493
+ jb 0x7eed
+
+// CHECK: jb 3133065982
+ jb 0xbabecafe
+
+// CHECK: jb 305419896
+ jb 0x12345678
+
+// CHECK: jb -77129852792157442
+ jb 0xfeedfacebabecafe
+
+// CHECK: jae 32493
+ jae 0x7eed
+
+// CHECK: jae 3133065982
+ jae 0xbabecafe
+
+// CHECK: jae 305419896
+ jae 0x12345678
+
+// CHECK: jae -77129852792157442
+ jae 0xfeedfacebabecafe
+
+// CHECK: je 32493
+ je 0x7eed
+
+// CHECK: je 3133065982
+ je 0xbabecafe
+
+// CHECK: je 305419896
+ je 0x12345678
+
+// CHECK: je -77129852792157442
+ je 0xfeedfacebabecafe
+
+// CHECK: jne 32493
+ jne 0x7eed
+
+// CHECK: jne 3133065982
+ jne 0xbabecafe
+
+// CHECK: jne 305419896
+ jne 0x12345678
+
+// CHECK: jne -77129852792157442
+ jne 0xfeedfacebabecafe
+
+// CHECK: jbe 32493
+ jbe 0x7eed
+
+// CHECK: jbe 3133065982
+ jbe 0xbabecafe
+
+// CHECK: jbe 305419896
+ jbe 0x12345678
+
+// CHECK: jbe -77129852792157442
+ jbe 0xfeedfacebabecafe
+
+// CHECK: ja 32493
+ ja 0x7eed
+
+// CHECK: ja 3133065982
+ ja 0xbabecafe
+
+// CHECK: ja 305419896
+ ja 0x12345678
+
+// CHECK: ja -77129852792157442
+ ja 0xfeedfacebabecafe
+
+// CHECK: js 32493
+ js 0x7eed
+
+// CHECK: js 3133065982
+ js 0xbabecafe
+
+// CHECK: js 305419896
+ js 0x12345678
+
+// CHECK: js -77129852792157442
+ js 0xfeedfacebabecafe
+
+// CHECK: jns 32493
+ jns 0x7eed
+
+// CHECK: jns 3133065982
+ jns 0xbabecafe
+
+// CHECK: jns 305419896
+ jns 0x12345678
+
+// CHECK: jns -77129852792157442
+ jns 0xfeedfacebabecafe
+
+// CHECK: jp 32493
+ jp 0x7eed
+
+// CHECK: jp 3133065982
+ jp 0xbabecafe
+
+// CHECK: jp 305419896
+ jp 0x12345678
+
+// CHECK: jp -77129852792157442
+ jp 0xfeedfacebabecafe
+
+// CHECK: jnp 32493
+ jnp 0x7eed
+
+// CHECK: jnp 3133065982
+ jnp 0xbabecafe
+
+// CHECK: jnp 305419896
+ jnp 0x12345678
+
+// CHECK: jnp -77129852792157442
+ jnp 0xfeedfacebabecafe
+
+// CHECK: jl 32493
+ jl 0x7eed
+
+// CHECK: jl 3133065982
+ jl 0xbabecafe
+
+// CHECK: jl 305419896
+ jl 0x12345678
+
+// CHECK: jl -77129852792157442
+ jl 0xfeedfacebabecafe
+
+// CHECK: jge 32493
+ jge 0x7eed
+
+// CHECK: jge 3133065982
+ jge 0xbabecafe
+
+// CHECK: jge 305419896
+ jge 0x12345678
+
+// CHECK: jge -77129852792157442
+ jge 0xfeedfacebabecafe
+
+// CHECK: jle 32493
+ jle 0x7eed
+
+// CHECK: jle 3133065982
+ jle 0xbabecafe
+
+// CHECK: jle 305419896
+ jle 0x12345678
+
+// CHECK: jle -77129852792157442
+ jle 0xfeedfacebabecafe
+
+// CHECK: jg 32493
+ jg 0x7eed
+
+// CHECK: jg 3133065982
+ jg 0xbabecafe
+
+// CHECK: jg 305419896
+ jg 0x12345678
+
+// CHECK: jg -77129852792157442
+ jg 0xfeedfacebabecafe
+
+// CHECK: seto %bl
+ seto %bl
+
+// CHECK: seto 3735928559(%ebx,%ecx,8)
+ seto 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: seto 32493
+ seto 0x7eed
+
+// CHECK: seto 3133065982
+ seto 0xbabecafe
+
+// CHECK: seto 305419896
+ seto 0x12345678
+
+// CHECK: setno %bl
+ setno %bl
+
+// CHECK: setno 3735928559(%ebx,%ecx,8)
+ setno 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setno 32493
+ setno 0x7eed
+
+// CHECK: setno 3133065982
+ setno 0xbabecafe
+
+// CHECK: setno 305419896
+ setno 0x12345678
+
+// CHECK: setb %bl
+ setb %bl
+
+// CHECK: setb 3735928559(%ebx,%ecx,8)
+ setb 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setb 32493
+ setb 0x7eed
+
+// CHECK: setb 3133065982
+ setb 0xbabecafe
+
+// CHECK: setb 305419896
+ setb 0x12345678
+
+// CHECK: setae %bl
+ setae %bl
+
+// CHECK: setae 3735928559(%ebx,%ecx,8)
+ setae 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setae 32493
+ setae 0x7eed
+
+// CHECK: setae 3133065982
+ setae 0xbabecafe
+
+// CHECK: setae 305419896
+ setae 0x12345678
+
+// CHECK: sete %bl
+ sete %bl
+
+// CHECK: sete 3735928559(%ebx,%ecx,8)
+ sete 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sete 32493
+ sete 0x7eed
+
+// CHECK: sete 3133065982
+ sete 0xbabecafe
+
+// CHECK: sete 305419896
+ sete 0x12345678
+
+// CHECK: setne %bl
+ setne %bl
+
+// CHECK: setne 3735928559(%ebx,%ecx,8)
+ setne 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setne 32493
+ setne 0x7eed
+
+// CHECK: setne 3133065982
+ setne 0xbabecafe
+
+// CHECK: setne 305419896
+ setne 0x12345678
+
+// CHECK: setbe %bl
+ setbe %bl
+
+// CHECK: setbe 3735928559(%ebx,%ecx,8)
+ setbe 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setbe 32493
+ setbe 0x7eed
+
+// CHECK: setbe 3133065982
+ setbe 0xbabecafe
+
+// CHECK: setbe 305419896
+ setbe 0x12345678
+
+// CHECK: seta %bl
+ seta %bl
+
+// CHECK: seta 3735928559(%ebx,%ecx,8)
+ seta 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: seta 32493
+ seta 0x7eed
+
+// CHECK: seta 3133065982
+ seta 0xbabecafe
+
+// CHECK: seta 305419896
+ seta 0x12345678
+
+// CHECK: sets %bl
+ sets %bl
+
+// CHECK: sets 3735928559(%ebx,%ecx,8)
+ sets 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: sets 32493
+ sets 0x7eed
+
+// CHECK: sets 3133065982
+ sets 0xbabecafe
+
+// CHECK: sets 305419896
+ sets 0x12345678
+
+// CHECK: setns %bl
+ setns %bl
+
+// CHECK: setns 3735928559(%ebx,%ecx,8)
+ setns 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setns 32493
+ setns 0x7eed
+
+// CHECK: setns 3133065982
+ setns 0xbabecafe
+
+// CHECK: setns 305419896
+ setns 0x12345678
+
+// CHECK: setp %bl
+ setp %bl
+
+// CHECK: setp 3735928559(%ebx,%ecx,8)
+ setp 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setp 32493
+ setp 0x7eed
+
+// CHECK: setp 3133065982
+ setp 0xbabecafe
+
+// CHECK: setp 305419896
+ setp 0x12345678
+
+// CHECK: setnp %bl
+ setnp %bl
+
+// CHECK: setnp 3735928559(%ebx,%ecx,8)
+ setnp 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setnp 32493
+ setnp 0x7eed
+
+// CHECK: setnp 3133065982
+ setnp 0xbabecafe
+
+// CHECK: setnp 305419896
+ setnp 0x12345678
+
+// CHECK: setl %bl
+ setl %bl
+
+// CHECK: setl 3735928559(%ebx,%ecx,8)
+ setl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setl 32493
+ setl 0x7eed
+
+// CHECK: setl 3133065982
+ setl 0xbabecafe
+
+// CHECK: setl 305419896
+ setl 0x12345678
+
+// CHECK: setge %bl
+ setge %bl
+
+// CHECK: setge 3735928559(%ebx,%ecx,8)
+ setge 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setge 32493
+ setge 0x7eed
+
+// CHECK: setge 3133065982
+ setge 0xbabecafe
+
+// CHECK: setge 305419896
+ setge 0x12345678
+
+// CHECK: setle %bl
+ setle %bl
+
+// CHECK: setle 3735928559(%ebx,%ecx,8)
+ setle 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setle 32493
+ setle 0x7eed
+
+// CHECK: setle 3133065982
+ setle 0xbabecafe
+
+// CHECK: setle 305419896
+ setle 0x12345678
+
+// CHECK: setg %bl
+ setg %bl
+
+// CHECK: setg 3735928559(%ebx,%ecx,8)
+ setg 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: setg 32493
+ setg 0x7eed
+
+// CHECK: setg 3133065982
+ setg 0xbabecafe
+
+// CHECK: setg 305419896
+ setg 0x12345678
+
+// CHECK: int $127
+ int $0x7f
+
+// CHECK: rsm
+ rsm
+
+// CHECK: hlt
+ hlt
+
+// CHECK: nopl 3735928559(%ebx,%ecx,8)
+ nopl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: nopw 32493
+ nopw 0x7eed
+
+// CHECK: nopl 3133065982
+ nopl 0xbabecafe
+
+// CHECK: nopl 305419896
+ nopl 0x12345678
+
+// CHECK: nop
+ nop
+
+// CHECK: lldtw 32493
+ lldtw 0x7eed
+
+// CHECK: lmsww 32493
+ lmsww 0x7eed
+
+// CHECK: ltrw 32493
+ ltrw 0x7eed
+
+// CHECK: sldtw 32493
+ sldtw 0x7eed
+
+// CHECK: smsww 32493
+ smsww 0x7eed
+
+// CHECK: strw 32493
+ strw 0x7eed
+
+// CHECK: verr %bx
+ verr %bx
+
+// CHECK: verr 3735928559(%ebx,%ecx,8)
+ verr 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: verr 3133065982
+ verr 0xbabecafe
+
+// CHECK: verr 305419896
+ verr 0x12345678
+
+// CHECK: verw %bx
+ verw %bx
+
+// CHECK: verw 3735928559(%ebx,%ecx,8)
+ verw 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: verw 3133065982
+ verw 0xbabecafe
+
+// CHECK: verw 305419896
+ verw 0x12345678
+
+// CHECK: fld %st(2)
+ fld %st(2)
+
+// CHECK: fldl 3735928559(%ebx,%ecx,8)
+ fldl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fldl 3133065982
+ fldl 0xbabecafe
+
+// CHECK: fldl 305419896
+ fldl 0x12345678
+
+// CHECK: fld %st(2)
+ fld %st(2)
+
+// CHECK: fildl 3735928559(%ebx,%ecx,8)
+ fildl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fildl 3133065982
+ fildl 0xbabecafe
+
+// CHECK: fildl 305419896
+ fildl 0x12345678
+
+// CHECK: fildll 3735928559(%ebx,%ecx,8)
+ fildll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fildll 32493
+ fildll 0x7eed
+
+// CHECK: fildll 3133065982
+ fildll 0xbabecafe
+
+// CHECK: fildll 305419896
+ fildll 0x12345678
+
+// CHECK: fldt 3735928559(%ebx,%ecx,8)
+ fldt 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fldt 32493
+ fldt 0x7eed
+
+// CHECK: fldt 3133065982
+ fldt 0xbabecafe
+
+// CHECK: fldt 305419896
+ fldt 0x12345678
+
+// CHECK: fbld 3735928559(%ebx,%ecx,8)
+ fbld 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fbld 32493
+ fbld 0x7eed
+
+// CHECK: fbld 3133065982
+ fbld 0xbabecafe
+
+// CHECK: fbld 305419896
+ fbld 0x12345678
+
+// CHECK: fst %st(2)
+ fst %st(2)
+
+// CHECK: fstl 3735928559(%ebx,%ecx,8)
+ fstl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fstl 3133065982
+ fstl 0xbabecafe
+
+// CHECK: fstl 305419896
+ fstl 0x12345678
+
+// CHECK: fst %st(2)
+ fst %st(2)
+
+// CHECK: fistl 3735928559(%ebx,%ecx,8)
+ fistl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fistl 3133065982
+ fistl 0xbabecafe
+
+// CHECK: fistl 305419896
+ fistl 0x12345678
+
+// CHECK: fstp %st(2)
+ fstp %st(2)
+
+// CHECK: fstpl 3735928559(%ebx,%ecx,8)
+ fstpl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fstpl 3133065982
+ fstpl 0xbabecafe
+
+// CHECK: fstpl 305419896
+ fstpl 0x12345678
+
+// CHECK: fstp %st(2)
+ fstp %st(2)
+
+// CHECK: fistpl 3735928559(%ebx,%ecx,8)
+ fistpl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fistpl 3133065982
+ fistpl 0xbabecafe
+
+// CHECK: fistpl 305419896
+ fistpl 0x12345678
+
+// CHECK: fistpll 3735928559(%ebx,%ecx,8)
+ fistpll 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fistpll 32493
+ fistpll 0x7eed
+
+// CHECK: fistpll 3133065982
+ fistpll 0xbabecafe
+
+// CHECK: fistpll 305419896
+ fistpll 0x12345678
+
+// CHECK: fstpt 3735928559(%ebx,%ecx,8)
+ fstpt 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fstpt 32493
+ fstpt 0x7eed
+
+// CHECK: fstpt 3133065982
+ fstpt 0xbabecafe
+
+// CHECK: fstpt 305419896
+ fstpt 0x12345678
+
+// CHECK: fbstp 3735928559(%ebx,%ecx,8)
+ fbstp 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fbstp 32493
+ fbstp 0x7eed
+
+// CHECK: fbstp 3133065982
+ fbstp 0xbabecafe
+
+// CHECK: fbstp 305419896
+ fbstp 0x12345678
+
+// CHECK: fxch %st(2)
+ fxch %st(2)
+
+// CHECK: fcom %st(2)
+ fcom %st(2)
+
+// CHECK: fcoml 3735928559(%ebx,%ecx,8)
+ fcoml 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fcoml 3133065982
+ fcoml 0xbabecafe
+
+// CHECK: fcoml 305419896
+ fcoml 0x12345678
+
+// CHECK: fcom %st(2)
+ fcom %st(2)
+
+// CHECK: ficoml 3735928559(%ebx,%ecx,8)
+ ficoml 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ficoml 3133065982
+ ficoml 0xbabecafe
+
+// CHECK: ficoml 305419896
+ ficoml 0x12345678
+
+// CHECK: fcomp %st(2)
+ fcomp %st(2)
+
+// CHECK: fcompl 3735928559(%ebx,%ecx,8)
+ fcompl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fcompl 3133065982
+ fcompl 0xbabecafe
+
+// CHECK: fcompl 305419896
+ fcompl 0x12345678
+
+// CHECK: fcomp %st(2)
+ fcomp %st(2)
+
+// CHECK: ficompl 3735928559(%ebx,%ecx,8)
+ ficompl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ficompl 3133065982
+ ficompl 0xbabecafe
+
+// CHECK: ficompl 305419896
+ ficompl 0x12345678
+
+// CHECK: fcompp
+ fcompp
+
+// CHECK: fucom %st(2)
+ fucom %st(2)
+
+// CHECK: fucomp %st(2)
+ fucomp %st(2)
+
+// CHECK: fucompp
+ fucompp
+
+// CHECK: ftst
+ ftst
+
+// CHECK: fxam
+ fxam
+
+// CHECK: fld1
+ fld1
+
+// CHECK: fldl2t
+ fldl2t
+
+// CHECK: fldl2e
+ fldl2e
+
+// CHECK: fldpi
+ fldpi
+
+// CHECK: fldlg2
+ fldlg2
+
+// CHECK: fldln2
+ fldln2
+
+// CHECK: fldz
+ fldz
+
+// CHECK: fadd %st(2)
+ fadd %st(2)
+
+// CHECK: faddl 3735928559(%ebx,%ecx,8)
+ faddl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: faddl 3133065982
+ faddl 0xbabecafe
+
+// CHECK: faddl 305419896
+ faddl 0x12345678
+
+// CHECK: fiaddl 3735928559(%ebx,%ecx,8)
+ fiaddl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fiaddl 3133065982
+ fiaddl 0xbabecafe
+
+// CHECK: fiaddl 305419896
+ fiaddl 0x12345678
+
+// CHECK: faddp %st(2)
+ faddp %st(2)
+
+// CHECK: fsub %st(2)
+ fsub %st(2)
+
+// CHECK: fsubl 3735928559(%ebx,%ecx,8)
+ fsubl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fsubl 3133065982
+ fsubl 0xbabecafe
+
+// CHECK: fsubl 305419896
+ fsubl 0x12345678
+
+// CHECK: fisubl 3735928559(%ebx,%ecx,8)
+ fisubl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fisubl 3133065982
+ fisubl 0xbabecafe
+
+// CHECK: fisubl 305419896
+ fisubl 0x12345678
+
+// CHECK: fsubp %st(2)
+ fsubp %st(2)
+
+// CHECK: fsubr %st(2)
+ fsubr %st(2)
+
+// CHECK: fsubrl 3735928559(%ebx,%ecx,8)
+ fsubrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fsubrl 3133065982
+ fsubrl 0xbabecafe
+
+// CHECK: fsubrl 305419896
+ fsubrl 0x12345678
+
+// CHECK: fisubrl 3735928559(%ebx,%ecx,8)
+ fisubrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fisubrl 3133065982
+ fisubrl 0xbabecafe
+
+// CHECK: fisubrl 305419896
+ fisubrl 0x12345678
+
+// CHECK: fsubrp %st(2)
+ fsubrp %st(2)
+
+// CHECK: fmul %st(2)
+ fmul %st(2)
+
+// CHECK: fmull 3735928559(%ebx,%ecx,8)
+ fmull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fmull 3133065982
+ fmull 0xbabecafe
+
+// CHECK: fmull 305419896
+ fmull 0x12345678
+
+// CHECK: fimull 3735928559(%ebx,%ecx,8)
+ fimull 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fimull 3133065982
+ fimull 0xbabecafe
+
+// CHECK: fimull 305419896
+ fimull 0x12345678
+
+// CHECK: fmulp %st(2)
+ fmulp %st(2)
+
+// CHECK: fdiv %st(2)
+ fdiv %st(2)
+
+// CHECK: fdivl 3735928559(%ebx,%ecx,8)
+ fdivl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fdivl 3133065982
+ fdivl 0xbabecafe
+
+// CHECK: fdivl 305419896
+ fdivl 0x12345678
+
+// CHECK: fidivl 3735928559(%ebx,%ecx,8)
+ fidivl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fidivl 3133065982
+ fidivl 0xbabecafe
+
+// CHECK: fidivl 305419896
+ fidivl 0x12345678
+
+// CHECK: fdivp %st(2)
+ fdivp %st(2)
+
+// CHECK: fdivr %st(2)
+ fdivr %st(2)
+
+// CHECK: fdivrl 3735928559(%ebx,%ecx,8)
+ fdivrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fdivrl 3133065982
+ fdivrl 0xbabecafe
+
+// CHECK: fdivrl 305419896
+ fdivrl 0x12345678
+
+// CHECK: fidivrl 3735928559(%ebx,%ecx,8)
+ fidivrl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fidivrl 3133065982
+ fidivrl 0xbabecafe
+
+// CHECK: fidivrl 305419896
+ fidivrl 0x12345678
+
+// CHECK: fdivrp %st(2)
+ fdivrp %st(2)
+
+// CHECK: f2xm1
+ f2xm1
+
+// CHECK: fyl2x
+ fyl2x
+
+// CHECK: fptan
+ fptan
+
+// CHECK: fpatan
+ fpatan
+
+// CHECK: fxtract
+ fxtract
+
+// CHECK: fprem1
+ fprem1
+
+// CHECK: fdecstp
+ fdecstp
+
+// CHECK: fincstp
+ fincstp
+
+// CHECK: fprem
+ fprem
+
+// CHECK: fyl2xp1
+ fyl2xp1
+
+// CHECK: fsqrt
+ fsqrt
+
+// CHECK: fsincos
+ fsincos
+
+// CHECK: frndint
+ frndint
+
+// CHECK: fscale
+ fscale
+
+// CHECK: fsin
+ fsin
+
+// CHECK: fcos
+ fcos
+
+// CHECK: fchs
+ fchs
+
+// CHECK: fabs
+ fabs
+
+// CHECK: fninit
+ fninit
+
+// CHECK: fldcw 3735928559(%ebx,%ecx,8)
+ fldcw 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fldcw 3133065982
+ fldcw 0xbabecafe
+
+// CHECK: fldcw 305419896
+ fldcw 0x12345678
+
+// CHECK: fnstcw 3735928559(%ebx,%ecx,8)
+ fnstcw 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fnstcw 3133065982
+ fnstcw 0xbabecafe
+
+// CHECK: fnstcw 305419896
+ fnstcw 0x12345678
+
+// CHECK: fnstsw 3735928559(%ebx,%ecx,8)
+ fnstsw 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fnstsw 3133065982
+ fnstsw 0xbabecafe
+
+// CHECK: fnstsw 305419896
+ fnstsw 0x12345678
+
+// CHECK: fnclex
+ fnclex
+
+// CHECK: fnstenv 32493
+ fnstenv 0x7eed
+
+// CHECK: fldenv 32493
+ fldenv 0x7eed
+
+// CHECK: fnsave 32493
+ fnsave 0x7eed
+
+// CHECK: frstor 32493
+ frstor 0x7eed
+
+// CHECK: ffree %st(2)
+ ffree %st(2)
+
+// CHECK: fnop
+ fnop
+
+// CHECK: invd
+ invd
+
+// CHECK: wbinvd
+ wbinvd
+
+// CHECK: cpuid
+ cpuid
+
+// CHECK: wrmsr
+ wrmsr
+
+// CHECK: rdtsc
+ rdtsc
+
+// CHECK: rdmsr
+ rdmsr
+
+// CHECK: cmpxchg8b 3735928559(%ebx,%ecx,8)
+ cmpxchg8b 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: cmpxchg8b 32493
+ cmpxchg8b 0x7eed
+
+// CHECK: cmpxchg8b 3133065982
+ cmpxchg8b 0xbabecafe
+
+// CHECK: cmpxchg8b 305419896
+ cmpxchg8b 0x12345678
+
+// CHECK: sysenter
+ sysenter
+
+// CHECK: sysexit
+ sysexit
+
+// CHECK: fxsave 3735928559(%ebx,%ecx,8)
+ fxsave 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fxsave 32493
+ fxsave 0x7eed
+
+// CHECK: fxsave 3133065982
+ fxsave 0xbabecafe
+
+// CHECK: fxsave 305419896
+ fxsave 0x12345678
+
+// CHECK: fxrstor 3735928559(%ebx,%ecx,8)
+ fxrstor 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fxrstor 32493
+ fxrstor 0x7eed
+
+// CHECK: fxrstor 3133065982
+ fxrstor 0xbabecafe
+
+// CHECK: fxrstor 305419896
+ fxrstor 0x12345678
+
+// CHECK: rdpmc
+ rdpmc
+
+// CHECK: ud2
+ ud2
+
+// CHECK: fcmovb %st(2), %st(0)
+ fcmovb %st(2),%st
+
+// CHECK: fcmove %st(2), %st(0)
+ fcmove %st(2),%st
+
+// CHECK: fcmovbe %st(2), %st(0)
+ fcmovbe %st(2),%st
+
+// CHECK: fcmovu %st(2), %st(0)
+ fcmovu %st(2),%st
+
+// CHECK: fcmovnb %st(2), %st(0)
+ fcmovnb %st(2),%st
+
+// CHECK: fcmovne %st(2), %st(0)
+ fcmovne %st(2),%st
+
+// CHECK: fcmovnbe %st(2), %st(0)
+ fcmovnbe %st(2),%st
+
+// CHECK: fcmovnu %st(2), %st(0)
+ fcmovnu %st(2),%st
+
+// CHECK: fcomi %st(2)
+ fcomi %st(2),%st
+
+// CHECK: fucomi %st(2)
+ fucomi %st(2),%st
+
+// CHECK: fcompi %st(2)
+ fcomip %st(2),%st
+
+// CHECK: fucompi %st(2)
+ fucomip %st(2),%st
+
+// CHECK: movnti %ecx, 3735928559(%ebx,%ecx,8)
+ movnti %ecx,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movnti %ecx, 69
+ movnti %ecx,0x45
+
+// CHECK: movnti %ecx, 32493
+ movnti %ecx,0x7eed
+
+// CHECK: movnti %ecx, 3133065982
+ movnti %ecx,0xbabecafe
+
+// CHECK: movnti %ecx, 305419896
+ movnti %ecx,0x12345678
+
+// CHECK: clflush 3735928559(%ebx,%ecx,8)
+ clflush 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: clflush 32493
+ clflush 0x7eed
+
+// CHECK: clflush 3133065982
+ clflush 0xbabecafe
+
+// CHECK: clflush 305419896
+ clflush 0x12345678
+
+// CHECK: pause
+ pause
+
+// CHECK: sfence
+ sfence
+
+// CHECK: lfence
+ lfence
+
+// CHECK: mfence
+ mfence
+
+// CHECK: emms
+ emms
+
+// CHECK: movd %ecx, %mm3
+ movd %ecx,%mm3
+
+// CHECK: movd 3735928559(%ebx,%ecx,8), %mm3
+ movd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: movd 69, %mm3
+ movd 0x45,%mm3
+
+// CHECK: movd 32493, %mm3
+ movd 0x7eed,%mm3
+
+// CHECK: movd 3133065982, %mm3
+ movd 0xbabecafe,%mm3
+
+// CHECK: movd 305419896, %mm3
+ movd 0x12345678,%mm3
+
+// CHECK: movd %mm3, %ecx
+ movd %mm3,%ecx
+
+// CHECK: movd %mm3, 3735928559(%ebx,%ecx,8)
+ movd %mm3,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movd %mm3, 69
+ movd %mm3,0x45
+
+// CHECK: movd %mm3, 32493
+ movd %mm3,0x7eed
+
+// CHECK: movd %mm3, 3133065982
+ movd %mm3,0xbabecafe
+
+// CHECK: movd %mm3, 305419896
+ movd %mm3,0x12345678
+
+// CHECK: movd %ecx, %xmm5
+ movd %ecx,%xmm5
+
+// CHECK: movd 3735928559(%ebx,%ecx,8), %xmm5
+ movd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movd 69, %xmm5
+ movd 0x45,%xmm5
+
+// CHECK: movd 32493, %xmm5
+ movd 0x7eed,%xmm5
+
+// CHECK: movd 3133065982, %xmm5
+ movd 0xbabecafe,%xmm5
+
+// CHECK: movd 305419896, %xmm5
+ movd 0x12345678,%xmm5
+
+// CHECK: movd %xmm5, %ecx
+ movd %xmm5,%ecx
+
+// CHECK: movd %xmm5, 3735928559(%ebx,%ecx,8)
+ movd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movd %xmm5, 69
+ movd %xmm5,0x45
+
+// CHECK: movd %xmm5, 32493
+ movd %xmm5,0x7eed
+
+// CHECK: movd %xmm5, 3133065982
+ movd %xmm5,0xbabecafe
+
+// CHECK: movd %xmm5, 305419896
+ movd %xmm5,0x12345678
+
+// CHECK: movq 3735928559(%ebx,%ecx,8), %mm3
+ movq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: movq 69, %mm3
+ movq 0x45,%mm3
+
+// CHECK: movq 32493, %mm3
+ movq 0x7eed,%mm3
+
+// CHECK: movq 3133065982, %mm3
+ movq 0xbabecafe,%mm3
+
+// CHECK: movq 305419896, %mm3
+ movq 0x12345678,%mm3
+
+// CHECK: movq %mm3, %mm3
+ movq %mm3,%mm3
+
+// CHECK: movq %mm3, 3735928559(%ebx,%ecx,8)
+ movq %mm3,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movq %mm3, 69
+ movq %mm3,0x45
+
+// CHECK: movq %mm3, 32493
+ movq %mm3,0x7eed
+
+// CHECK: movq %mm3, 3133065982
+ movq %mm3,0xbabecafe
+
+// CHECK: movq %mm3, 305419896
+ movq %mm3,0x12345678
+
+// CHECK: movq %mm3, %mm3
+ movq %mm3,%mm3
+
+// CHECK: movq 3735928559(%ebx,%ecx,8), %xmm5
+ movq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movq 69, %xmm5
+ movq 0x45,%xmm5
+
+// CHECK: movq 32493, %xmm5
+ movq 0x7eed,%xmm5
+
+// CHECK: movq 3133065982, %xmm5
+ movq 0xbabecafe,%xmm5
+
+// CHECK: movq 305419896, %xmm5
+ movq 0x12345678,%xmm5
+
+// CHECK: movq %xmm5, %xmm5
+ movq %xmm5,%xmm5
+
+// CHECK: movq %xmm5, 3735928559(%ebx,%ecx,8)
+ movq %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movq %xmm5, 69
+ movq %xmm5,0x45
+
+// CHECK: movq %xmm5, 32493
+ movq %xmm5,0x7eed
+
+// CHECK: movq %xmm5, 3133065982
+ movq %xmm5,0xbabecafe
+
+// CHECK: movq %xmm5, 305419896
+ movq %xmm5,0x12345678
+
+// CHECK: movq %xmm5, %xmm5
+ movq %xmm5,%xmm5
+
+// CHECK: packssdw 3735928559(%ebx,%ecx,8), %mm3
+ packssdw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: packssdw 69, %mm3
+ packssdw 0x45,%mm3
+
+// CHECK: packssdw 32493, %mm3
+ packssdw 0x7eed,%mm3
+
+// CHECK: packssdw 3133065982, %mm3
+ packssdw 0xbabecafe,%mm3
+
+// CHECK: packssdw 305419896, %mm3
+ packssdw 0x12345678,%mm3
+
+// CHECK: packssdw %mm3, %mm3
+ packssdw %mm3,%mm3
+
+// CHECK: packssdw 3735928559(%ebx,%ecx,8), %xmm5
+ packssdw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: packssdw 69, %xmm5
+ packssdw 0x45,%xmm5
+
+// CHECK: packssdw 32493, %xmm5
+ packssdw 0x7eed,%xmm5
+
+// CHECK: packssdw 3133065982, %xmm5
+ packssdw 0xbabecafe,%xmm5
+
+// CHECK: packssdw 305419896, %xmm5
+ packssdw 0x12345678,%xmm5
+
+// CHECK: packssdw %xmm5, %xmm5
+ packssdw %xmm5,%xmm5
+
+// CHECK: packsswb 3735928559(%ebx,%ecx,8), %mm3
+ packsswb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: packsswb 69, %mm3
+ packsswb 0x45,%mm3
+
+// CHECK: packsswb 32493, %mm3
+ packsswb 0x7eed,%mm3
+
+// CHECK: packsswb 3133065982, %mm3
+ packsswb 0xbabecafe,%mm3
+
+// CHECK: packsswb 305419896, %mm3
+ packsswb 0x12345678,%mm3
+
+// CHECK: packsswb %mm3, %mm3
+ packsswb %mm3,%mm3
+
+// CHECK: packsswb 3735928559(%ebx,%ecx,8), %xmm5
+ packsswb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: packsswb 69, %xmm5
+ packsswb 0x45,%xmm5
+
+// CHECK: packsswb 32493, %xmm5
+ packsswb 0x7eed,%xmm5
+
+// CHECK: packsswb 3133065982, %xmm5
+ packsswb 0xbabecafe,%xmm5
+
+// CHECK: packsswb 305419896, %xmm5
+ packsswb 0x12345678,%xmm5
+
+// CHECK: packsswb %xmm5, %xmm5
+ packsswb %xmm5,%xmm5
+
+// CHECK: packuswb 3735928559(%ebx,%ecx,8), %mm3
+ packuswb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: packuswb 69, %mm3
+ packuswb 0x45,%mm3
+
+// CHECK: packuswb 32493, %mm3
+ packuswb 0x7eed,%mm3
+
+// CHECK: packuswb 3133065982, %mm3
+ packuswb 0xbabecafe,%mm3
+
+// CHECK: packuswb 305419896, %mm3
+ packuswb 0x12345678,%mm3
+
+// CHECK: packuswb %mm3, %mm3
+ packuswb %mm3,%mm3
+
+// CHECK: packuswb 3735928559(%ebx,%ecx,8), %xmm5
+ packuswb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: packuswb 69, %xmm5
+ packuswb 0x45,%xmm5
+
+// CHECK: packuswb 32493, %xmm5
+ packuswb 0x7eed,%xmm5
+
+// CHECK: packuswb 3133065982, %xmm5
+ packuswb 0xbabecafe,%xmm5
+
+// CHECK: packuswb 305419896, %xmm5
+ packuswb 0x12345678,%xmm5
+
+// CHECK: packuswb %xmm5, %xmm5
+ packuswb %xmm5,%xmm5
+
+// CHECK: paddb 3735928559(%ebx,%ecx,8), %mm3
+ paddb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddb 69, %mm3
+ paddb 0x45,%mm3
+
+// CHECK: paddb 32493, %mm3
+ paddb 0x7eed,%mm3
+
+// CHECK: paddb 3133065982, %mm3
+ paddb 0xbabecafe,%mm3
+
+// CHECK: paddb 305419896, %mm3
+ paddb 0x12345678,%mm3
+
+// CHECK: paddb %mm3, %mm3
+ paddb %mm3,%mm3
+
+// CHECK: paddb 3735928559(%ebx,%ecx,8), %xmm5
+ paddb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddb 69, %xmm5
+ paddb 0x45,%xmm5
+
+// CHECK: paddb 32493, %xmm5
+ paddb 0x7eed,%xmm5
+
+// CHECK: paddb 3133065982, %xmm5
+ paddb 0xbabecafe,%xmm5
+
+// CHECK: paddb 305419896, %xmm5
+ paddb 0x12345678,%xmm5
+
+// CHECK: paddb %xmm5, %xmm5
+ paddb %xmm5,%xmm5
+
+// CHECK: paddw 3735928559(%ebx,%ecx,8), %mm3
+ paddw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddw 69, %mm3
+ paddw 0x45,%mm3
+
+// CHECK: paddw 32493, %mm3
+ paddw 0x7eed,%mm3
+
+// CHECK: paddw 3133065982, %mm3
+ paddw 0xbabecafe,%mm3
+
+// CHECK: paddw 305419896, %mm3
+ paddw 0x12345678,%mm3
+
+// CHECK: paddw %mm3, %mm3
+ paddw %mm3,%mm3
+
+// CHECK: paddw 3735928559(%ebx,%ecx,8), %xmm5
+ paddw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddw 69, %xmm5
+ paddw 0x45,%xmm5
+
+// CHECK: paddw 32493, %xmm5
+ paddw 0x7eed,%xmm5
+
+// CHECK: paddw 3133065982, %xmm5
+ paddw 0xbabecafe,%xmm5
+
+// CHECK: paddw 305419896, %xmm5
+ paddw 0x12345678,%xmm5
+
+// CHECK: paddw %xmm5, %xmm5
+ paddw %xmm5,%xmm5
+
+// CHECK: paddd 3735928559(%ebx,%ecx,8), %mm3
+ paddd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddd 69, %mm3
+ paddd 0x45,%mm3
+
+// CHECK: paddd 32493, %mm3
+ paddd 0x7eed,%mm3
+
+// CHECK: paddd 3133065982, %mm3
+ paddd 0xbabecafe,%mm3
+
+// CHECK: paddd 305419896, %mm3
+ paddd 0x12345678,%mm3
+
+// CHECK: paddd %mm3, %mm3
+ paddd %mm3,%mm3
+
+// CHECK: paddd 3735928559(%ebx,%ecx,8), %xmm5
+ paddd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddd 69, %xmm5
+ paddd 0x45,%xmm5
+
+// CHECK: paddd 32493, %xmm5
+ paddd 0x7eed,%xmm5
+
+// CHECK: paddd 3133065982, %xmm5
+ paddd 0xbabecafe,%xmm5
+
+// CHECK: paddd 305419896, %xmm5
+ paddd 0x12345678,%xmm5
+
+// CHECK: paddd %xmm5, %xmm5
+ paddd %xmm5,%xmm5
+
+// CHECK: paddq 3735928559(%ebx,%ecx,8), %mm3
+ paddq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddq 69, %mm3
+ paddq 0x45,%mm3
+
+// CHECK: paddq 32493, %mm3
+ paddq 0x7eed,%mm3
+
+// CHECK: paddq 3133065982, %mm3
+ paddq 0xbabecafe,%mm3
+
+// CHECK: paddq 305419896, %mm3
+ paddq 0x12345678,%mm3
+
+// CHECK: paddq %mm3, %mm3
+ paddq %mm3,%mm3
+
+// CHECK: paddq 3735928559(%ebx,%ecx,8), %xmm5
+ paddq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddq 69, %xmm5
+ paddq 0x45,%xmm5
+
+// CHECK: paddq 32493, %xmm5
+ paddq 0x7eed,%xmm5
+
+// CHECK: paddq 3133065982, %xmm5
+ paddq 0xbabecafe,%xmm5
+
+// CHECK: paddq 305419896, %xmm5
+ paddq 0x12345678,%xmm5
+
+// CHECK: paddq %xmm5, %xmm5
+ paddq %xmm5,%xmm5
+
+// CHECK: paddsb 3735928559(%ebx,%ecx,8), %mm3
+ paddsb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddsb 69, %mm3
+ paddsb 0x45,%mm3
+
+// CHECK: paddsb 32493, %mm3
+ paddsb 0x7eed,%mm3
+
+// CHECK: paddsb 3133065982, %mm3
+ paddsb 0xbabecafe,%mm3
+
+// CHECK: paddsb 305419896, %mm3
+ paddsb 0x12345678,%mm3
+
+// CHECK: paddsb %mm3, %mm3
+ paddsb %mm3,%mm3
+
+// CHECK: paddsb 3735928559(%ebx,%ecx,8), %xmm5
+ paddsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddsb 69, %xmm5
+ paddsb 0x45,%xmm5
+
+// CHECK: paddsb 32493, %xmm5
+ paddsb 0x7eed,%xmm5
+
+// CHECK: paddsb 3133065982, %xmm5
+ paddsb 0xbabecafe,%xmm5
+
+// CHECK: paddsb 305419896, %xmm5
+ paddsb 0x12345678,%xmm5
+
+// CHECK: paddsb %xmm5, %xmm5
+ paddsb %xmm5,%xmm5
+
+// CHECK: paddsw 3735928559(%ebx,%ecx,8), %mm3
+ paddsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddsw 69, %mm3
+ paddsw 0x45,%mm3
+
+// CHECK: paddsw 32493, %mm3
+ paddsw 0x7eed,%mm3
+
+// CHECK: paddsw 3133065982, %mm3
+ paddsw 0xbabecafe,%mm3
+
+// CHECK: paddsw 305419896, %mm3
+ paddsw 0x12345678,%mm3
+
+// CHECK: paddsw %mm3, %mm3
+ paddsw %mm3,%mm3
+
+// CHECK: paddsw 3735928559(%ebx,%ecx,8), %xmm5
+ paddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddsw 69, %xmm5
+ paddsw 0x45,%xmm5
+
+// CHECK: paddsw 32493, %xmm5
+ paddsw 0x7eed,%xmm5
+
+// CHECK: paddsw 3133065982, %xmm5
+ paddsw 0xbabecafe,%xmm5
+
+// CHECK: paddsw 305419896, %xmm5
+ paddsw 0x12345678,%xmm5
+
+// CHECK: paddsw %xmm5, %xmm5
+ paddsw %xmm5,%xmm5
+
+// CHECK: paddusb 3735928559(%ebx,%ecx,8), %mm3
+ paddusb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddusb 69, %mm3
+ paddusb 0x45,%mm3
+
+// CHECK: paddusb 32493, %mm3
+ paddusb 0x7eed,%mm3
+
+// CHECK: paddusb 3133065982, %mm3
+ paddusb 0xbabecafe,%mm3
+
+// CHECK: paddusb 305419896, %mm3
+ paddusb 0x12345678,%mm3
+
+// CHECK: paddusb %mm3, %mm3
+ paddusb %mm3,%mm3
+
+// CHECK: paddusb 3735928559(%ebx,%ecx,8), %xmm5
+ paddusb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddusb 69, %xmm5
+ paddusb 0x45,%xmm5
+
+// CHECK: paddusb 32493, %xmm5
+ paddusb 0x7eed,%xmm5
+
+// CHECK: paddusb 3133065982, %xmm5
+ paddusb 0xbabecafe,%xmm5
+
+// CHECK: paddusb 305419896, %xmm5
+ paddusb 0x12345678,%xmm5
+
+// CHECK: paddusb %xmm5, %xmm5
+ paddusb %xmm5,%xmm5
+
+// CHECK: paddusw 3735928559(%ebx,%ecx,8), %mm3
+ paddusw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: paddusw 69, %mm3
+ paddusw 0x45,%mm3
+
+// CHECK: paddusw 32493, %mm3
+ paddusw 0x7eed,%mm3
+
+// CHECK: paddusw 3133065982, %mm3
+ paddusw 0xbabecafe,%mm3
+
+// CHECK: paddusw 305419896, %mm3
+ paddusw 0x12345678,%mm3
+
+// CHECK: paddusw %mm3, %mm3
+ paddusw %mm3,%mm3
+
+// CHECK: paddusw 3735928559(%ebx,%ecx,8), %xmm5
+ paddusw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: paddusw 69, %xmm5
+ paddusw 0x45,%xmm5
+
+// CHECK: paddusw 32493, %xmm5
+ paddusw 0x7eed,%xmm5
+
+// CHECK: paddusw 3133065982, %xmm5
+ paddusw 0xbabecafe,%xmm5
+
+// CHECK: paddusw 305419896, %xmm5
+ paddusw 0x12345678,%xmm5
+
+// CHECK: paddusw %xmm5, %xmm5
+ paddusw %xmm5,%xmm5
+
+// CHECK: pand 3735928559(%ebx,%ecx,8), %mm3
+ pand 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pand 69, %mm3
+ pand 0x45,%mm3
+
+// CHECK: pand 32493, %mm3
+ pand 0x7eed,%mm3
+
+// CHECK: pand 3133065982, %mm3
+ pand 0xbabecafe,%mm3
+
+// CHECK: pand 305419896, %mm3
+ pand 0x12345678,%mm3
+
+// CHECK: pand %mm3, %mm3
+ pand %mm3,%mm3
+
+// CHECK: pand 3735928559(%ebx,%ecx,8), %xmm5
+ pand 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pand 69, %xmm5
+ pand 0x45,%xmm5
+
+// CHECK: pand 32493, %xmm5
+ pand 0x7eed,%xmm5
+
+// CHECK: pand 3133065982, %xmm5
+ pand 0xbabecafe,%xmm5
+
+// CHECK: pand 305419896, %xmm5
+ pand 0x12345678,%xmm5
+
+// CHECK: pand %xmm5, %xmm5
+ pand %xmm5,%xmm5
+
+// CHECK: pandn 3735928559(%ebx,%ecx,8), %mm3
+ pandn 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pandn 69, %mm3
+ pandn 0x45,%mm3
+
+// CHECK: pandn 32493, %mm3
+ pandn 0x7eed,%mm3
+
+// CHECK: pandn 3133065982, %mm3
+ pandn 0xbabecafe,%mm3
+
+// CHECK: pandn 305419896, %mm3
+ pandn 0x12345678,%mm3
+
+// CHECK: pandn %mm3, %mm3
+ pandn %mm3,%mm3
+
+// CHECK: pandn 3735928559(%ebx,%ecx,8), %xmm5
+ pandn 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pandn 69, %xmm5
+ pandn 0x45,%xmm5
+
+// CHECK: pandn 32493, %xmm5
+ pandn 0x7eed,%xmm5
+
+// CHECK: pandn 3133065982, %xmm5
+ pandn 0xbabecafe,%xmm5
+
+// CHECK: pandn 305419896, %xmm5
+ pandn 0x12345678,%xmm5
+
+// CHECK: pandn %xmm5, %xmm5
+ pandn %xmm5,%xmm5
+
+// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %mm3
+ pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pcmpeqb 69, %mm3
+ pcmpeqb 0x45,%mm3
+
+// CHECK: pcmpeqb 32493, %mm3
+ pcmpeqb 0x7eed,%mm3
+
+// CHECK: pcmpeqb 3133065982, %mm3
+ pcmpeqb 0xbabecafe,%mm3
+
+// CHECK: pcmpeqb 305419896, %mm3
+ pcmpeqb 0x12345678,%mm3
+
+// CHECK: pcmpeqb %mm3, %mm3
+ pcmpeqb %mm3,%mm3
+
+// CHECK: pcmpeqb 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpeqb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpeqb 69, %xmm5
+ pcmpeqb 0x45,%xmm5
+
+// CHECK: pcmpeqb 32493, %xmm5
+ pcmpeqb 0x7eed,%xmm5
+
+// CHECK: pcmpeqb 3133065982, %xmm5
+ pcmpeqb 0xbabecafe,%xmm5
+
+// CHECK: pcmpeqb 305419896, %xmm5
+ pcmpeqb 0x12345678,%xmm5
+
+// CHECK: pcmpeqb %xmm5, %xmm5
+ pcmpeqb %xmm5,%xmm5
+
+// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %mm3
+ pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pcmpeqw 69, %mm3
+ pcmpeqw 0x45,%mm3
+
+// CHECK: pcmpeqw 32493, %mm3
+ pcmpeqw 0x7eed,%mm3
+
+// CHECK: pcmpeqw 3133065982, %mm3
+ pcmpeqw 0xbabecafe,%mm3
+
+// CHECK: pcmpeqw 305419896, %mm3
+ pcmpeqw 0x12345678,%mm3
+
+// CHECK: pcmpeqw %mm3, %mm3
+ pcmpeqw %mm3,%mm3
+
+// CHECK: pcmpeqw 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpeqw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpeqw 69, %xmm5
+ pcmpeqw 0x45,%xmm5
+
+// CHECK: pcmpeqw 32493, %xmm5
+ pcmpeqw 0x7eed,%xmm5
+
+// CHECK: pcmpeqw 3133065982, %xmm5
+ pcmpeqw 0xbabecafe,%xmm5
+
+// CHECK: pcmpeqw 305419896, %xmm5
+ pcmpeqw 0x12345678,%xmm5
+
+// CHECK: pcmpeqw %xmm5, %xmm5
+ pcmpeqw %xmm5,%xmm5
+
+// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %mm3
+ pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pcmpeqd 69, %mm3
+ pcmpeqd 0x45,%mm3
+
+// CHECK: pcmpeqd 32493, %mm3
+ pcmpeqd 0x7eed,%mm3
+
+// CHECK: pcmpeqd 3133065982, %mm3
+ pcmpeqd 0xbabecafe,%mm3
+
+// CHECK: pcmpeqd 305419896, %mm3
+ pcmpeqd 0x12345678,%mm3
+
+// CHECK: pcmpeqd %mm3, %mm3
+ pcmpeqd %mm3,%mm3
+
+// CHECK: pcmpeqd 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpeqd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpeqd 69, %xmm5
+ pcmpeqd 0x45,%xmm5
+
+// CHECK: pcmpeqd 32493, %xmm5
+ pcmpeqd 0x7eed,%xmm5
+
+// CHECK: pcmpeqd 3133065982, %xmm5
+ pcmpeqd 0xbabecafe,%xmm5
+
+// CHECK: pcmpeqd 305419896, %xmm5
+ pcmpeqd 0x12345678,%xmm5
+
+// CHECK: pcmpeqd %xmm5, %xmm5
+ pcmpeqd %xmm5,%xmm5
+
+// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %mm3
+ pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pcmpgtb 69, %mm3
+ pcmpgtb 0x45,%mm3
+
+// CHECK: pcmpgtb 32493, %mm3
+ pcmpgtb 0x7eed,%mm3
+
+// CHECK: pcmpgtb 3133065982, %mm3
+ pcmpgtb 0xbabecafe,%mm3
+
+// CHECK: pcmpgtb 305419896, %mm3
+ pcmpgtb 0x12345678,%mm3
+
+// CHECK: pcmpgtb %mm3, %mm3
+ pcmpgtb %mm3,%mm3
+
+// CHECK: pcmpgtb 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpgtb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpgtb 69, %xmm5
+ pcmpgtb 0x45,%xmm5
+
+// CHECK: pcmpgtb 32493, %xmm5
+ pcmpgtb 0x7eed,%xmm5
+
+// CHECK: pcmpgtb 3133065982, %xmm5
+ pcmpgtb 0xbabecafe,%xmm5
+
+// CHECK: pcmpgtb 305419896, %xmm5
+ pcmpgtb 0x12345678,%xmm5
+
+// CHECK: pcmpgtb %xmm5, %xmm5
+ pcmpgtb %xmm5,%xmm5
+
+// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %mm3
+ pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pcmpgtw 69, %mm3
+ pcmpgtw 0x45,%mm3
+
+// CHECK: pcmpgtw 32493, %mm3
+ pcmpgtw 0x7eed,%mm3
+
+// CHECK: pcmpgtw 3133065982, %mm3
+ pcmpgtw 0xbabecafe,%mm3
+
+// CHECK: pcmpgtw 305419896, %mm3
+ pcmpgtw 0x12345678,%mm3
+
+// CHECK: pcmpgtw %mm3, %mm3
+ pcmpgtw %mm3,%mm3
+
+// CHECK: pcmpgtw 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpgtw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpgtw 69, %xmm5
+ pcmpgtw 0x45,%xmm5
+
+// CHECK: pcmpgtw 32493, %xmm5
+ pcmpgtw 0x7eed,%xmm5
+
+// CHECK: pcmpgtw 3133065982, %xmm5
+ pcmpgtw 0xbabecafe,%xmm5
+
+// CHECK: pcmpgtw 305419896, %xmm5
+ pcmpgtw 0x12345678,%xmm5
+
+// CHECK: pcmpgtw %xmm5, %xmm5
+ pcmpgtw %xmm5,%xmm5
+
+// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %mm3
+ pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pcmpgtd 69, %mm3
+ pcmpgtd 0x45,%mm3
+
+// CHECK: pcmpgtd 32493, %mm3
+ pcmpgtd 0x7eed,%mm3
+
+// CHECK: pcmpgtd 3133065982, %mm3
+ pcmpgtd 0xbabecafe,%mm3
+
+// CHECK: pcmpgtd 305419896, %mm3
+ pcmpgtd 0x12345678,%mm3
+
+// CHECK: pcmpgtd %mm3, %mm3
+ pcmpgtd %mm3,%mm3
+
+// CHECK: pcmpgtd 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpgtd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpgtd 69, %xmm5
+ pcmpgtd 0x45,%xmm5
+
+// CHECK: pcmpgtd 32493, %xmm5
+ pcmpgtd 0x7eed,%xmm5
+
+// CHECK: pcmpgtd 3133065982, %xmm5
+ pcmpgtd 0xbabecafe,%xmm5
+
+// CHECK: pcmpgtd 305419896, %xmm5
+ pcmpgtd 0x12345678,%xmm5
+
+// CHECK: pcmpgtd %xmm5, %xmm5
+ pcmpgtd %xmm5,%xmm5
+
+// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %mm3
+ pmaddwd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmaddwd 69, %mm3
+ pmaddwd 0x45,%mm3
+
+// CHECK: pmaddwd 32493, %mm3
+ pmaddwd 0x7eed,%mm3
+
+// CHECK: pmaddwd 3133065982, %mm3
+ pmaddwd 0xbabecafe,%mm3
+
+// CHECK: pmaddwd 305419896, %mm3
+ pmaddwd 0x12345678,%mm3
+
+// CHECK: pmaddwd %mm3, %mm3
+ pmaddwd %mm3,%mm3
+
+// CHECK: pmaddwd 3735928559(%ebx,%ecx,8), %xmm5
+ pmaddwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaddwd 69, %xmm5
+ pmaddwd 0x45,%xmm5
+
+// CHECK: pmaddwd 32493, %xmm5
+ pmaddwd 0x7eed,%xmm5
+
+// CHECK: pmaddwd 3133065982, %xmm5
+ pmaddwd 0xbabecafe,%xmm5
+
+// CHECK: pmaddwd 305419896, %xmm5
+ pmaddwd 0x12345678,%xmm5
+
+// CHECK: pmaddwd %xmm5, %xmm5
+ pmaddwd %xmm5,%xmm5
+
+// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %mm3
+ pmulhw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmulhw 69, %mm3
+ pmulhw 0x45,%mm3
+
+// CHECK: pmulhw 32493, %mm3
+ pmulhw 0x7eed,%mm3
+
+// CHECK: pmulhw 3133065982, %mm3
+ pmulhw 0xbabecafe,%mm3
+
+// CHECK: pmulhw 305419896, %mm3
+ pmulhw 0x12345678,%mm3
+
+// CHECK: pmulhw %mm3, %mm3
+ pmulhw %mm3,%mm3
+
+// CHECK: pmulhw 3735928559(%ebx,%ecx,8), %xmm5
+ pmulhw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmulhw 69, %xmm5
+ pmulhw 0x45,%xmm5
+
+// CHECK: pmulhw 32493, %xmm5
+ pmulhw 0x7eed,%xmm5
+
+// CHECK: pmulhw 3133065982, %xmm5
+ pmulhw 0xbabecafe,%xmm5
+
+// CHECK: pmulhw 305419896, %xmm5
+ pmulhw 0x12345678,%xmm5
+
+// CHECK: pmulhw %xmm5, %xmm5
+ pmulhw %xmm5,%xmm5
+
+// CHECK: pmullw 3735928559(%ebx,%ecx,8), %mm3
+ pmullw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmullw 69, %mm3
+ pmullw 0x45,%mm3
+
+// CHECK: pmullw 32493, %mm3
+ pmullw 0x7eed,%mm3
+
+// CHECK: pmullw 3133065982, %mm3
+ pmullw 0xbabecafe,%mm3
+
+// CHECK: pmullw 305419896, %mm3
+ pmullw 0x12345678,%mm3
+
+// CHECK: pmullw %mm3, %mm3
+ pmullw %mm3,%mm3
+
+// CHECK: pmullw 3735928559(%ebx,%ecx,8), %xmm5
+ pmullw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmullw 69, %xmm5
+ pmullw 0x45,%xmm5
+
+// CHECK: pmullw 32493, %xmm5
+ pmullw 0x7eed,%xmm5
+
+// CHECK: pmullw 3133065982, %xmm5
+ pmullw 0xbabecafe,%xmm5
+
+// CHECK: pmullw 305419896, %xmm5
+ pmullw 0x12345678,%xmm5
+
+// CHECK: pmullw %xmm5, %xmm5
+ pmullw %xmm5,%xmm5
+
+// CHECK: por 3735928559(%ebx,%ecx,8), %mm3
+ por 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: por 69, %mm3
+ por 0x45,%mm3
+
+// CHECK: por 32493, %mm3
+ por 0x7eed,%mm3
+
+// CHECK: por 3133065982, %mm3
+ por 0xbabecafe,%mm3
+
+// CHECK: por 305419896, %mm3
+ por 0x12345678,%mm3
+
+// CHECK: por %mm3, %mm3
+ por %mm3,%mm3
+
+// CHECK: por 3735928559(%ebx,%ecx,8), %xmm5
+ por 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: por 69, %xmm5
+ por 0x45,%xmm5
+
+// CHECK: por 32493, %xmm5
+ por 0x7eed,%xmm5
+
+// CHECK: por 3133065982, %xmm5
+ por 0xbabecafe,%xmm5
+
+// CHECK: por 305419896, %xmm5
+ por 0x12345678,%xmm5
+
+// CHECK: por %xmm5, %xmm5
+ por %xmm5,%xmm5
+
+// CHECK: psllw 3735928559(%ebx,%ecx,8), %mm3
+ psllw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psllw 69, %mm3
+ psllw 0x45,%mm3
+
+// CHECK: psllw 32493, %mm3
+ psllw 0x7eed,%mm3
+
+// CHECK: psllw 3133065982, %mm3
+ psllw 0xbabecafe,%mm3
+
+// CHECK: psllw 305419896, %mm3
+ psllw 0x12345678,%mm3
+
+// CHECK: psllw %mm3, %mm3
+ psllw %mm3,%mm3
+
+// CHECK: psllw 3735928559(%ebx,%ecx,8), %xmm5
+ psllw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psllw 69, %xmm5
+ psllw 0x45,%xmm5
+
+// CHECK: psllw 32493, %xmm5
+ psllw 0x7eed,%xmm5
+
+// CHECK: psllw 3133065982, %xmm5
+ psllw 0xbabecafe,%xmm5
+
+// CHECK: psllw 305419896, %xmm5
+ psllw 0x12345678,%xmm5
+
+// CHECK: psllw %xmm5, %xmm5
+ psllw %xmm5,%xmm5
+
+// CHECK: psllw $127, %mm3
+ psllw $0x7f,%mm3
+
+// CHECK: psllw $127, %xmm5
+ psllw $0x7f,%xmm5
+
+// CHECK: pslld 3735928559(%ebx,%ecx,8), %mm3
+ pslld 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pslld 69, %mm3
+ pslld 0x45,%mm3
+
+// CHECK: pslld 32493, %mm3
+ pslld 0x7eed,%mm3
+
+// CHECK: pslld 3133065982, %mm3
+ pslld 0xbabecafe,%mm3
+
+// CHECK: pslld 305419896, %mm3
+ pslld 0x12345678,%mm3
+
+// CHECK: pslld %mm3, %mm3
+ pslld %mm3,%mm3
+
+// CHECK: pslld 3735928559(%ebx,%ecx,8), %xmm5
+ pslld 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pslld 69, %xmm5
+ pslld 0x45,%xmm5
+
+// CHECK: pslld 32493, %xmm5
+ pslld 0x7eed,%xmm5
+
+// CHECK: pslld 3133065982, %xmm5
+ pslld 0xbabecafe,%xmm5
+
+// CHECK: pslld 305419896, %xmm5
+ pslld 0x12345678,%xmm5
+
+// CHECK: pslld %xmm5, %xmm5
+ pslld %xmm5,%xmm5
+
+// CHECK: pslld $127, %mm3
+ pslld $0x7f,%mm3
+
+// CHECK: pslld $127, %xmm5
+ pslld $0x7f,%xmm5
+
+// CHECK: psllq 3735928559(%ebx,%ecx,8), %mm3
+ psllq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psllq 69, %mm3
+ psllq 0x45,%mm3
+
+// CHECK: psllq 32493, %mm3
+ psllq 0x7eed,%mm3
+
+// CHECK: psllq 3133065982, %mm3
+ psllq 0xbabecafe,%mm3
+
+// CHECK: psllq 305419896, %mm3
+ psllq 0x12345678,%mm3
+
+// CHECK: psllq %mm3, %mm3
+ psllq %mm3,%mm3
+
+// CHECK: psllq 3735928559(%ebx,%ecx,8), %xmm5
+ psllq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psllq 69, %xmm5
+ psllq 0x45,%xmm5
+
+// CHECK: psllq 32493, %xmm5
+ psllq 0x7eed,%xmm5
+
+// CHECK: psllq 3133065982, %xmm5
+ psllq 0xbabecafe,%xmm5
+
+// CHECK: psllq 305419896, %xmm5
+ psllq 0x12345678,%xmm5
+
+// CHECK: psllq %xmm5, %xmm5
+ psllq %xmm5,%xmm5
+
+// CHECK: psllq $127, %mm3
+ psllq $0x7f,%mm3
+
+// CHECK: psllq $127, %xmm5
+ psllq $0x7f,%xmm5
+
+// CHECK: psraw 3735928559(%ebx,%ecx,8), %mm3
+ psraw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psraw 69, %mm3
+ psraw 0x45,%mm3
+
+// CHECK: psraw 32493, %mm3
+ psraw 0x7eed,%mm3
+
+// CHECK: psraw 3133065982, %mm3
+ psraw 0xbabecafe,%mm3
+
+// CHECK: psraw 305419896, %mm3
+ psraw 0x12345678,%mm3
+
+// CHECK: psraw %mm3, %mm3
+ psraw %mm3,%mm3
+
+// CHECK: psraw 3735928559(%ebx,%ecx,8), %xmm5
+ psraw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psraw 69, %xmm5
+ psraw 0x45,%xmm5
+
+// CHECK: psraw 32493, %xmm5
+ psraw 0x7eed,%xmm5
+
+// CHECK: psraw 3133065982, %xmm5
+ psraw 0xbabecafe,%xmm5
+
+// CHECK: psraw 305419896, %xmm5
+ psraw 0x12345678,%xmm5
+
+// CHECK: psraw %xmm5, %xmm5
+ psraw %xmm5,%xmm5
+
+// CHECK: psraw $127, %mm3
+ psraw $0x7f,%mm3
+
+// CHECK: psraw $127, %xmm5
+ psraw $0x7f,%xmm5
+
+// CHECK: psrad 3735928559(%ebx,%ecx,8), %mm3
+ psrad 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psrad 69, %mm3
+ psrad 0x45,%mm3
+
+// CHECK: psrad 32493, %mm3
+ psrad 0x7eed,%mm3
+
+// CHECK: psrad 3133065982, %mm3
+ psrad 0xbabecafe,%mm3
+
+// CHECK: psrad 305419896, %mm3
+ psrad 0x12345678,%mm3
+
+// CHECK: psrad %mm3, %mm3
+ psrad %mm3,%mm3
+
+// CHECK: psrad 3735928559(%ebx,%ecx,8), %xmm5
+ psrad 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psrad 69, %xmm5
+ psrad 0x45,%xmm5
+
+// CHECK: psrad 32493, %xmm5
+ psrad 0x7eed,%xmm5
+
+// CHECK: psrad 3133065982, %xmm5
+ psrad 0xbabecafe,%xmm5
+
+// CHECK: psrad 305419896, %xmm5
+ psrad 0x12345678,%xmm5
+
+// CHECK: psrad %xmm5, %xmm5
+ psrad %xmm5,%xmm5
+
+// CHECK: psrad $127, %mm3
+ psrad $0x7f,%mm3
+
+// CHECK: psrad $127, %xmm5
+ psrad $0x7f,%xmm5
+
+// CHECK: psrlw 3735928559(%ebx,%ecx,8), %mm3
+ psrlw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psrlw 69, %mm3
+ psrlw 0x45,%mm3
+
+// CHECK: psrlw 32493, %mm3
+ psrlw 0x7eed,%mm3
+
+// CHECK: psrlw 3133065982, %mm3
+ psrlw 0xbabecafe,%mm3
+
+// CHECK: psrlw 305419896, %mm3
+ psrlw 0x12345678,%mm3
+
+// CHECK: psrlw %mm3, %mm3
+ psrlw %mm3,%mm3
+
+// CHECK: psrlw 3735928559(%ebx,%ecx,8), %xmm5
+ psrlw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psrlw 69, %xmm5
+ psrlw 0x45,%xmm5
+
+// CHECK: psrlw 32493, %xmm5
+ psrlw 0x7eed,%xmm5
+
+// CHECK: psrlw 3133065982, %xmm5
+ psrlw 0xbabecafe,%xmm5
+
+// CHECK: psrlw 305419896, %xmm5
+ psrlw 0x12345678,%xmm5
+
+// CHECK: psrlw %xmm5, %xmm5
+ psrlw %xmm5,%xmm5
+
+// CHECK: psrlw $127, %mm3
+ psrlw $0x7f,%mm3
+
+// CHECK: psrlw $127, %xmm5
+ psrlw $0x7f,%xmm5
+
+// CHECK: psrld 3735928559(%ebx,%ecx,8), %mm3
+ psrld 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psrld 69, %mm3
+ psrld 0x45,%mm3
+
+// CHECK: psrld 32493, %mm3
+ psrld 0x7eed,%mm3
+
+// CHECK: psrld 3133065982, %mm3
+ psrld 0xbabecafe,%mm3
+
+// CHECK: psrld 305419896, %mm3
+ psrld 0x12345678,%mm3
+
+// CHECK: psrld %mm3, %mm3
+ psrld %mm3,%mm3
+
+// CHECK: psrld 3735928559(%ebx,%ecx,8), %xmm5
+ psrld 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psrld 69, %xmm5
+ psrld 0x45,%xmm5
+
+// CHECK: psrld 32493, %xmm5
+ psrld 0x7eed,%xmm5
+
+// CHECK: psrld 3133065982, %xmm5
+ psrld 0xbabecafe,%xmm5
+
+// CHECK: psrld 305419896, %xmm5
+ psrld 0x12345678,%xmm5
+
+// CHECK: psrld %xmm5, %xmm5
+ psrld %xmm5,%xmm5
+
+// CHECK: psrld $127, %mm3
+ psrld $0x7f,%mm3
+
+// CHECK: psrld $127, %xmm5
+ psrld $0x7f,%xmm5
+
+// CHECK: psrlq 3735928559(%ebx,%ecx,8), %mm3
+ psrlq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psrlq 69, %mm3
+ psrlq 0x45,%mm3
+
+// CHECK: psrlq 32493, %mm3
+ psrlq 0x7eed,%mm3
+
+// CHECK: psrlq 3133065982, %mm3
+ psrlq 0xbabecafe,%mm3
+
+// CHECK: psrlq 305419896, %mm3
+ psrlq 0x12345678,%mm3
+
+// CHECK: psrlq %mm3, %mm3
+ psrlq %mm3,%mm3
+
+// CHECK: psrlq 3735928559(%ebx,%ecx,8), %xmm5
+ psrlq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psrlq 69, %xmm5
+ psrlq 0x45,%xmm5
+
+// CHECK: psrlq 32493, %xmm5
+ psrlq 0x7eed,%xmm5
+
+// CHECK: psrlq 3133065982, %xmm5
+ psrlq 0xbabecafe,%xmm5
+
+// CHECK: psrlq 305419896, %xmm5
+ psrlq 0x12345678,%xmm5
+
+// CHECK: psrlq %xmm5, %xmm5
+ psrlq %xmm5,%xmm5
+
+// CHECK: psrlq $127, %mm3
+ psrlq $0x7f,%mm3
+
+// CHECK: psrlq $127, %xmm5
+ psrlq $0x7f,%xmm5
+
+// CHECK: psubb 3735928559(%ebx,%ecx,8), %mm3
+ psubb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubb 69, %mm3
+ psubb 0x45,%mm3
+
+// CHECK: psubb 32493, %mm3
+ psubb 0x7eed,%mm3
+
+// CHECK: psubb 3133065982, %mm3
+ psubb 0xbabecafe,%mm3
+
+// CHECK: psubb 305419896, %mm3
+ psubb 0x12345678,%mm3
+
+// CHECK: psubb %mm3, %mm3
+ psubb %mm3,%mm3
+
+// CHECK: psubb 3735928559(%ebx,%ecx,8), %xmm5
+ psubb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubb 69, %xmm5
+ psubb 0x45,%xmm5
+
+// CHECK: psubb 32493, %xmm5
+ psubb 0x7eed,%xmm5
+
+// CHECK: psubb 3133065982, %xmm5
+ psubb 0xbabecafe,%xmm5
+
+// CHECK: psubb 305419896, %xmm5
+ psubb 0x12345678,%xmm5
+
+// CHECK: psubb %xmm5, %xmm5
+ psubb %xmm5,%xmm5
+
+// CHECK: psubw 3735928559(%ebx,%ecx,8), %mm3
+ psubw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubw 69, %mm3
+ psubw 0x45,%mm3
+
+// CHECK: psubw 32493, %mm3
+ psubw 0x7eed,%mm3
+
+// CHECK: psubw 3133065982, %mm3
+ psubw 0xbabecafe,%mm3
+
+// CHECK: psubw 305419896, %mm3
+ psubw 0x12345678,%mm3
+
+// CHECK: psubw %mm3, %mm3
+ psubw %mm3,%mm3
+
+// CHECK: psubw 3735928559(%ebx,%ecx,8), %xmm5
+ psubw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubw 69, %xmm5
+ psubw 0x45,%xmm5
+
+// CHECK: psubw 32493, %xmm5
+ psubw 0x7eed,%xmm5
+
+// CHECK: psubw 3133065982, %xmm5
+ psubw 0xbabecafe,%xmm5
+
+// CHECK: psubw 305419896, %xmm5
+ psubw 0x12345678,%xmm5
+
+// CHECK: psubw %xmm5, %xmm5
+ psubw %xmm5,%xmm5
+
+// CHECK: psubd 3735928559(%ebx,%ecx,8), %mm3
+ psubd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubd 69, %mm3
+ psubd 0x45,%mm3
+
+// CHECK: psubd 32493, %mm3
+ psubd 0x7eed,%mm3
+
+// CHECK: psubd 3133065982, %mm3
+ psubd 0xbabecafe,%mm3
+
+// CHECK: psubd 305419896, %mm3
+ psubd 0x12345678,%mm3
+
+// CHECK: psubd %mm3, %mm3
+ psubd %mm3,%mm3
+
+// CHECK: psubd 3735928559(%ebx,%ecx,8), %xmm5
+ psubd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubd 69, %xmm5
+ psubd 0x45,%xmm5
+
+// CHECK: psubd 32493, %xmm5
+ psubd 0x7eed,%xmm5
+
+// CHECK: psubd 3133065982, %xmm5
+ psubd 0xbabecafe,%xmm5
+
+// CHECK: psubd 305419896, %xmm5
+ psubd 0x12345678,%xmm5
+
+// CHECK: psubd %xmm5, %xmm5
+ psubd %xmm5,%xmm5
+
+// CHECK: psubq 3735928559(%ebx,%ecx,8), %mm3
+ psubq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubq 69, %mm3
+ psubq 0x45,%mm3
+
+// CHECK: psubq 32493, %mm3
+ psubq 0x7eed,%mm3
+
+// CHECK: psubq 3133065982, %mm3
+ psubq 0xbabecafe,%mm3
+
+// CHECK: psubq 305419896, %mm3
+ psubq 0x12345678,%mm3
+
+// CHECK: psubq %mm3, %mm3
+ psubq %mm3,%mm3
+
+// CHECK: psubq 3735928559(%ebx,%ecx,8), %xmm5
+ psubq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubq 69, %xmm5
+ psubq 0x45,%xmm5
+
+// CHECK: psubq 32493, %xmm5
+ psubq 0x7eed,%xmm5
+
+// CHECK: psubq 3133065982, %xmm5
+ psubq 0xbabecafe,%xmm5
+
+// CHECK: psubq 305419896, %xmm5
+ psubq 0x12345678,%xmm5
+
+// CHECK: psubq %xmm5, %xmm5
+ psubq %xmm5,%xmm5
+
+// CHECK: psubsb 3735928559(%ebx,%ecx,8), %mm3
+ psubsb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubsb 69, %mm3
+ psubsb 0x45,%mm3
+
+// CHECK: psubsb 32493, %mm3
+ psubsb 0x7eed,%mm3
+
+// CHECK: psubsb 3133065982, %mm3
+ psubsb 0xbabecafe,%mm3
+
+// CHECK: psubsb 305419896, %mm3
+ psubsb 0x12345678,%mm3
+
+// CHECK: psubsb %mm3, %mm3
+ psubsb %mm3,%mm3
+
+// CHECK: psubsb 3735928559(%ebx,%ecx,8), %xmm5
+ psubsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubsb 69, %xmm5
+ psubsb 0x45,%xmm5
+
+// CHECK: psubsb 32493, %xmm5
+ psubsb 0x7eed,%xmm5
+
+// CHECK: psubsb 3133065982, %xmm5
+ psubsb 0xbabecafe,%xmm5
+
+// CHECK: psubsb 305419896, %xmm5
+ psubsb 0x12345678,%xmm5
+
+// CHECK: psubsb %xmm5, %xmm5
+ psubsb %xmm5,%xmm5
+
+// CHECK: psubsw 3735928559(%ebx,%ecx,8), %mm3
+ psubsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubsw 69, %mm3
+ psubsw 0x45,%mm3
+
+// CHECK: psubsw 32493, %mm3
+ psubsw 0x7eed,%mm3
+
+// CHECK: psubsw 3133065982, %mm3
+ psubsw 0xbabecafe,%mm3
+
+// CHECK: psubsw 305419896, %mm3
+ psubsw 0x12345678,%mm3
+
+// CHECK: psubsw %mm3, %mm3
+ psubsw %mm3,%mm3
+
+// CHECK: psubsw 3735928559(%ebx,%ecx,8), %xmm5
+ psubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubsw 69, %xmm5
+ psubsw 0x45,%xmm5
+
+// CHECK: psubsw 32493, %xmm5
+ psubsw 0x7eed,%xmm5
+
+// CHECK: psubsw 3133065982, %xmm5
+ psubsw 0xbabecafe,%xmm5
+
+// CHECK: psubsw 305419896, %xmm5
+ psubsw 0x12345678,%xmm5
+
+// CHECK: psubsw %xmm5, %xmm5
+ psubsw %xmm5,%xmm5
+
+// CHECK: psubusb 3735928559(%ebx,%ecx,8), %mm3
+ psubusb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubusb 69, %mm3
+ psubusb 0x45,%mm3
+
+// CHECK: psubusb 32493, %mm3
+ psubusb 0x7eed,%mm3
+
+// CHECK: psubusb 3133065982, %mm3
+ psubusb 0xbabecafe,%mm3
+
+// CHECK: psubusb 305419896, %mm3
+ psubusb 0x12345678,%mm3
+
+// CHECK: psubusb %mm3, %mm3
+ psubusb %mm3,%mm3
+
+// CHECK: psubusb 3735928559(%ebx,%ecx,8), %xmm5
+ psubusb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubusb 69, %xmm5
+ psubusb 0x45,%xmm5
+
+// CHECK: psubusb 32493, %xmm5
+ psubusb 0x7eed,%xmm5
+
+// CHECK: psubusb 3133065982, %xmm5
+ psubusb 0xbabecafe,%xmm5
+
+// CHECK: psubusb 305419896, %xmm5
+ psubusb 0x12345678,%xmm5
+
+// CHECK: psubusb %xmm5, %xmm5
+ psubusb %xmm5,%xmm5
+
+// CHECK: psubusw 3735928559(%ebx,%ecx,8), %mm3
+ psubusw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psubusw 69, %mm3
+ psubusw 0x45,%mm3
+
+// CHECK: psubusw 32493, %mm3
+ psubusw 0x7eed,%mm3
+
+// CHECK: psubusw 3133065982, %mm3
+ psubusw 0xbabecafe,%mm3
+
+// CHECK: psubusw 305419896, %mm3
+ psubusw 0x12345678,%mm3
+
+// CHECK: psubusw %mm3, %mm3
+ psubusw %mm3,%mm3
+
+// CHECK: psubusw 3735928559(%ebx,%ecx,8), %xmm5
+ psubusw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psubusw 69, %xmm5
+ psubusw 0x45,%xmm5
+
+// CHECK: psubusw 32493, %xmm5
+ psubusw 0x7eed,%xmm5
+
+// CHECK: psubusw 3133065982, %xmm5
+ psubusw 0xbabecafe,%xmm5
+
+// CHECK: psubusw 305419896, %xmm5
+ psubusw 0x12345678,%xmm5
+
+// CHECK: psubusw %xmm5, %xmm5
+ psubusw %xmm5,%xmm5
+
+// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %mm3
+ punpckhbw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: punpckhbw 69, %mm3
+ punpckhbw 0x45,%mm3
+
+// CHECK: punpckhbw 32493, %mm3
+ punpckhbw 0x7eed,%mm3
+
+// CHECK: punpckhbw 3133065982, %mm3
+ punpckhbw 0xbabecafe,%mm3
+
+// CHECK: punpckhbw 305419896, %mm3
+ punpckhbw 0x12345678,%mm3
+
+// CHECK: punpckhbw %mm3, %mm3
+ punpckhbw %mm3,%mm3
+
+// CHECK: punpckhbw 3735928559(%ebx,%ecx,8), %xmm5
+ punpckhbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpckhbw 69, %xmm5
+ punpckhbw 0x45,%xmm5
+
+// CHECK: punpckhbw 32493, %xmm5
+ punpckhbw 0x7eed,%xmm5
+
+// CHECK: punpckhbw 3133065982, %xmm5
+ punpckhbw 0xbabecafe,%xmm5
+
+// CHECK: punpckhbw 305419896, %xmm5
+ punpckhbw 0x12345678,%xmm5
+
+// CHECK: punpckhbw %xmm5, %xmm5
+ punpckhbw %xmm5,%xmm5
+
+// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %mm3
+ punpckhwd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: punpckhwd 69, %mm3
+ punpckhwd 0x45,%mm3
+
+// CHECK: punpckhwd 32493, %mm3
+ punpckhwd 0x7eed,%mm3
+
+// CHECK: punpckhwd 3133065982, %mm3
+ punpckhwd 0xbabecafe,%mm3
+
+// CHECK: punpckhwd 305419896, %mm3
+ punpckhwd 0x12345678,%mm3
+
+// CHECK: punpckhwd %mm3, %mm3
+ punpckhwd %mm3,%mm3
+
+// CHECK: punpckhwd 3735928559(%ebx,%ecx,8), %xmm5
+ punpckhwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpckhwd 69, %xmm5
+ punpckhwd 0x45,%xmm5
+
+// CHECK: punpckhwd 32493, %xmm5
+ punpckhwd 0x7eed,%xmm5
+
+// CHECK: punpckhwd 3133065982, %xmm5
+ punpckhwd 0xbabecafe,%xmm5
+
+// CHECK: punpckhwd 305419896, %xmm5
+ punpckhwd 0x12345678,%xmm5
+
+// CHECK: punpckhwd %xmm5, %xmm5
+ punpckhwd %xmm5,%xmm5
+
+// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %mm3
+ punpckhdq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: punpckhdq 69, %mm3
+ punpckhdq 0x45,%mm3
+
+// CHECK: punpckhdq 32493, %mm3
+ punpckhdq 0x7eed,%mm3
+
+// CHECK: punpckhdq 3133065982, %mm3
+ punpckhdq 0xbabecafe,%mm3
+
+// CHECK: punpckhdq 305419896, %mm3
+ punpckhdq 0x12345678,%mm3
+
+// CHECK: punpckhdq %mm3, %mm3
+ punpckhdq %mm3,%mm3
+
+// CHECK: punpckhdq 3735928559(%ebx,%ecx,8), %xmm5
+ punpckhdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpckhdq 69, %xmm5
+ punpckhdq 0x45,%xmm5
+
+// CHECK: punpckhdq 32493, %xmm5
+ punpckhdq 0x7eed,%xmm5
+
+// CHECK: punpckhdq 3133065982, %xmm5
+ punpckhdq 0xbabecafe,%xmm5
+
+// CHECK: punpckhdq 305419896, %xmm5
+ punpckhdq 0x12345678,%xmm5
+
+// CHECK: punpckhdq %xmm5, %xmm5
+ punpckhdq %xmm5,%xmm5
+
+// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %mm3
+ punpcklbw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: punpcklbw 69, %mm3
+ punpcklbw 0x45,%mm3
+
+// CHECK: punpcklbw 32493, %mm3
+ punpcklbw 0x7eed,%mm3
+
+// CHECK: punpcklbw 3133065982, %mm3
+ punpcklbw 0xbabecafe,%mm3
+
+// CHECK: punpcklbw 305419896, %mm3
+ punpcklbw 0x12345678,%mm3
+
+// CHECK: punpcklbw %mm3, %mm3
+ punpcklbw %mm3,%mm3
+
+// CHECK: punpcklbw 3735928559(%ebx,%ecx,8), %xmm5
+ punpcklbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpcklbw 69, %xmm5
+ punpcklbw 0x45,%xmm5
+
+// CHECK: punpcklbw 32493, %xmm5
+ punpcklbw 0x7eed,%xmm5
+
+// CHECK: punpcklbw 3133065982, %xmm5
+ punpcklbw 0xbabecafe,%xmm5
+
+// CHECK: punpcklbw 305419896, %xmm5
+ punpcklbw 0x12345678,%xmm5
+
+// CHECK: punpcklbw %xmm5, %xmm5
+ punpcklbw %xmm5,%xmm5
+
+// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %mm3
+ punpcklwd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: punpcklwd 69, %mm3
+ punpcklwd 0x45,%mm3
+
+// CHECK: punpcklwd 32493, %mm3
+ punpcklwd 0x7eed,%mm3
+
+// CHECK: punpcklwd 3133065982, %mm3
+ punpcklwd 0xbabecafe,%mm3
+
+// CHECK: punpcklwd 305419896, %mm3
+ punpcklwd 0x12345678,%mm3
+
+// CHECK: punpcklwd %mm3, %mm3
+ punpcklwd %mm3,%mm3
+
+// CHECK: punpcklwd 3735928559(%ebx,%ecx,8), %xmm5
+ punpcklwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpcklwd 69, %xmm5
+ punpcklwd 0x45,%xmm5
+
+// CHECK: punpcklwd 32493, %xmm5
+ punpcklwd 0x7eed,%xmm5
+
+// CHECK: punpcklwd 3133065982, %xmm5
+ punpcklwd 0xbabecafe,%xmm5
+
+// CHECK: punpcklwd 305419896, %xmm5
+ punpcklwd 0x12345678,%xmm5
+
+// CHECK: punpcklwd %xmm5, %xmm5
+ punpcklwd %xmm5,%xmm5
+
+// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %mm3
+ punpckldq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: punpckldq 69, %mm3
+ punpckldq 0x45,%mm3
+
+// CHECK: punpckldq 32493, %mm3
+ punpckldq 0x7eed,%mm3
+
+// CHECK: punpckldq 3133065982, %mm3
+ punpckldq 0xbabecafe,%mm3
+
+// CHECK: punpckldq 305419896, %mm3
+ punpckldq 0x12345678,%mm3
+
+// CHECK: punpckldq %mm3, %mm3
+ punpckldq %mm3,%mm3
+
+// CHECK: punpckldq 3735928559(%ebx,%ecx,8), %xmm5
+ punpckldq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpckldq 69, %xmm5
+ punpckldq 0x45,%xmm5
+
+// CHECK: punpckldq 32493, %xmm5
+ punpckldq 0x7eed,%xmm5
+
+// CHECK: punpckldq 3133065982, %xmm5
+ punpckldq 0xbabecafe,%xmm5
+
+// CHECK: punpckldq 305419896, %xmm5
+ punpckldq 0x12345678,%xmm5
+
+// CHECK: punpckldq %xmm5, %xmm5
+ punpckldq %xmm5,%xmm5
+
+// CHECK: pxor 3735928559(%ebx,%ecx,8), %mm3
+ pxor 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pxor 69, %mm3
+ pxor 0x45,%mm3
+
+// CHECK: pxor 32493, %mm3
+ pxor 0x7eed,%mm3
+
+// CHECK: pxor 3133065982, %mm3
+ pxor 0xbabecafe,%mm3
+
+// CHECK: pxor 305419896, %mm3
+ pxor 0x12345678,%mm3
+
+// CHECK: pxor %mm3, %mm3
+ pxor %mm3,%mm3
+
+// CHECK: pxor 3735928559(%ebx,%ecx,8), %xmm5
+ pxor 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pxor 69, %xmm5
+ pxor 0x45,%xmm5
+
+// CHECK: pxor 32493, %xmm5
+ pxor 0x7eed,%xmm5
+
+// CHECK: pxor 3133065982, %xmm5
+ pxor 0xbabecafe,%xmm5
+
+// CHECK: pxor 305419896, %xmm5
+ pxor 0x12345678,%xmm5
+
+// CHECK: pxor %xmm5, %xmm5
+ pxor %xmm5,%xmm5
+
+// CHECK: addps 3735928559(%ebx,%ecx,8), %xmm5
+ addps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: addps 69, %xmm5
+ addps 0x45,%xmm5
+
+// CHECK: addps 32493, %xmm5
+ addps 0x7eed,%xmm5
+
+// CHECK: addps 3133065982, %xmm5
+ addps 0xbabecafe,%xmm5
+
+// CHECK: addps 305419896, %xmm5
+ addps 0x12345678,%xmm5
+
+// CHECK: addps %xmm5, %xmm5
+ addps %xmm5,%xmm5
+
+// CHECK: addss 3735928559(%ebx,%ecx,8), %xmm5
+ addss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: addss 69, %xmm5
+ addss 0x45,%xmm5
+
+// CHECK: addss 32493, %xmm5
+ addss 0x7eed,%xmm5
+
+// CHECK: addss 3133065982, %xmm5
+ addss 0xbabecafe,%xmm5
+
+// CHECK: addss 305419896, %xmm5
+ addss 0x12345678,%xmm5
+
+// CHECK: addss %xmm5, %xmm5
+ addss %xmm5,%xmm5
+
+// CHECK: andnps 3735928559(%ebx,%ecx,8), %xmm5
+ andnps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: andnps 69, %xmm5
+ andnps 0x45,%xmm5
+
+// CHECK: andnps 32493, %xmm5
+ andnps 0x7eed,%xmm5
+
+// CHECK: andnps 3133065982, %xmm5
+ andnps 0xbabecafe,%xmm5
+
+// CHECK: andnps 305419896, %xmm5
+ andnps 0x12345678,%xmm5
+
+// CHECK: andnps %xmm5, %xmm5
+ andnps %xmm5,%xmm5
+
+// CHECK: andps 3735928559(%ebx,%ecx,8), %xmm5
+ andps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: andps 69, %xmm5
+ andps 0x45,%xmm5
+
+// CHECK: andps 32493, %xmm5
+ andps 0x7eed,%xmm5
+
+// CHECK: andps 3133065982, %xmm5
+ andps 0xbabecafe,%xmm5
+
+// CHECK: andps 305419896, %xmm5
+ andps 0x12345678,%xmm5
+
+// CHECK: andps %xmm5, %xmm5
+ andps %xmm5,%xmm5
+
+// CHECK: comiss 3735928559(%ebx,%ecx,8), %xmm5
+ comiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: comiss 69, %xmm5
+ comiss 0x45,%xmm5
+
+// CHECK: comiss 32493, %xmm5
+ comiss 0x7eed,%xmm5
+
+// CHECK: comiss 3133065982, %xmm5
+ comiss 0xbabecafe,%xmm5
+
+// CHECK: comiss 305419896, %xmm5
+ comiss 0x12345678,%xmm5
+
+// CHECK: comiss %xmm5, %xmm5
+ comiss %xmm5,%xmm5
+
+// CHECK: cvtpi2ps 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpi2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpi2ps 69, %xmm5
+ cvtpi2ps 0x45,%xmm5
+
+// CHECK: cvtpi2ps 32493, %xmm5
+ cvtpi2ps 0x7eed,%xmm5
+
+// CHECK: cvtpi2ps 3133065982, %xmm5
+ cvtpi2ps 0xbabecafe,%xmm5
+
+// CHECK: cvtpi2ps 305419896, %xmm5
+ cvtpi2ps 0x12345678,%xmm5
+
+// CHECK: cvtpi2ps %mm3, %xmm5
+ cvtpi2ps %mm3,%xmm5
+
+// CHECK: cvtps2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvtps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvtps2pi 69, %mm3
+ cvtps2pi 0x45,%mm3
+
+// CHECK: cvtps2pi 32493, %mm3
+ cvtps2pi 0x7eed,%mm3
+
+// CHECK: cvtps2pi 3133065982, %mm3
+ cvtps2pi 0xbabecafe,%mm3
+
+// CHECK: cvtps2pi 305419896, %mm3
+ cvtps2pi 0x12345678,%mm3
+
+// CHECK: cvtps2pi %xmm5, %mm3
+ cvtps2pi %xmm5,%mm3
+
+// CHECK: cvtsi2ss %ecx, %xmm5
+ cvtsi2ss %ecx,%xmm5
+
+// CHECK: cvtsi2ss 3735928559(%ebx,%ecx,8), %xmm5
+ cvtsi2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtsi2ss 69, %xmm5
+ cvtsi2ss 0x45,%xmm5
+
+// CHECK: cvtsi2ss 32493, %xmm5
+ cvtsi2ss 0x7eed,%xmm5
+
+// CHECK: cvtsi2ss 3133065982, %xmm5
+ cvtsi2ss 0xbabecafe,%xmm5
+
+// CHECK: cvtsi2ss 305419896, %xmm5
+ cvtsi2ss 0x12345678,%xmm5
+
+// CHECK: cvttps2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvttps2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvttps2pi 69, %mm3
+ cvttps2pi 0x45,%mm3
+
+// CHECK: cvttps2pi 32493, %mm3
+ cvttps2pi 0x7eed,%mm3
+
+// CHECK: cvttps2pi 3133065982, %mm3
+ cvttps2pi 0xbabecafe,%mm3
+
+// CHECK: cvttps2pi 305419896, %mm3
+ cvttps2pi 0x12345678,%mm3
+
+// CHECK: cvttps2pi %xmm5, %mm3
+ cvttps2pi %xmm5,%mm3
+
+// CHECK: cvttss2si 3735928559(%ebx,%ecx,8), %ecx
+ cvttss2si 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: cvttss2si 69, %ecx
+ cvttss2si 0x45,%ecx
+
+// CHECK: cvttss2si 32493, %ecx
+ cvttss2si 0x7eed,%ecx
+
+// CHECK: cvttss2si 3133065982, %ecx
+ cvttss2si 0xbabecafe,%ecx
+
+// CHECK: cvttss2si 305419896, %ecx
+ cvttss2si 0x12345678,%ecx
+
+// CHECK: cvttss2si %xmm5, %ecx
+ cvttss2si %xmm5,%ecx
+
+// CHECK: divps 3735928559(%ebx,%ecx,8), %xmm5
+ divps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: divps 69, %xmm5
+ divps 0x45,%xmm5
+
+// CHECK: divps 32493, %xmm5
+ divps 0x7eed,%xmm5
+
+// CHECK: divps 3133065982, %xmm5
+ divps 0xbabecafe,%xmm5
+
+// CHECK: divps 305419896, %xmm5
+ divps 0x12345678,%xmm5
+
+// CHECK: divps %xmm5, %xmm5
+ divps %xmm5,%xmm5
+
+// CHECK: divss 3735928559(%ebx,%ecx,8), %xmm5
+ divss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: divss 69, %xmm5
+ divss 0x45,%xmm5
+
+// CHECK: divss 32493, %xmm5
+ divss 0x7eed,%xmm5
+
+// CHECK: divss 3133065982, %xmm5
+ divss 0xbabecafe,%xmm5
+
+// CHECK: divss 305419896, %xmm5
+ divss 0x12345678,%xmm5
+
+// CHECK: divss %xmm5, %xmm5
+ divss %xmm5,%xmm5
+
+// CHECK: ldmxcsr 3735928559(%ebx,%ecx,8)
+ ldmxcsr 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: ldmxcsr 32493
+ ldmxcsr 0x7eed
+
+// CHECK: ldmxcsr 3133065982
+ ldmxcsr 0xbabecafe
+
+// CHECK: ldmxcsr 305419896
+ ldmxcsr 0x12345678
+
+// CHECK: maskmovq %mm3, %mm3
+ maskmovq %mm3,%mm3
+
+// CHECK: maxps 3735928559(%ebx,%ecx,8), %xmm5
+ maxps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: maxps 69, %xmm5
+ maxps 0x45,%xmm5
+
+// CHECK: maxps 32493, %xmm5
+ maxps 0x7eed,%xmm5
+
+// CHECK: maxps 3133065982, %xmm5
+ maxps 0xbabecafe,%xmm5
+
+// CHECK: maxps 305419896, %xmm5
+ maxps 0x12345678,%xmm5
+
+// CHECK: maxps %xmm5, %xmm5
+ maxps %xmm5,%xmm5
+
+// CHECK: maxss 3735928559(%ebx,%ecx,8), %xmm5
+ maxss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: maxss 69, %xmm5
+ maxss 0x45,%xmm5
+
+// CHECK: maxss 32493, %xmm5
+ maxss 0x7eed,%xmm5
+
+// CHECK: maxss 3133065982, %xmm5
+ maxss 0xbabecafe,%xmm5
+
+// CHECK: maxss 305419896, %xmm5
+ maxss 0x12345678,%xmm5
+
+// CHECK: maxss %xmm5, %xmm5
+ maxss %xmm5,%xmm5
+
+// CHECK: minps 3735928559(%ebx,%ecx,8), %xmm5
+ minps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: minps 69, %xmm5
+ minps 0x45,%xmm5
+
+// CHECK: minps 32493, %xmm5
+ minps 0x7eed,%xmm5
+
+// CHECK: minps 3133065982, %xmm5
+ minps 0xbabecafe,%xmm5
+
+// CHECK: minps 305419896, %xmm5
+ minps 0x12345678,%xmm5
+
+// CHECK: minps %xmm5, %xmm5
+ minps %xmm5,%xmm5
+
+// CHECK: minss 3735928559(%ebx,%ecx,8), %xmm5
+ minss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: minss 69, %xmm5
+ minss 0x45,%xmm5
+
+// CHECK: minss 32493, %xmm5
+ minss 0x7eed,%xmm5
+
+// CHECK: minss 3133065982, %xmm5
+ minss 0xbabecafe,%xmm5
+
+// CHECK: minss 305419896, %xmm5
+ minss 0x12345678,%xmm5
+
+// CHECK: minss %xmm5, %xmm5
+ minss %xmm5,%xmm5
+
+// CHECK: movaps 3735928559(%ebx,%ecx,8), %xmm5
+ movaps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movaps 69, %xmm5
+ movaps 0x45,%xmm5
+
+// CHECK: movaps 32493, %xmm5
+ movaps 0x7eed,%xmm5
+
+// CHECK: movaps 3133065982, %xmm5
+ movaps 0xbabecafe,%xmm5
+
+// CHECK: movaps 305419896, %xmm5
+ movaps 0x12345678,%xmm5
+
+// CHECK: movaps %xmm5, %xmm5
+ movaps %xmm5,%xmm5
+
+// CHECK: movaps %xmm5, 3735928559(%ebx,%ecx,8)
+ movaps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movaps %xmm5, 69
+ movaps %xmm5,0x45
+
+// CHECK: movaps %xmm5, 32493
+ movaps %xmm5,0x7eed
+
+// CHECK: movaps %xmm5, 3133065982
+ movaps %xmm5,0xbabecafe
+
+// CHECK: movaps %xmm5, 305419896
+ movaps %xmm5,0x12345678
+
+// CHECK: movaps %xmm5, %xmm5
+ movaps %xmm5,%xmm5
+
+// CHECK: movhlps %xmm5, %xmm5
+ movhlps %xmm5,%xmm5
+
+// CHECK: movhps 3735928559(%ebx,%ecx,8), %xmm5
+ movhps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movhps 69, %xmm5
+ movhps 0x45,%xmm5
+
+// CHECK: movhps 32493, %xmm5
+ movhps 0x7eed,%xmm5
+
+// CHECK: movhps 3133065982, %xmm5
+ movhps 0xbabecafe,%xmm5
+
+// CHECK: movhps 305419896, %xmm5
+ movhps 0x12345678,%xmm5
+
+// CHECK: movhps %xmm5, 3735928559(%ebx,%ecx,8)
+ movhps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movhps %xmm5, 69
+ movhps %xmm5,0x45
+
+// CHECK: movhps %xmm5, 32493
+ movhps %xmm5,0x7eed
+
+// CHECK: movhps %xmm5, 3133065982
+ movhps %xmm5,0xbabecafe
+
+// CHECK: movhps %xmm5, 305419896
+ movhps %xmm5,0x12345678
+
+// CHECK: movlhps %xmm5, %xmm5
+ movlhps %xmm5,%xmm5
+
+// CHECK: movlps 3735928559(%ebx,%ecx,8), %xmm5
+ movlps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movlps 69, %xmm5
+ movlps 0x45,%xmm5
+
+// CHECK: movlps 32493, %xmm5
+ movlps 0x7eed,%xmm5
+
+// CHECK: movlps 3133065982, %xmm5
+ movlps 0xbabecafe,%xmm5
+
+// CHECK: movlps 305419896, %xmm5
+ movlps 0x12345678,%xmm5
+
+// CHECK: movlps %xmm5, 3735928559(%ebx,%ecx,8)
+ movlps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movlps %xmm5, 69
+ movlps %xmm5,0x45
+
+// CHECK: movlps %xmm5, 32493
+ movlps %xmm5,0x7eed
+
+// CHECK: movlps %xmm5, 3133065982
+ movlps %xmm5,0xbabecafe
+
+// CHECK: movlps %xmm5, 305419896
+ movlps %xmm5,0x12345678
+
+// CHECK: movmskps %xmm5, %ecx
+ movmskps %xmm5,%ecx
+
+// CHECK: movntps %xmm5, 3735928559(%ebx,%ecx,8)
+ movntps %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movntps %xmm5, 69
+ movntps %xmm5,0x45
+
+// CHECK: movntps %xmm5, 32493
+ movntps %xmm5,0x7eed
+
+// CHECK: movntps %xmm5, 3133065982
+ movntps %xmm5,0xbabecafe
+
+// CHECK: movntps %xmm5, 305419896
+ movntps %xmm5,0x12345678
+
+// CHECK: movntq %mm3, 3735928559(%ebx,%ecx,8)
+ movntq %mm3,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movntq %mm3, 69
+ movntq %mm3,0x45
+
+// CHECK: movntq %mm3, 32493
+ movntq %mm3,0x7eed
+
+// CHECK: movntq %mm3, 3133065982
+ movntq %mm3,0xbabecafe
+
+// CHECK: movntq %mm3, 305419896
+ movntq %mm3,0x12345678
+
+// CHECK: movntdq %xmm5, 3735928559(%ebx,%ecx,8)
+ movntdq %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movntdq %xmm5, 69
+ movntdq %xmm5,0x45
+
+// CHECK: movntdq %xmm5, 32493
+ movntdq %xmm5,0x7eed
+
+// CHECK: movntdq %xmm5, 3133065982
+ movntdq %xmm5,0xbabecafe
+
+// CHECK: movntdq %xmm5, 305419896
+ movntdq %xmm5,0x12345678
+
+// CHECK: movss 3735928559(%ebx,%ecx,8), %xmm5
+ movss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movss 69, %xmm5
+ movss 0x45,%xmm5
+
+// CHECK: movss 32493, %xmm5
+ movss 0x7eed,%xmm5
+
+// CHECK: movss 3133065982, %xmm5
+ movss 0xbabecafe,%xmm5
+
+// CHECK: movss 305419896, %xmm5
+ movss 0x12345678,%xmm5
+
+// CHECK: movss %xmm5, %xmm5
+ movss %xmm5,%xmm5
+
+// CHECK: movss %xmm5, 3735928559(%ebx,%ecx,8)
+ movss %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movss %xmm5, 69
+ movss %xmm5,0x45
+
+// CHECK: movss %xmm5, 32493
+ movss %xmm5,0x7eed
+
+// CHECK: movss %xmm5, 3133065982
+ movss %xmm5,0xbabecafe
+
+// CHECK: movss %xmm5, 305419896
+ movss %xmm5,0x12345678
+
+// CHECK: movss %xmm5, %xmm5
+ movss %xmm5,%xmm5
+
+// CHECK: movups 3735928559(%ebx,%ecx,8), %xmm5
+ movups 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movups 69, %xmm5
+ movups 0x45,%xmm5
+
+// CHECK: movups 32493, %xmm5
+ movups 0x7eed,%xmm5
+
+// CHECK: movups 3133065982, %xmm5
+ movups 0xbabecafe,%xmm5
+
+// CHECK: movups 305419896, %xmm5
+ movups 0x12345678,%xmm5
+
+// CHECK: movups %xmm5, %xmm5
+ movups %xmm5,%xmm5
+
+// CHECK: movups %xmm5, 3735928559(%ebx,%ecx,8)
+ movups %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movups %xmm5, 69
+ movups %xmm5,0x45
+
+// CHECK: movups %xmm5, 32493
+ movups %xmm5,0x7eed
+
+// CHECK: movups %xmm5, 3133065982
+ movups %xmm5,0xbabecafe
+
+// CHECK: movups %xmm5, 305419896
+ movups %xmm5,0x12345678
+
+// CHECK: movups %xmm5, %xmm5
+ movups %xmm5,%xmm5
+
+// CHECK: mulps 3735928559(%ebx,%ecx,8), %xmm5
+ mulps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: mulps 69, %xmm5
+ mulps 0x45,%xmm5
+
+// CHECK: mulps 32493, %xmm5
+ mulps 0x7eed,%xmm5
+
+// CHECK: mulps 3133065982, %xmm5
+ mulps 0xbabecafe,%xmm5
+
+// CHECK: mulps 305419896, %xmm5
+ mulps 0x12345678,%xmm5
+
+// CHECK: mulps %xmm5, %xmm5
+ mulps %xmm5,%xmm5
+
+// CHECK: mulss 3735928559(%ebx,%ecx,8), %xmm5
+ mulss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: mulss 69, %xmm5
+ mulss 0x45,%xmm5
+
+// CHECK: mulss 32493, %xmm5
+ mulss 0x7eed,%xmm5
+
+// CHECK: mulss 3133065982, %xmm5
+ mulss 0xbabecafe,%xmm5
+
+// CHECK: mulss 305419896, %xmm5
+ mulss 0x12345678,%xmm5
+
+// CHECK: mulss %xmm5, %xmm5
+ mulss %xmm5,%xmm5
+
+// CHECK: orps 3735928559(%ebx,%ecx,8), %xmm5
+ orps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: orps 69, %xmm5
+ orps 0x45,%xmm5
+
+// CHECK: orps 32493, %xmm5
+ orps 0x7eed,%xmm5
+
+// CHECK: orps 3133065982, %xmm5
+ orps 0xbabecafe,%xmm5
+
+// CHECK: orps 305419896, %xmm5
+ orps 0x12345678,%xmm5
+
+// CHECK: orps %xmm5, %xmm5
+ orps %xmm5,%xmm5
+
+// CHECK: pavgb 3735928559(%ebx,%ecx,8), %mm3
+ pavgb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pavgb 69, %mm3
+ pavgb 0x45,%mm3
+
+// CHECK: pavgb 32493, %mm3
+ pavgb 0x7eed,%mm3
+
+// CHECK: pavgb 3133065982, %mm3
+ pavgb 0xbabecafe,%mm3
+
+// CHECK: pavgb 305419896, %mm3
+ pavgb 0x12345678,%mm3
+
+// CHECK: pavgb %mm3, %mm3
+ pavgb %mm3,%mm3
+
+// CHECK: pavgb 3735928559(%ebx,%ecx,8), %xmm5
+ pavgb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pavgb 69, %xmm5
+ pavgb 0x45,%xmm5
+
+// CHECK: pavgb 32493, %xmm5
+ pavgb 0x7eed,%xmm5
+
+// CHECK: pavgb 3133065982, %xmm5
+ pavgb 0xbabecafe,%xmm5
+
+// CHECK: pavgb 305419896, %xmm5
+ pavgb 0x12345678,%xmm5
+
+// CHECK: pavgb %xmm5, %xmm5
+ pavgb %xmm5,%xmm5
+
+// CHECK: pavgw 3735928559(%ebx,%ecx,8), %mm3
+ pavgw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pavgw 69, %mm3
+ pavgw 0x45,%mm3
+
+// CHECK: pavgw 32493, %mm3
+ pavgw 0x7eed,%mm3
+
+// CHECK: pavgw 3133065982, %mm3
+ pavgw 0xbabecafe,%mm3
+
+// CHECK: pavgw 305419896, %mm3
+ pavgw 0x12345678,%mm3
+
+// CHECK: pavgw %mm3, %mm3
+ pavgw %mm3,%mm3
+
+// CHECK: pavgw 3735928559(%ebx,%ecx,8), %xmm5
+ pavgw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pavgw 69, %xmm5
+ pavgw 0x45,%xmm5
+
+// CHECK: pavgw 32493, %xmm5
+ pavgw 0x7eed,%xmm5
+
+// CHECK: pavgw 3133065982, %xmm5
+ pavgw 0xbabecafe,%xmm5
+
+// CHECK: pavgw 305419896, %xmm5
+ pavgw 0x12345678,%xmm5
+
+// CHECK: pavgw %xmm5, %xmm5
+ pavgw %xmm5,%xmm5
+
+// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %mm3
+ pmaxsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmaxsw 69, %mm3
+ pmaxsw 0x45,%mm3
+
+// CHECK: pmaxsw 32493, %mm3
+ pmaxsw 0x7eed,%mm3
+
+// CHECK: pmaxsw 3133065982, %mm3
+ pmaxsw 0xbabecafe,%mm3
+
+// CHECK: pmaxsw 305419896, %mm3
+ pmaxsw 0x12345678,%mm3
+
+// CHECK: pmaxsw %mm3, %mm3
+ pmaxsw %mm3,%mm3
+
+// CHECK: pmaxsw 3735928559(%ebx,%ecx,8), %xmm5
+ pmaxsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaxsw 69, %xmm5
+ pmaxsw 0x45,%xmm5
+
+// CHECK: pmaxsw 32493, %xmm5
+ pmaxsw 0x7eed,%xmm5
+
+// CHECK: pmaxsw 3133065982, %xmm5
+ pmaxsw 0xbabecafe,%xmm5
+
+// CHECK: pmaxsw 305419896, %xmm5
+ pmaxsw 0x12345678,%xmm5
+
+// CHECK: pmaxsw %xmm5, %xmm5
+ pmaxsw %xmm5,%xmm5
+
+// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %mm3
+ pmaxub 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmaxub 69, %mm3
+ pmaxub 0x45,%mm3
+
+// CHECK: pmaxub 32493, %mm3
+ pmaxub 0x7eed,%mm3
+
+// CHECK: pmaxub 3133065982, %mm3
+ pmaxub 0xbabecafe,%mm3
+
+// CHECK: pmaxub 305419896, %mm3
+ pmaxub 0x12345678,%mm3
+
+// CHECK: pmaxub %mm3, %mm3
+ pmaxub %mm3,%mm3
+
+// CHECK: pmaxub 3735928559(%ebx,%ecx,8), %xmm5
+ pmaxub 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaxub 69, %xmm5
+ pmaxub 0x45,%xmm5
+
+// CHECK: pmaxub 32493, %xmm5
+ pmaxub 0x7eed,%xmm5
+
+// CHECK: pmaxub 3133065982, %xmm5
+ pmaxub 0xbabecafe,%xmm5
+
+// CHECK: pmaxub 305419896, %xmm5
+ pmaxub 0x12345678,%xmm5
+
+// CHECK: pmaxub %xmm5, %xmm5
+ pmaxub %xmm5,%xmm5
+
+// CHECK: pminsw 3735928559(%ebx,%ecx,8), %mm3
+ pminsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pminsw 69, %mm3
+ pminsw 0x45,%mm3
+
+// CHECK: pminsw 32493, %mm3
+ pminsw 0x7eed,%mm3
+
+// CHECK: pminsw 3133065982, %mm3
+ pminsw 0xbabecafe,%mm3
+
+// CHECK: pminsw 305419896, %mm3
+ pminsw 0x12345678,%mm3
+
+// CHECK: pminsw %mm3, %mm3
+ pminsw %mm3,%mm3
+
+// CHECK: pminsw 3735928559(%ebx,%ecx,8), %xmm5
+ pminsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pminsw 69, %xmm5
+ pminsw 0x45,%xmm5
+
+// CHECK: pminsw 32493, %xmm5
+ pminsw 0x7eed,%xmm5
+
+// CHECK: pminsw 3133065982, %xmm5
+ pminsw 0xbabecafe,%xmm5
+
+// CHECK: pminsw 305419896, %xmm5
+ pminsw 0x12345678,%xmm5
+
+// CHECK: pminsw %xmm5, %xmm5
+ pminsw %xmm5,%xmm5
+
+// CHECK: pminub 3735928559(%ebx,%ecx,8), %mm3
+ pminub 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pminub 69, %mm3
+ pminub 0x45,%mm3
+
+// CHECK: pminub 32493, %mm3
+ pminub 0x7eed,%mm3
+
+// CHECK: pminub 3133065982, %mm3
+ pminub 0xbabecafe,%mm3
+
+// CHECK: pminub 305419896, %mm3
+ pminub 0x12345678,%mm3
+
+// CHECK: pminub %mm3, %mm3
+ pminub %mm3,%mm3
+
+// CHECK: pminub 3735928559(%ebx,%ecx,8), %xmm5
+ pminub 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pminub 69, %xmm5
+ pminub 0x45,%xmm5
+
+// CHECK: pminub 32493, %xmm5
+ pminub 0x7eed,%xmm5
+
+// CHECK: pminub 3133065982, %xmm5
+ pminub 0xbabecafe,%xmm5
+
+// CHECK: pminub 305419896, %xmm5
+ pminub 0x12345678,%xmm5
+
+// CHECK: pminub %xmm5, %xmm5
+ pminub %xmm5,%xmm5
+
+// CHECK: pmovmskb %mm3, %ecx
+ pmovmskb %mm3,%ecx
+
+// CHECK: pmovmskb %xmm5, %ecx
+ pmovmskb %xmm5,%ecx
+
+// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %mm3
+ pmulhuw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmulhuw 69, %mm3
+ pmulhuw 0x45,%mm3
+
+// CHECK: pmulhuw 32493, %mm3
+ pmulhuw 0x7eed,%mm3
+
+// CHECK: pmulhuw 3133065982, %mm3
+ pmulhuw 0xbabecafe,%mm3
+
+// CHECK: pmulhuw 305419896, %mm3
+ pmulhuw 0x12345678,%mm3
+
+// CHECK: pmulhuw %mm3, %mm3
+ pmulhuw %mm3,%mm3
+
+// CHECK: pmulhuw 3735928559(%ebx,%ecx,8), %xmm5
+ pmulhuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmulhuw 69, %xmm5
+ pmulhuw 0x45,%xmm5
+
+// CHECK: pmulhuw 32493, %xmm5
+ pmulhuw 0x7eed,%xmm5
+
+// CHECK: pmulhuw 3133065982, %xmm5
+ pmulhuw 0xbabecafe,%xmm5
+
+// CHECK: pmulhuw 305419896, %xmm5
+ pmulhuw 0x12345678,%xmm5
+
+// CHECK: pmulhuw %xmm5, %xmm5
+ pmulhuw %xmm5,%xmm5
+
+// CHECK: prefetchnta 3735928559(%ebx,%ecx,8)
+ prefetchnta 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetchnta 32493
+ prefetchnta 0x7eed
+
+// CHECK: prefetchnta 3133065982
+ prefetchnta 0xbabecafe
+
+// CHECK: prefetchnta 305419896
+ prefetchnta 0x12345678
+
+// CHECK: prefetcht0 3735928559(%ebx,%ecx,8)
+ prefetcht0 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetcht0 32493
+ prefetcht0 0x7eed
+
+// CHECK: prefetcht0 3133065982
+ prefetcht0 0xbabecafe
+
+// CHECK: prefetcht0 305419896
+ prefetcht0 0x12345678
+
+// CHECK: prefetcht1 3735928559(%ebx,%ecx,8)
+ prefetcht1 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetcht1 32493
+ prefetcht1 0x7eed
+
+// CHECK: prefetcht1 3133065982
+ prefetcht1 0xbabecafe
+
+// CHECK: prefetcht1 305419896
+ prefetcht1 0x12345678
+
+// CHECK: prefetcht2 3735928559(%ebx,%ecx,8)
+ prefetcht2 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: prefetcht2 32493
+ prefetcht2 0x7eed
+
+// CHECK: prefetcht2 3133065982
+ prefetcht2 0xbabecafe
+
+// CHECK: prefetcht2 305419896
+ prefetcht2 0x12345678
+
+// CHECK: psadbw 3735928559(%ebx,%ecx,8), %mm3
+ psadbw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psadbw 69, %mm3
+ psadbw 0x45,%mm3
+
+// CHECK: psadbw 32493, %mm3
+ psadbw 0x7eed,%mm3
+
+// CHECK: psadbw 3133065982, %mm3
+ psadbw 0xbabecafe,%mm3
+
+// CHECK: psadbw 305419896, %mm3
+ psadbw 0x12345678,%mm3
+
+// CHECK: psadbw %mm3, %mm3
+ psadbw %mm3,%mm3
+
+// CHECK: psadbw 3735928559(%ebx,%ecx,8), %xmm5
+ psadbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psadbw 69, %xmm5
+ psadbw 0x45,%xmm5
+
+// CHECK: psadbw 32493, %xmm5
+ psadbw 0x7eed,%xmm5
+
+// CHECK: psadbw 3133065982, %xmm5
+ psadbw 0xbabecafe,%xmm5
+
+// CHECK: psadbw 305419896, %xmm5
+ psadbw 0x12345678,%xmm5
+
+// CHECK: psadbw %xmm5, %xmm5
+ psadbw %xmm5,%xmm5
+
+// CHECK: rcpps 3735928559(%ebx,%ecx,8), %xmm5
+ rcpps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rcpps 69, %xmm5
+ rcpps 0x45,%xmm5
+
+// CHECK: rcpps 32493, %xmm5
+ rcpps 0x7eed,%xmm5
+
+// CHECK: rcpps 3133065982, %xmm5
+ rcpps 0xbabecafe,%xmm5
+
+// CHECK: rcpps 305419896, %xmm5
+ rcpps 0x12345678,%xmm5
+
+// CHECK: rcpps %xmm5, %xmm5
+ rcpps %xmm5,%xmm5
+
+// CHECK: rcpss 3735928559(%ebx,%ecx,8), %xmm5
+ rcpss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rcpss 69, %xmm5
+ rcpss 0x45,%xmm5
+
+// CHECK: rcpss 32493, %xmm5
+ rcpss 0x7eed,%xmm5
+
+// CHECK: rcpss 3133065982, %xmm5
+ rcpss 0xbabecafe,%xmm5
+
+// CHECK: rcpss 305419896, %xmm5
+ rcpss 0x12345678,%xmm5
+
+// CHECK: rcpss %xmm5, %xmm5
+ rcpss %xmm5,%xmm5
+
+// CHECK: rsqrtps 3735928559(%ebx,%ecx,8), %xmm5
+ rsqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rsqrtps 69, %xmm5
+ rsqrtps 0x45,%xmm5
+
+// CHECK: rsqrtps 32493, %xmm5
+ rsqrtps 0x7eed,%xmm5
+
+// CHECK: rsqrtps 3133065982, %xmm5
+ rsqrtps 0xbabecafe,%xmm5
+
+// CHECK: rsqrtps 305419896, %xmm5
+ rsqrtps 0x12345678,%xmm5
+
+// CHECK: rsqrtps %xmm5, %xmm5
+ rsqrtps %xmm5,%xmm5
+
+// CHECK: rsqrtss 3735928559(%ebx,%ecx,8), %xmm5
+ rsqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: rsqrtss 69, %xmm5
+ rsqrtss 0x45,%xmm5
+
+// CHECK: rsqrtss 32493, %xmm5
+ rsqrtss 0x7eed,%xmm5
+
+// CHECK: rsqrtss 3133065982, %xmm5
+ rsqrtss 0xbabecafe,%xmm5
+
+// CHECK: rsqrtss 305419896, %xmm5
+ rsqrtss 0x12345678,%xmm5
+
+// CHECK: rsqrtss %xmm5, %xmm5
+ rsqrtss %xmm5,%xmm5
+
+// CHECK: sfence
+ sfence
+
+// CHECK: sqrtps 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtps 69, %xmm5
+ sqrtps 0x45,%xmm5
+
+// CHECK: sqrtps 32493, %xmm5
+ sqrtps 0x7eed,%xmm5
+
+// CHECK: sqrtps 3133065982, %xmm5
+ sqrtps 0xbabecafe,%xmm5
+
+// CHECK: sqrtps 305419896, %xmm5
+ sqrtps 0x12345678,%xmm5
+
+// CHECK: sqrtps %xmm5, %xmm5
+ sqrtps %xmm5,%xmm5
+
+// CHECK: sqrtss 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtss 69, %xmm5
+ sqrtss 0x45,%xmm5
+
+// CHECK: sqrtss 32493, %xmm5
+ sqrtss 0x7eed,%xmm5
+
+// CHECK: sqrtss 3133065982, %xmm5
+ sqrtss 0xbabecafe,%xmm5
+
+// CHECK: sqrtss 305419896, %xmm5
+ sqrtss 0x12345678,%xmm5
+
+// CHECK: sqrtss %xmm5, %xmm5
+ sqrtss %xmm5,%xmm5
+
+// CHECK: stmxcsr 3735928559(%ebx,%ecx,8)
+ stmxcsr 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: stmxcsr 32493
+ stmxcsr 0x7eed
+
+// CHECK: stmxcsr 3133065982
+ stmxcsr 0xbabecafe
+
+// CHECK: stmxcsr 305419896
+ stmxcsr 0x12345678
+
+// CHECK: subps 3735928559(%ebx,%ecx,8), %xmm5
+ subps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: subps 69, %xmm5
+ subps 0x45,%xmm5
+
+// CHECK: subps 32493, %xmm5
+ subps 0x7eed,%xmm5
+
+// CHECK: subps 3133065982, %xmm5
+ subps 0xbabecafe,%xmm5
+
+// CHECK: subps 305419896, %xmm5
+ subps 0x12345678,%xmm5
+
+// CHECK: subps %xmm5, %xmm5
+ subps %xmm5,%xmm5
+
+// CHECK: subss 3735928559(%ebx,%ecx,8), %xmm5
+ subss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: subss 69, %xmm5
+ subss 0x45,%xmm5
+
+// CHECK: subss 32493, %xmm5
+ subss 0x7eed,%xmm5
+
+// CHECK: subss 3133065982, %xmm5
+ subss 0xbabecafe,%xmm5
+
+// CHECK: subss 305419896, %xmm5
+ subss 0x12345678,%xmm5
+
+// CHECK: subss %xmm5, %xmm5
+ subss %xmm5,%xmm5
+
+// CHECK: ucomiss 3735928559(%ebx,%ecx,8), %xmm5
+ ucomiss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: ucomiss 69, %xmm5
+ ucomiss 0x45,%xmm5
+
+// CHECK: ucomiss 32493, %xmm5
+ ucomiss 0x7eed,%xmm5
+
+// CHECK: ucomiss 3133065982, %xmm5
+ ucomiss 0xbabecafe,%xmm5
+
+// CHECK: ucomiss 305419896, %xmm5
+ ucomiss 0x12345678,%xmm5
+
+// CHECK: ucomiss %xmm5, %xmm5
+ ucomiss %xmm5,%xmm5
+
+// CHECK: unpckhps 3735928559(%ebx,%ecx,8), %xmm5
+ unpckhps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: unpckhps 69, %xmm5
+ unpckhps 0x45,%xmm5
+
+// CHECK: unpckhps 32493, %xmm5
+ unpckhps 0x7eed,%xmm5
+
+// CHECK: unpckhps 3133065982, %xmm5
+ unpckhps 0xbabecafe,%xmm5
+
+// CHECK: unpckhps 305419896, %xmm5
+ unpckhps 0x12345678,%xmm5
+
+// CHECK: unpckhps %xmm5, %xmm5
+ unpckhps %xmm5,%xmm5
+
+// CHECK: unpcklps 3735928559(%ebx,%ecx,8), %xmm5
+ unpcklps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: unpcklps 69, %xmm5
+ unpcklps 0x45,%xmm5
+
+// CHECK: unpcklps 32493, %xmm5
+ unpcklps 0x7eed,%xmm5
+
+// CHECK: unpcklps 3133065982, %xmm5
+ unpcklps 0xbabecafe,%xmm5
+
+// CHECK: unpcklps 305419896, %xmm5
+ unpcklps 0x12345678,%xmm5
+
+// CHECK: unpcklps %xmm5, %xmm5
+ unpcklps %xmm5,%xmm5
+
+// CHECK: xorps 3735928559(%ebx,%ecx,8), %xmm5
+ xorps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: xorps 69, %xmm5
+ xorps 0x45,%xmm5
+
+// CHECK: xorps 32493, %xmm5
+ xorps 0x7eed,%xmm5
+
+// CHECK: xorps 3133065982, %xmm5
+ xorps 0xbabecafe,%xmm5
+
+// CHECK: xorps 305419896, %xmm5
+ xorps 0x12345678,%xmm5
+
+// CHECK: xorps %xmm5, %xmm5
+ xorps %xmm5,%xmm5
+
+// CHECK: addpd 3735928559(%ebx,%ecx,8), %xmm5
+ addpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: addpd 69, %xmm5
+ addpd 0x45,%xmm5
+
+// CHECK: addpd 32493, %xmm5
+ addpd 0x7eed,%xmm5
+
+// CHECK: addpd 3133065982, %xmm5
+ addpd 0xbabecafe,%xmm5
+
+// CHECK: addpd 305419896, %xmm5
+ addpd 0x12345678,%xmm5
+
+// CHECK: addpd %xmm5, %xmm5
+ addpd %xmm5,%xmm5
+
+// CHECK: addsd 3735928559(%ebx,%ecx,8), %xmm5
+ addsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: addsd 69, %xmm5
+ addsd 0x45,%xmm5
+
+// CHECK: addsd 32493, %xmm5
+ addsd 0x7eed,%xmm5
+
+// CHECK: addsd 3133065982, %xmm5
+ addsd 0xbabecafe,%xmm5
+
+// CHECK: addsd 305419896, %xmm5
+ addsd 0x12345678,%xmm5
+
+// CHECK: addsd %xmm5, %xmm5
+ addsd %xmm5,%xmm5
+
+// CHECK: andnpd 3735928559(%ebx,%ecx,8), %xmm5
+ andnpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: andnpd 69, %xmm5
+ andnpd 0x45,%xmm5
+
+// CHECK: andnpd 32493, %xmm5
+ andnpd 0x7eed,%xmm5
+
+// CHECK: andnpd 3133065982, %xmm5
+ andnpd 0xbabecafe,%xmm5
+
+// CHECK: andnpd 305419896, %xmm5
+ andnpd 0x12345678,%xmm5
+
+// CHECK: andnpd %xmm5, %xmm5
+ andnpd %xmm5,%xmm5
+
+// CHECK: andpd 3735928559(%ebx,%ecx,8), %xmm5
+ andpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: andpd 69, %xmm5
+ andpd 0x45,%xmm5
+
+// CHECK: andpd 32493, %xmm5
+ andpd 0x7eed,%xmm5
+
+// CHECK: andpd 3133065982, %xmm5
+ andpd 0xbabecafe,%xmm5
+
+// CHECK: andpd 305419896, %xmm5
+ andpd 0x12345678,%xmm5
+
+// CHECK: andpd %xmm5, %xmm5
+ andpd %xmm5,%xmm5
+
+// CHECK: comisd 3735928559(%ebx,%ecx,8), %xmm5
+ comisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: comisd 69, %xmm5
+ comisd 0x45,%xmm5
+
+// CHECK: comisd 32493, %xmm5
+ comisd 0x7eed,%xmm5
+
+// CHECK: comisd 3133065982, %xmm5
+ comisd 0xbabecafe,%xmm5
+
+// CHECK: comisd 305419896, %xmm5
+ comisd 0x12345678,%xmm5
+
+// CHECK: comisd %xmm5, %xmm5
+ comisd %xmm5,%xmm5
+
+// CHECK: cvtpi2pd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpi2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpi2pd 69, %xmm5
+ cvtpi2pd 0x45,%xmm5
+
+// CHECK: cvtpi2pd 32493, %xmm5
+ cvtpi2pd 0x7eed,%xmm5
+
+// CHECK: cvtpi2pd 3133065982, %xmm5
+ cvtpi2pd 0xbabecafe,%xmm5
+
+// CHECK: cvtpi2pd 305419896, %xmm5
+ cvtpi2pd 0x12345678,%xmm5
+
+// CHECK: cvtpi2pd %mm3, %xmm5
+ cvtpi2pd %mm3,%xmm5
+
+// CHECK: cvtsi2sd %ecx, %xmm5
+ cvtsi2sd %ecx,%xmm5
+
+// CHECK: cvtsi2sd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtsi2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtsi2sd 69, %xmm5
+ cvtsi2sd 0x45,%xmm5
+
+// CHECK: cvtsi2sd 32493, %xmm5
+ cvtsi2sd 0x7eed,%xmm5
+
+// CHECK: cvtsi2sd 3133065982, %xmm5
+ cvtsi2sd 0xbabecafe,%xmm5
+
+// CHECK: cvtsi2sd 305419896, %xmm5
+ cvtsi2sd 0x12345678,%xmm5
+
+// CHECK: divpd 3735928559(%ebx,%ecx,8), %xmm5
+ divpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: divpd 69, %xmm5
+ divpd 0x45,%xmm5
+
+// CHECK: divpd 32493, %xmm5
+ divpd 0x7eed,%xmm5
+
+// CHECK: divpd 3133065982, %xmm5
+ divpd 0xbabecafe,%xmm5
+
+// CHECK: divpd 305419896, %xmm5
+ divpd 0x12345678,%xmm5
+
+// CHECK: divpd %xmm5, %xmm5
+ divpd %xmm5,%xmm5
+
+// CHECK: divsd 3735928559(%ebx,%ecx,8), %xmm5
+ divsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: divsd 69, %xmm5
+ divsd 0x45,%xmm5
+
+// CHECK: divsd 32493, %xmm5
+ divsd 0x7eed,%xmm5
+
+// CHECK: divsd 3133065982, %xmm5
+ divsd 0xbabecafe,%xmm5
+
+// CHECK: divsd 305419896, %xmm5
+ divsd 0x12345678,%xmm5
+
+// CHECK: divsd %xmm5, %xmm5
+ divsd %xmm5,%xmm5
+
+// CHECK: maxpd 3735928559(%ebx,%ecx,8), %xmm5
+ maxpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: maxpd 69, %xmm5
+ maxpd 0x45,%xmm5
+
+// CHECK: maxpd 32493, %xmm5
+ maxpd 0x7eed,%xmm5
+
+// CHECK: maxpd 3133065982, %xmm5
+ maxpd 0xbabecafe,%xmm5
+
+// CHECK: maxpd 305419896, %xmm5
+ maxpd 0x12345678,%xmm5
+
+// CHECK: maxpd %xmm5, %xmm5
+ maxpd %xmm5,%xmm5
+
+// CHECK: maxsd 3735928559(%ebx,%ecx,8), %xmm5
+ maxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: maxsd 69, %xmm5
+ maxsd 0x45,%xmm5
+
+// CHECK: maxsd 32493, %xmm5
+ maxsd 0x7eed,%xmm5
+
+// CHECK: maxsd 3133065982, %xmm5
+ maxsd 0xbabecafe,%xmm5
+
+// CHECK: maxsd 305419896, %xmm5
+ maxsd 0x12345678,%xmm5
+
+// CHECK: maxsd %xmm5, %xmm5
+ maxsd %xmm5,%xmm5
+
+// CHECK: minpd 3735928559(%ebx,%ecx,8), %xmm5
+ minpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: minpd 69, %xmm5
+ minpd 0x45,%xmm5
+
+// CHECK: minpd 32493, %xmm5
+ minpd 0x7eed,%xmm5
+
+// CHECK: minpd 3133065982, %xmm5
+ minpd 0xbabecafe,%xmm5
+
+// CHECK: minpd 305419896, %xmm5
+ minpd 0x12345678,%xmm5
+
+// CHECK: minpd %xmm5, %xmm5
+ minpd %xmm5,%xmm5
+
+// CHECK: minsd 3735928559(%ebx,%ecx,8), %xmm5
+ minsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: minsd 69, %xmm5
+ minsd 0x45,%xmm5
+
+// CHECK: minsd 32493, %xmm5
+ minsd 0x7eed,%xmm5
+
+// CHECK: minsd 3133065982, %xmm5
+ minsd 0xbabecafe,%xmm5
+
+// CHECK: minsd 305419896, %xmm5
+ minsd 0x12345678,%xmm5
+
+// CHECK: minsd %xmm5, %xmm5
+ minsd %xmm5,%xmm5
+
+// CHECK: movapd 3735928559(%ebx,%ecx,8), %xmm5
+ movapd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movapd 69, %xmm5
+ movapd 0x45,%xmm5
+
+// CHECK: movapd 32493, %xmm5
+ movapd 0x7eed,%xmm5
+
+// CHECK: movapd 3133065982, %xmm5
+ movapd 0xbabecafe,%xmm5
+
+// CHECK: movapd 305419896, %xmm5
+ movapd 0x12345678,%xmm5
+
+// CHECK: movapd %xmm5, %xmm5
+ movapd %xmm5,%xmm5
+
+// CHECK: movapd %xmm5, 3735928559(%ebx,%ecx,8)
+ movapd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movapd %xmm5, 69
+ movapd %xmm5,0x45
+
+// CHECK: movapd %xmm5, 32493
+ movapd %xmm5,0x7eed
+
+// CHECK: movapd %xmm5, 3133065982
+ movapd %xmm5,0xbabecafe
+
+// CHECK: movapd %xmm5, 305419896
+ movapd %xmm5,0x12345678
+
+// CHECK: movapd %xmm5, %xmm5
+ movapd %xmm5,%xmm5
+
+// CHECK: movhpd 3735928559(%ebx,%ecx,8), %xmm5
+ movhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movhpd 69, %xmm5
+ movhpd 0x45,%xmm5
+
+// CHECK: movhpd 32493, %xmm5
+ movhpd 0x7eed,%xmm5
+
+// CHECK: movhpd 3133065982, %xmm5
+ movhpd 0xbabecafe,%xmm5
+
+// CHECK: movhpd 305419896, %xmm5
+ movhpd 0x12345678,%xmm5
+
+// CHECK: movhpd %xmm5, 3735928559(%ebx,%ecx,8)
+ movhpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movhpd %xmm5, 69
+ movhpd %xmm5,0x45
+
+// CHECK: movhpd %xmm5, 32493
+ movhpd %xmm5,0x7eed
+
+// CHECK: movhpd %xmm5, 3133065982
+ movhpd %xmm5,0xbabecafe
+
+// CHECK: movhpd %xmm5, 305419896
+ movhpd %xmm5,0x12345678
+
+// CHECK: movlpd 3735928559(%ebx,%ecx,8), %xmm5
+ movlpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movlpd 69, %xmm5
+ movlpd 0x45,%xmm5
+
+// CHECK: movlpd 32493, %xmm5
+ movlpd 0x7eed,%xmm5
+
+// CHECK: movlpd 3133065982, %xmm5
+ movlpd 0xbabecafe,%xmm5
+
+// CHECK: movlpd 305419896, %xmm5
+ movlpd 0x12345678,%xmm5
+
+// CHECK: movlpd %xmm5, 3735928559(%ebx,%ecx,8)
+ movlpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movlpd %xmm5, 69
+ movlpd %xmm5,0x45
+
+// CHECK: movlpd %xmm5, 32493
+ movlpd %xmm5,0x7eed
+
+// CHECK: movlpd %xmm5, 3133065982
+ movlpd %xmm5,0xbabecafe
+
+// CHECK: movlpd %xmm5, 305419896
+ movlpd %xmm5,0x12345678
+
+// CHECK: movmskpd %xmm5, %ecx
+ movmskpd %xmm5,%ecx
+
+// CHECK: movntpd %xmm5, 3735928559(%ebx,%ecx,8)
+ movntpd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movntpd %xmm5, 69
+ movntpd %xmm5,0x45
+
+// CHECK: movntpd %xmm5, 32493
+ movntpd %xmm5,0x7eed
+
+// CHECK: movntpd %xmm5, 3133065982
+ movntpd %xmm5,0xbabecafe
+
+// CHECK: movntpd %xmm5, 305419896
+ movntpd %xmm5,0x12345678
+
+// CHECK: movsd 3735928559(%ebx,%ecx,8), %xmm5
+ movsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movsd 69, %xmm5
+ movsd 0x45,%xmm5
+
+// CHECK: movsd 32493, %xmm5
+ movsd 0x7eed,%xmm5
+
+// CHECK: movsd 3133065982, %xmm5
+ movsd 0xbabecafe,%xmm5
+
+// CHECK: movsd 305419896, %xmm5
+ movsd 0x12345678,%xmm5
+
+// CHECK: movsd %xmm5, %xmm5
+ movsd %xmm5,%xmm5
+
+// CHECK: movsd %xmm5, 3735928559(%ebx,%ecx,8)
+ movsd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movsd %xmm5, 69
+ movsd %xmm5,0x45
+
+// CHECK: movsd %xmm5, 32493
+ movsd %xmm5,0x7eed
+
+// CHECK: movsd %xmm5, 3133065982
+ movsd %xmm5,0xbabecafe
+
+// CHECK: movsd %xmm5, 305419896
+ movsd %xmm5,0x12345678
+
+// CHECK: movsd %xmm5, %xmm5
+ movsd %xmm5,%xmm5
+
+// CHECK: movupd 3735928559(%ebx,%ecx,8), %xmm5
+ movupd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movupd 69, %xmm5
+ movupd 0x45,%xmm5
+
+// CHECK: movupd 32493, %xmm5
+ movupd 0x7eed,%xmm5
+
+// CHECK: movupd 3133065982, %xmm5
+ movupd 0xbabecafe,%xmm5
+
+// CHECK: movupd 305419896, %xmm5
+ movupd 0x12345678,%xmm5
+
+// CHECK: movupd %xmm5, %xmm5
+ movupd %xmm5,%xmm5
+
+// CHECK: movupd %xmm5, 3735928559(%ebx,%ecx,8)
+ movupd %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movupd %xmm5, 69
+ movupd %xmm5,0x45
+
+// CHECK: movupd %xmm5, 32493
+ movupd %xmm5,0x7eed
+
+// CHECK: movupd %xmm5, 3133065982
+ movupd %xmm5,0xbabecafe
+
+// CHECK: movupd %xmm5, 305419896
+ movupd %xmm5,0x12345678
+
+// CHECK: movupd %xmm5, %xmm5
+ movupd %xmm5,%xmm5
+
+// CHECK: mulpd 3735928559(%ebx,%ecx,8), %xmm5
+ mulpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: mulpd 69, %xmm5
+ mulpd 0x45,%xmm5
+
+// CHECK: mulpd 32493, %xmm5
+ mulpd 0x7eed,%xmm5
+
+// CHECK: mulpd 3133065982, %xmm5
+ mulpd 0xbabecafe,%xmm5
+
+// CHECK: mulpd 305419896, %xmm5
+ mulpd 0x12345678,%xmm5
+
+// CHECK: mulpd %xmm5, %xmm5
+ mulpd %xmm5,%xmm5
+
+// CHECK: mulsd 3735928559(%ebx,%ecx,8), %xmm5
+ mulsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: mulsd 69, %xmm5
+ mulsd 0x45,%xmm5
+
+// CHECK: mulsd 32493, %xmm5
+ mulsd 0x7eed,%xmm5
+
+// CHECK: mulsd 3133065982, %xmm5
+ mulsd 0xbabecafe,%xmm5
+
+// CHECK: mulsd 305419896, %xmm5
+ mulsd 0x12345678,%xmm5
+
+// CHECK: mulsd %xmm5, %xmm5
+ mulsd %xmm5,%xmm5
+
+// CHECK: orpd 3735928559(%ebx,%ecx,8), %xmm5
+ orpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: orpd 69, %xmm5
+ orpd 0x45,%xmm5
+
+// CHECK: orpd 32493, %xmm5
+ orpd 0x7eed,%xmm5
+
+// CHECK: orpd 3133065982, %xmm5
+ orpd 0xbabecafe,%xmm5
+
+// CHECK: orpd 305419896, %xmm5
+ orpd 0x12345678,%xmm5
+
+// CHECK: orpd %xmm5, %xmm5
+ orpd %xmm5,%xmm5
+
+// CHECK: sqrtpd 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtpd 69, %xmm5
+ sqrtpd 0x45,%xmm5
+
+// CHECK: sqrtpd 32493, %xmm5
+ sqrtpd 0x7eed,%xmm5
+
+// CHECK: sqrtpd 3133065982, %xmm5
+ sqrtpd 0xbabecafe,%xmm5
+
+// CHECK: sqrtpd 305419896, %xmm5
+ sqrtpd 0x12345678,%xmm5
+
+// CHECK: sqrtpd %xmm5, %xmm5
+ sqrtpd %xmm5,%xmm5
+
+// CHECK: sqrtsd 3735928559(%ebx,%ecx,8), %xmm5
+ sqrtsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: sqrtsd 69, %xmm5
+ sqrtsd 0x45,%xmm5
+
+// CHECK: sqrtsd 32493, %xmm5
+ sqrtsd 0x7eed,%xmm5
+
+// CHECK: sqrtsd 3133065982, %xmm5
+ sqrtsd 0xbabecafe,%xmm5
+
+// CHECK: sqrtsd 305419896, %xmm5
+ sqrtsd 0x12345678,%xmm5
+
+// CHECK: sqrtsd %xmm5, %xmm5
+ sqrtsd %xmm5,%xmm5
+
+// CHECK: subpd 3735928559(%ebx,%ecx,8), %xmm5
+ subpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: subpd 69, %xmm5
+ subpd 0x45,%xmm5
+
+// CHECK: subpd 32493, %xmm5
+ subpd 0x7eed,%xmm5
+
+// CHECK: subpd 3133065982, %xmm5
+ subpd 0xbabecafe,%xmm5
+
+// CHECK: subpd 305419896, %xmm5
+ subpd 0x12345678,%xmm5
+
+// CHECK: subpd %xmm5, %xmm5
+ subpd %xmm5,%xmm5
+
+// CHECK: subsd 3735928559(%ebx,%ecx,8), %xmm5
+ subsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: subsd 69, %xmm5
+ subsd 0x45,%xmm5
+
+// CHECK: subsd 32493, %xmm5
+ subsd 0x7eed,%xmm5
+
+// CHECK: subsd 3133065982, %xmm5
+ subsd 0xbabecafe,%xmm5
+
+// CHECK: subsd 305419896, %xmm5
+ subsd 0x12345678,%xmm5
+
+// CHECK: subsd %xmm5, %xmm5
+ subsd %xmm5,%xmm5
+
+// CHECK: ucomisd 3735928559(%ebx,%ecx,8), %xmm5
+ ucomisd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: ucomisd 69, %xmm5
+ ucomisd 0x45,%xmm5
+
+// CHECK: ucomisd 32493, %xmm5
+ ucomisd 0x7eed,%xmm5
+
+// CHECK: ucomisd 3133065982, %xmm5
+ ucomisd 0xbabecafe,%xmm5
+
+// CHECK: ucomisd 305419896, %xmm5
+ ucomisd 0x12345678,%xmm5
+
+// CHECK: ucomisd %xmm5, %xmm5
+ ucomisd %xmm5,%xmm5
+
+// CHECK: unpckhpd 3735928559(%ebx,%ecx,8), %xmm5
+ unpckhpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: unpckhpd 69, %xmm5
+ unpckhpd 0x45,%xmm5
+
+// CHECK: unpckhpd 32493, %xmm5
+ unpckhpd 0x7eed,%xmm5
+
+// CHECK: unpckhpd 3133065982, %xmm5
+ unpckhpd 0xbabecafe,%xmm5
+
+// CHECK: unpckhpd 305419896, %xmm5
+ unpckhpd 0x12345678,%xmm5
+
+// CHECK: unpckhpd %xmm5, %xmm5
+ unpckhpd %xmm5,%xmm5
+
+// CHECK: unpcklpd 3735928559(%ebx,%ecx,8), %xmm5
+ unpcklpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: unpcklpd 69, %xmm5
+ unpcklpd 0x45,%xmm5
+
+// CHECK: unpcklpd 32493, %xmm5
+ unpcklpd 0x7eed,%xmm5
+
+// CHECK: unpcklpd 3133065982, %xmm5
+ unpcklpd 0xbabecafe,%xmm5
+
+// CHECK: unpcklpd 305419896, %xmm5
+ unpcklpd 0x12345678,%xmm5
+
+// CHECK: unpcklpd %xmm5, %xmm5
+ unpcklpd %xmm5,%xmm5
+
+// CHECK: xorpd 3735928559(%ebx,%ecx,8), %xmm5
+ xorpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: xorpd 69, %xmm5
+ xorpd 0x45,%xmm5
+
+// CHECK: xorpd 32493, %xmm5
+ xorpd 0x7eed,%xmm5
+
+// CHECK: xorpd 3133065982, %xmm5
+ xorpd 0xbabecafe,%xmm5
+
+// CHECK: xorpd 305419896, %xmm5
+ xorpd 0x12345678,%xmm5
+
+// CHECK: xorpd %xmm5, %xmm5
+ xorpd %xmm5,%xmm5
+
+// CHECK: cvtdq2pd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtdq2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtdq2pd 69, %xmm5
+ cvtdq2pd 0x45,%xmm5
+
+// CHECK: cvtdq2pd 32493, %xmm5
+ cvtdq2pd 0x7eed,%xmm5
+
+// CHECK: cvtdq2pd 3133065982, %xmm5
+ cvtdq2pd 0xbabecafe,%xmm5
+
+// CHECK: cvtdq2pd 305419896, %xmm5
+ cvtdq2pd 0x12345678,%xmm5
+
+// CHECK: cvtdq2pd %xmm5, %xmm5
+ cvtdq2pd %xmm5,%xmm5
+
+// CHECK: cvtpd2dq 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpd2dq 69, %xmm5
+ cvtpd2dq 0x45,%xmm5
+
+// CHECK: cvtpd2dq 32493, %xmm5
+ cvtpd2dq 0x7eed,%xmm5
+
+// CHECK: cvtpd2dq 3133065982, %xmm5
+ cvtpd2dq 0xbabecafe,%xmm5
+
+// CHECK: cvtpd2dq 305419896, %xmm5
+ cvtpd2dq 0x12345678,%xmm5
+
+// CHECK: cvtpd2dq %xmm5, %xmm5
+ cvtpd2dq %xmm5,%xmm5
+
+// CHECK: cvtdq2ps 3735928559(%ebx,%ecx,8), %xmm5
+ cvtdq2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtdq2ps 69, %xmm5
+ cvtdq2ps 0x45,%xmm5
+
+// CHECK: cvtdq2ps 32493, %xmm5
+ cvtdq2ps 0x7eed,%xmm5
+
+// CHECK: cvtdq2ps 3133065982, %xmm5
+ cvtdq2ps 0xbabecafe,%xmm5
+
+// CHECK: cvtdq2ps 305419896, %xmm5
+ cvtdq2ps 0x12345678,%xmm5
+
+// CHECK: cvtdq2ps %xmm5, %xmm5
+ cvtdq2ps %xmm5,%xmm5
+
+// CHECK: cvtpd2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvtpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvtpd2pi 69, %mm3
+ cvtpd2pi 0x45,%mm3
+
+// CHECK: cvtpd2pi 32493, %mm3
+ cvtpd2pi 0x7eed,%mm3
+
+// CHECK: cvtpd2pi 3133065982, %mm3
+ cvtpd2pi 0xbabecafe,%mm3
+
+// CHECK: cvtpd2pi 305419896, %mm3
+ cvtpd2pi 0x12345678,%mm3
+
+// CHECK: cvtpd2pi %xmm5, %mm3
+ cvtpd2pi %xmm5,%mm3
+
+// CHECK: cvtpd2ps 3735928559(%ebx,%ecx,8), %xmm5
+ cvtpd2ps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtpd2ps 69, %xmm5
+ cvtpd2ps 0x45,%xmm5
+
+// CHECK: cvtpd2ps 32493, %xmm5
+ cvtpd2ps 0x7eed,%xmm5
+
+// CHECK: cvtpd2ps 3133065982, %xmm5
+ cvtpd2ps 0xbabecafe,%xmm5
+
+// CHECK: cvtpd2ps 305419896, %xmm5
+ cvtpd2ps 0x12345678,%xmm5
+
+// CHECK: cvtpd2ps %xmm5, %xmm5
+ cvtpd2ps %xmm5,%xmm5
+
+// CHECK: cvtps2pd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtps2pd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtps2pd 69, %xmm5
+ cvtps2pd 0x45,%xmm5
+
+// CHECK: cvtps2pd 32493, %xmm5
+ cvtps2pd 0x7eed,%xmm5
+
+// CHECK: cvtps2pd 3133065982, %xmm5
+ cvtps2pd 0xbabecafe,%xmm5
+
+// CHECK: cvtps2pd 305419896, %xmm5
+ cvtps2pd 0x12345678,%xmm5
+
+// CHECK: cvtps2pd %xmm5, %xmm5
+ cvtps2pd %xmm5,%xmm5
+
+// CHECK: cvtps2dq 3735928559(%ebx,%ecx,8), %xmm5
+ cvtps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtps2dq 69, %xmm5
+ cvtps2dq 0x45,%xmm5
+
+// CHECK: cvtps2dq 32493, %xmm5
+ cvtps2dq 0x7eed,%xmm5
+
+// CHECK: cvtps2dq 3133065982, %xmm5
+ cvtps2dq 0xbabecafe,%xmm5
+
+// CHECK: cvtps2dq 305419896, %xmm5
+ cvtps2dq 0x12345678,%xmm5
+
+// CHECK: cvtps2dq %xmm5, %xmm5
+ cvtps2dq %xmm5,%xmm5
+
+// CHECK: cvtsd2ss 3735928559(%ebx,%ecx,8), %xmm5
+ cvtsd2ss 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtsd2ss 69, %xmm5
+ cvtsd2ss 0x45,%xmm5
+
+// CHECK: cvtsd2ss 32493, %xmm5
+ cvtsd2ss 0x7eed,%xmm5
+
+// CHECK: cvtsd2ss 3133065982, %xmm5
+ cvtsd2ss 0xbabecafe,%xmm5
+
+// CHECK: cvtsd2ss 305419896, %xmm5
+ cvtsd2ss 0x12345678,%xmm5
+
+// CHECK: cvtsd2ss %xmm5, %xmm5
+ cvtsd2ss %xmm5,%xmm5
+
+// CHECK: cvtss2sd 3735928559(%ebx,%ecx,8), %xmm5
+ cvtss2sd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvtss2sd 69, %xmm5
+ cvtss2sd 0x45,%xmm5
+
+// CHECK: cvtss2sd 32493, %xmm5
+ cvtss2sd 0x7eed,%xmm5
+
+// CHECK: cvtss2sd 3133065982, %xmm5
+ cvtss2sd 0xbabecafe,%xmm5
+
+// CHECK: cvtss2sd 305419896, %xmm5
+ cvtss2sd 0x12345678,%xmm5
+
+// CHECK: cvtss2sd %xmm5, %xmm5
+ cvtss2sd %xmm5,%xmm5
+
+// CHECK: cvttpd2pi 3735928559(%ebx,%ecx,8), %mm3
+ cvttpd2pi 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: cvttpd2pi 69, %mm3
+ cvttpd2pi 0x45,%mm3
+
+// CHECK: cvttpd2pi 32493, %mm3
+ cvttpd2pi 0x7eed,%mm3
+
+// CHECK: cvttpd2pi 3133065982, %mm3
+ cvttpd2pi 0xbabecafe,%mm3
+
+// CHECK: cvttpd2pi 305419896, %mm3
+ cvttpd2pi 0x12345678,%mm3
+
+// CHECK: cvttpd2pi %xmm5, %mm3
+ cvttpd2pi %xmm5,%mm3
+
+// CHECK: cvttsd2si 3735928559(%ebx,%ecx,8), %ecx
+ cvttsd2si 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: cvttsd2si 69, %ecx
+ cvttsd2si 0x45,%ecx
+
+// CHECK: cvttsd2si 32493, %ecx
+ cvttsd2si 0x7eed,%ecx
+
+// CHECK: cvttsd2si 3133065982, %ecx
+ cvttsd2si 0xbabecafe,%ecx
+
+// CHECK: cvttsd2si 305419896, %ecx
+ cvttsd2si 0x12345678,%ecx
+
+// CHECK: cvttsd2si %xmm5, %ecx
+ cvttsd2si %xmm5,%ecx
+
+// CHECK: cvttps2dq 3735928559(%ebx,%ecx,8), %xmm5
+ cvttps2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: cvttps2dq 69, %xmm5
+ cvttps2dq 0x45,%xmm5
+
+// CHECK: cvttps2dq 32493, %xmm5
+ cvttps2dq 0x7eed,%xmm5
+
+// CHECK: cvttps2dq 3133065982, %xmm5
+ cvttps2dq 0xbabecafe,%xmm5
+
+// CHECK: cvttps2dq 305419896, %xmm5
+ cvttps2dq 0x12345678,%xmm5
+
+// CHECK: cvttps2dq %xmm5, %xmm5
+ cvttps2dq %xmm5,%xmm5
+
+// CHECK: maskmovdqu %xmm5, %xmm5
+ maskmovdqu %xmm5,%xmm5
+
+// CHECK: movdqa 3735928559(%ebx,%ecx,8), %xmm5
+ movdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movdqa 69, %xmm5
+ movdqa 0x45,%xmm5
+
+// CHECK: movdqa 32493, %xmm5
+ movdqa 0x7eed,%xmm5
+
+// CHECK: movdqa 3133065982, %xmm5
+ movdqa 0xbabecafe,%xmm5
+
+// CHECK: movdqa 305419896, %xmm5
+ movdqa 0x12345678,%xmm5
+
+// CHECK: movdqa %xmm5, %xmm5
+ movdqa %xmm5,%xmm5
+
+// CHECK: movdqa %xmm5, 3735928559(%ebx,%ecx,8)
+ movdqa %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movdqa %xmm5, 69
+ movdqa %xmm5,0x45
+
+// CHECK: movdqa %xmm5, 32493
+ movdqa %xmm5,0x7eed
+
+// CHECK: movdqa %xmm5, 3133065982
+ movdqa %xmm5,0xbabecafe
+
+// CHECK: movdqa %xmm5, 305419896
+ movdqa %xmm5,0x12345678
+
+// CHECK: movdqa %xmm5, %xmm5
+ movdqa %xmm5,%xmm5
+
+// CHECK: movdqu 3735928559(%ebx,%ecx,8), %xmm5
+ movdqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movdqu 69, %xmm5
+ movdqu 0x45,%xmm5
+
+// CHECK: movdqu 32493, %xmm5
+ movdqu 0x7eed,%xmm5
+
+// CHECK: movdqu 3133065982, %xmm5
+ movdqu 0xbabecafe,%xmm5
+
+// CHECK: movdqu 305419896, %xmm5
+ movdqu 0x12345678,%xmm5
+
+// CHECK: movdqu %xmm5, 3735928559(%ebx,%ecx,8)
+ movdqu %xmm5,0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: movdqu %xmm5, 69
+ movdqu %xmm5,0x45
+
+// CHECK: movdqu %xmm5, 32493
+ movdqu %xmm5,0x7eed
+
+// CHECK: movdqu %xmm5, 3133065982
+ movdqu %xmm5,0xbabecafe
+
+// CHECK: movdqu %xmm5, 305419896
+ movdqu %xmm5,0x12345678
+
+// CHECK: movdq2q %xmm5, %mm3
+ movdq2q %xmm5,%mm3
+
+// CHECK: movq2dq %mm3, %xmm5
+ movq2dq %mm3,%xmm5
+
+// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %mm3
+ pmuludq 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmuludq 69, %mm3
+ pmuludq 0x45,%mm3
+
+// CHECK: pmuludq 32493, %mm3
+ pmuludq 0x7eed,%mm3
+
+// CHECK: pmuludq 3133065982, %mm3
+ pmuludq 0xbabecafe,%mm3
+
+// CHECK: pmuludq 305419896, %mm3
+ pmuludq 0x12345678,%mm3
+
+// CHECK: pmuludq %mm3, %mm3
+ pmuludq %mm3,%mm3
+
+// CHECK: pmuludq 3735928559(%ebx,%ecx,8), %xmm5
+ pmuludq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmuludq 69, %xmm5
+ pmuludq 0x45,%xmm5
+
+// CHECK: pmuludq 32493, %xmm5
+ pmuludq 0x7eed,%xmm5
+
+// CHECK: pmuludq 3133065982, %xmm5
+ pmuludq 0xbabecafe,%xmm5
+
+// CHECK: pmuludq 305419896, %xmm5
+ pmuludq 0x12345678,%xmm5
+
+// CHECK: pmuludq %xmm5, %xmm5
+ pmuludq %xmm5,%xmm5
+
+// CHECK: pslldq $127, %xmm5
+ pslldq $0x7f,%xmm5
+
+// CHECK: psrldq $127, %xmm5
+ psrldq $0x7f,%xmm5
+
+// CHECK: punpckhqdq 3735928559(%ebx,%ecx,8), %xmm5
+ punpckhqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpckhqdq 69, %xmm5
+ punpckhqdq 0x45,%xmm5
+
+// CHECK: punpckhqdq 32493, %xmm5
+ punpckhqdq 0x7eed,%xmm5
+
+// CHECK: punpckhqdq 3133065982, %xmm5
+ punpckhqdq 0xbabecafe,%xmm5
+
+// CHECK: punpckhqdq 305419896, %xmm5
+ punpckhqdq 0x12345678,%xmm5
+
+// CHECK: punpckhqdq %xmm5, %xmm5
+ punpckhqdq %xmm5,%xmm5
+
+// CHECK: punpcklqdq 3735928559(%ebx,%ecx,8), %xmm5
+ punpcklqdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: punpcklqdq 69, %xmm5
+ punpcklqdq 0x45,%xmm5
+
+// CHECK: punpcklqdq 32493, %xmm5
+ punpcklqdq 0x7eed,%xmm5
+
+// CHECK: punpcklqdq 3133065982, %xmm5
+ punpcklqdq 0xbabecafe,%xmm5
+
+// CHECK: punpcklqdq 305419896, %xmm5
+ punpcklqdq 0x12345678,%xmm5
+
+// CHECK: punpcklqdq %xmm5, %xmm5
+ punpcklqdq %xmm5,%xmm5
+
+// CHECK: addsubpd 3735928559(%ebx,%ecx,8), %xmm5
+ addsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: addsubpd 69, %xmm5
+ addsubpd 0x45,%xmm5
+
+// CHECK: addsubpd 32493, %xmm5
+ addsubpd 0x7eed,%xmm5
+
+// CHECK: addsubpd 3133065982, %xmm5
+ addsubpd 0xbabecafe,%xmm5
+
+// CHECK: addsubpd 305419896, %xmm5
+ addsubpd 0x12345678,%xmm5
+
+// CHECK: addsubpd %xmm5, %xmm5
+ addsubpd %xmm5,%xmm5
+
+// CHECK: addsubps 3735928559(%ebx,%ecx,8), %xmm5
+ addsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: addsubps 69, %xmm5
+ addsubps 0x45,%xmm5
+
+// CHECK: addsubps 32493, %xmm5
+ addsubps 0x7eed,%xmm5
+
+// CHECK: addsubps 3133065982, %xmm5
+ addsubps 0xbabecafe,%xmm5
+
+// CHECK: addsubps 305419896, %xmm5
+ addsubps 0x12345678,%xmm5
+
+// CHECK: addsubps %xmm5, %xmm5
+ addsubps %xmm5,%xmm5
+
+// CHECK: fisttpl 3735928559(%ebx,%ecx,8)
+ fisttpl 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: fisttpl 3133065982
+ fisttpl 0xbabecafe
+
+// CHECK: fisttpl 305419896
+ fisttpl 0x12345678
+
+// CHECK: haddpd 3735928559(%ebx,%ecx,8), %xmm5
+ haddpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: haddpd 69, %xmm5
+ haddpd 0x45,%xmm5
+
+// CHECK: haddpd 32493, %xmm5
+ haddpd 0x7eed,%xmm5
+
+// CHECK: haddpd 3133065982, %xmm5
+ haddpd 0xbabecafe,%xmm5
+
+// CHECK: haddpd 305419896, %xmm5
+ haddpd 0x12345678,%xmm5
+
+// CHECK: haddpd %xmm5, %xmm5
+ haddpd %xmm5,%xmm5
+
+// CHECK: haddps 3735928559(%ebx,%ecx,8), %xmm5
+ haddps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: haddps 69, %xmm5
+ haddps 0x45,%xmm5
+
+// CHECK: haddps 32493, %xmm5
+ haddps 0x7eed,%xmm5
+
+// CHECK: haddps 3133065982, %xmm5
+ haddps 0xbabecafe,%xmm5
+
+// CHECK: haddps 305419896, %xmm5
+ haddps 0x12345678,%xmm5
+
+// CHECK: haddps %xmm5, %xmm5
+ haddps %xmm5,%xmm5
+
+// CHECK: hsubpd 3735928559(%ebx,%ecx,8), %xmm5
+ hsubpd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: hsubpd 69, %xmm5
+ hsubpd 0x45,%xmm5
+
+// CHECK: hsubpd 32493, %xmm5
+ hsubpd 0x7eed,%xmm5
+
+// CHECK: hsubpd 3133065982, %xmm5
+ hsubpd 0xbabecafe,%xmm5
+
+// CHECK: hsubpd 305419896, %xmm5
+ hsubpd 0x12345678,%xmm5
+
+// CHECK: hsubpd %xmm5, %xmm5
+ hsubpd %xmm5,%xmm5
+
+// CHECK: hsubps 3735928559(%ebx,%ecx,8), %xmm5
+ hsubps 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: hsubps 69, %xmm5
+ hsubps 0x45,%xmm5
+
+// CHECK: hsubps 32493, %xmm5
+ hsubps 0x7eed,%xmm5
+
+// CHECK: hsubps 3133065982, %xmm5
+ hsubps 0xbabecafe,%xmm5
+
+// CHECK: hsubps 305419896, %xmm5
+ hsubps 0x12345678,%xmm5
+
+// CHECK: hsubps %xmm5, %xmm5
+ hsubps %xmm5,%xmm5
+
+// CHECK: lddqu 3735928559(%ebx,%ecx,8), %xmm5
+ lddqu 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: lddqu 69, %xmm5
+ lddqu 0x45,%xmm5
+
+// CHECK: lddqu 32493, %xmm5
+ lddqu 0x7eed,%xmm5
+
+// CHECK: lddqu 3133065982, %xmm5
+ lddqu 0xbabecafe,%xmm5
+
+// CHECK: lddqu 305419896, %xmm5
+ lddqu 0x12345678,%xmm5
+
+// CHECK: monitor
+ monitor
+
+// CHECK: movddup 3735928559(%ebx,%ecx,8), %xmm5
+ movddup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movddup 69, %xmm5
+ movddup 0x45,%xmm5
+
+// CHECK: movddup 32493, %xmm5
+ movddup 0x7eed,%xmm5
+
+// CHECK: movddup 3133065982, %xmm5
+ movddup 0xbabecafe,%xmm5
+
+// CHECK: movddup 305419896, %xmm5
+ movddup 0x12345678,%xmm5
+
+// CHECK: movddup %xmm5, %xmm5
+ movddup %xmm5,%xmm5
+
+// CHECK: movshdup 3735928559(%ebx,%ecx,8), %xmm5
+ movshdup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movshdup 69, %xmm5
+ movshdup 0x45,%xmm5
+
+// CHECK: movshdup 32493, %xmm5
+ movshdup 0x7eed,%xmm5
+
+// CHECK: movshdup 3133065982, %xmm5
+ movshdup 0xbabecafe,%xmm5
+
+// CHECK: movshdup 305419896, %xmm5
+ movshdup 0x12345678,%xmm5
+
+// CHECK: movshdup %xmm5, %xmm5
+ movshdup %xmm5,%xmm5
+
+// CHECK: movsldup 3735928559(%ebx,%ecx,8), %xmm5
+ movsldup 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movsldup 69, %xmm5
+ movsldup 0x45,%xmm5
+
+// CHECK: movsldup 32493, %xmm5
+ movsldup 0x7eed,%xmm5
+
+// CHECK: movsldup 3133065982, %xmm5
+ movsldup 0xbabecafe,%xmm5
+
+// CHECK: movsldup 305419896, %xmm5
+ movsldup 0x12345678,%xmm5
+
+// CHECK: movsldup %xmm5, %xmm5
+ movsldup %xmm5,%xmm5
+
+// CHECK: mwait
+ mwait
+
+// CHECK: vmcall
+ vmcall
+
+// CHECK: vmclear 3735928559(%ebx,%ecx,8)
+ vmclear 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: vmclear 32493
+ vmclear 0x7eed
+
+// CHECK: vmclear 3133065982
+ vmclear 0xbabecafe
+
+// CHECK: vmclear 305419896
+ vmclear 0x12345678
+
+// CHECK: vmlaunch
+ vmlaunch
+
+// CHECK: vmresume
+ vmresume
+
+// CHECK: vmptrld 3735928559(%ebx,%ecx,8)
+ vmptrld 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: vmptrld 32493
+ vmptrld 0x7eed
+
+// CHECK: vmptrld 3133065982
+ vmptrld 0xbabecafe
+
+// CHECK: vmptrld 305419896
+ vmptrld 0x12345678
+
+// CHECK: vmptrst 3735928559(%ebx,%ecx,8)
+ vmptrst 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: vmptrst 32493
+ vmptrst 0x7eed
+
+// CHECK: vmptrst 3133065982
+ vmptrst 0xbabecafe
+
+// CHECK: vmptrst 305419896
+ vmptrst 0x12345678
+
+// CHECK: vmxoff
+ vmxoff
+
+// CHECK: vmxon 3735928559(%ebx,%ecx,8)
+ vmxon 0xdeadbeef(%ebx,%ecx,8)
+
+// CHECK: vmxon 32493
+ vmxon 0x7eed
+
+// CHECK: vmxon 3133065982
+ vmxon 0xbabecafe
+
+// CHECK: vmxon 305419896
+ vmxon 0x12345678
+
+// CHECK: phaddw 3735928559(%ebx,%ecx,8), %mm3
+ phaddw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: phaddw 69, %mm3
+ phaddw 0x45,%mm3
+
+// CHECK: phaddw 32493, %mm3
+ phaddw 0x7eed,%mm3
+
+// CHECK: phaddw 3133065982, %mm3
+ phaddw 0xbabecafe,%mm3
+
+// CHECK: phaddw 305419896, %mm3
+ phaddw 0x12345678,%mm3
+
+// CHECK: phaddw %mm3, %mm3
+ phaddw %mm3,%mm3
+
+// CHECK: phaddw 3735928559(%ebx,%ecx,8), %xmm5
+ phaddw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phaddw 69, %xmm5
+ phaddw 0x45,%xmm5
+
+// CHECK: phaddw 32493, %xmm5
+ phaddw 0x7eed,%xmm5
+
+// CHECK: phaddw 3133065982, %xmm5
+ phaddw 0xbabecafe,%xmm5
+
+// CHECK: phaddw 305419896, %xmm5
+ phaddw 0x12345678,%xmm5
+
+// CHECK: phaddw %xmm5, %xmm5
+ phaddw %xmm5,%xmm5
+
+// CHECK: phaddd 3735928559(%ebx,%ecx,8), %mm3
+ phaddd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: phaddd 69, %mm3
+ phaddd 0x45,%mm3
+
+// CHECK: phaddd 32493, %mm3
+ phaddd 0x7eed,%mm3
+
+// CHECK: phaddd 3133065982, %mm3
+ phaddd 0xbabecafe,%mm3
+
+// CHECK: phaddd 305419896, %mm3
+ phaddd 0x12345678,%mm3
+
+// CHECK: phaddd %mm3, %mm3
+ phaddd %mm3,%mm3
+
+// CHECK: phaddd 3735928559(%ebx,%ecx,8), %xmm5
+ phaddd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phaddd 69, %xmm5
+ phaddd 0x45,%xmm5
+
+// CHECK: phaddd 32493, %xmm5
+ phaddd 0x7eed,%xmm5
+
+// CHECK: phaddd 3133065982, %xmm5
+ phaddd 0xbabecafe,%xmm5
+
+// CHECK: phaddd 305419896, %xmm5
+ phaddd 0x12345678,%xmm5
+
+// CHECK: phaddd %xmm5, %xmm5
+ phaddd %xmm5,%xmm5
+
+// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %mm3
+ phaddsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: phaddsw 69, %mm3
+ phaddsw 0x45,%mm3
+
+// CHECK: phaddsw 32493, %mm3
+ phaddsw 0x7eed,%mm3
+
+// CHECK: phaddsw 3133065982, %mm3
+ phaddsw 0xbabecafe,%mm3
+
+// CHECK: phaddsw 305419896, %mm3
+ phaddsw 0x12345678,%mm3
+
+// CHECK: phaddsw %mm3, %mm3
+ phaddsw %mm3,%mm3
+
+// CHECK: phaddsw 3735928559(%ebx,%ecx,8), %xmm5
+ phaddsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phaddsw 69, %xmm5
+ phaddsw 0x45,%xmm5
+
+// CHECK: phaddsw 32493, %xmm5
+ phaddsw 0x7eed,%xmm5
+
+// CHECK: phaddsw 3133065982, %xmm5
+ phaddsw 0xbabecafe,%xmm5
+
+// CHECK: phaddsw 305419896, %xmm5
+ phaddsw 0x12345678,%xmm5
+
+// CHECK: phaddsw %xmm5, %xmm5
+ phaddsw %xmm5,%xmm5
+
+// CHECK: phsubw 3735928559(%ebx,%ecx,8), %mm3
+ phsubw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: phsubw 69, %mm3
+ phsubw 0x45,%mm3
+
+// CHECK: phsubw 32493, %mm3
+ phsubw 0x7eed,%mm3
+
+// CHECK: phsubw 3133065982, %mm3
+ phsubw 0xbabecafe,%mm3
+
+// CHECK: phsubw 305419896, %mm3
+ phsubw 0x12345678,%mm3
+
+// CHECK: phsubw %mm3, %mm3
+ phsubw %mm3,%mm3
+
+// CHECK: phsubw 3735928559(%ebx,%ecx,8), %xmm5
+ phsubw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phsubw 69, %xmm5
+ phsubw 0x45,%xmm5
+
+// CHECK: phsubw 32493, %xmm5
+ phsubw 0x7eed,%xmm5
+
+// CHECK: phsubw 3133065982, %xmm5
+ phsubw 0xbabecafe,%xmm5
+
+// CHECK: phsubw 305419896, %xmm5
+ phsubw 0x12345678,%xmm5
+
+// CHECK: phsubw %xmm5, %xmm5
+ phsubw %xmm5,%xmm5
+
+// CHECK: phsubd 3735928559(%ebx,%ecx,8), %mm3
+ phsubd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: phsubd 69, %mm3
+ phsubd 0x45,%mm3
+
+// CHECK: phsubd 32493, %mm3
+ phsubd 0x7eed,%mm3
+
+// CHECK: phsubd 3133065982, %mm3
+ phsubd 0xbabecafe,%mm3
+
+// CHECK: phsubd 305419896, %mm3
+ phsubd 0x12345678,%mm3
+
+// CHECK: phsubd %mm3, %mm3
+ phsubd %mm3,%mm3
+
+// CHECK: phsubd 3735928559(%ebx,%ecx,8), %xmm5
+ phsubd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phsubd 69, %xmm5
+ phsubd 0x45,%xmm5
+
+// CHECK: phsubd 32493, %xmm5
+ phsubd 0x7eed,%xmm5
+
+// CHECK: phsubd 3133065982, %xmm5
+ phsubd 0xbabecafe,%xmm5
+
+// CHECK: phsubd 305419896, %xmm5
+ phsubd 0x12345678,%xmm5
+
+// CHECK: phsubd %xmm5, %xmm5
+ phsubd %xmm5,%xmm5
+
+// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %mm3
+ phsubsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: phsubsw 69, %mm3
+ phsubsw 0x45,%mm3
+
+// CHECK: phsubsw 32493, %mm3
+ phsubsw 0x7eed,%mm3
+
+// CHECK: phsubsw 3133065982, %mm3
+ phsubsw 0xbabecafe,%mm3
+
+// CHECK: phsubsw 305419896, %mm3
+ phsubsw 0x12345678,%mm3
+
+// CHECK: phsubsw %mm3, %mm3
+ phsubsw %mm3,%mm3
+
+// CHECK: phsubsw 3735928559(%ebx,%ecx,8), %xmm5
+ phsubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phsubsw 69, %xmm5
+ phsubsw 0x45,%xmm5
+
+// CHECK: phsubsw 32493, %xmm5
+ phsubsw 0x7eed,%xmm5
+
+// CHECK: phsubsw 3133065982, %xmm5
+ phsubsw 0xbabecafe,%xmm5
+
+// CHECK: phsubsw 305419896, %xmm5
+ phsubsw 0x12345678,%xmm5
+
+// CHECK: phsubsw %xmm5, %xmm5
+ phsubsw %xmm5,%xmm5
+
+// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %mm3
+ pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmaddubsw 69, %mm3
+ pmaddubsw 0x45,%mm3
+
+// CHECK: pmaddubsw 32493, %mm3
+ pmaddubsw 0x7eed,%mm3
+
+// CHECK: pmaddubsw 3133065982, %mm3
+ pmaddubsw 0xbabecafe,%mm3
+
+// CHECK: pmaddubsw 305419896, %mm3
+ pmaddubsw 0x12345678,%mm3
+
+// CHECK: pmaddubsw %mm3, %mm3
+ pmaddubsw %mm3,%mm3
+
+// CHECK: pmaddubsw 3735928559(%ebx,%ecx,8), %xmm5
+ pmaddubsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaddubsw 69, %xmm5
+ pmaddubsw 0x45,%xmm5
+
+// CHECK: pmaddubsw 32493, %xmm5
+ pmaddubsw 0x7eed,%xmm5
+
+// CHECK: pmaddubsw 3133065982, %xmm5
+ pmaddubsw 0xbabecafe,%xmm5
+
+// CHECK: pmaddubsw 305419896, %xmm5
+ pmaddubsw 0x12345678,%xmm5
+
+// CHECK: pmaddubsw %xmm5, %xmm5
+ pmaddubsw %xmm5,%xmm5
+
+// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %mm3
+ pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pmulhrsw 69, %mm3
+ pmulhrsw 0x45,%mm3
+
+// CHECK: pmulhrsw 32493, %mm3
+ pmulhrsw 0x7eed,%mm3
+
+// CHECK: pmulhrsw 3133065982, %mm3
+ pmulhrsw 0xbabecafe,%mm3
+
+// CHECK: pmulhrsw 305419896, %mm3
+ pmulhrsw 0x12345678,%mm3
+
+// CHECK: pmulhrsw %mm3, %mm3
+ pmulhrsw %mm3,%mm3
+
+// CHECK: pmulhrsw 3735928559(%ebx,%ecx,8), %xmm5
+ pmulhrsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmulhrsw 69, %xmm5
+ pmulhrsw 0x45,%xmm5
+
+// CHECK: pmulhrsw 32493, %xmm5
+ pmulhrsw 0x7eed,%xmm5
+
+// CHECK: pmulhrsw 3133065982, %xmm5
+ pmulhrsw 0xbabecafe,%xmm5
+
+// CHECK: pmulhrsw 305419896, %xmm5
+ pmulhrsw 0x12345678,%xmm5
+
+// CHECK: pmulhrsw %xmm5, %xmm5
+ pmulhrsw %xmm5,%xmm5
+
+// CHECK: pshufb 3735928559(%ebx,%ecx,8), %mm3
+ pshufb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pshufb 69, %mm3
+ pshufb 0x45,%mm3
+
+// CHECK: pshufb 32493, %mm3
+ pshufb 0x7eed,%mm3
+
+// CHECK: pshufb 3133065982, %mm3
+ pshufb 0xbabecafe,%mm3
+
+// CHECK: pshufb 305419896, %mm3
+ pshufb 0x12345678,%mm3
+
+// CHECK: pshufb %mm3, %mm3
+ pshufb %mm3,%mm3
+
+// CHECK: pshufb 3735928559(%ebx,%ecx,8), %xmm5
+ pshufb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pshufb 69, %xmm5
+ pshufb 0x45,%xmm5
+
+// CHECK: pshufb 32493, %xmm5
+ pshufb 0x7eed,%xmm5
+
+// CHECK: pshufb 3133065982, %xmm5
+ pshufb 0xbabecafe,%xmm5
+
+// CHECK: pshufb 305419896, %xmm5
+ pshufb 0x12345678,%xmm5
+
+// CHECK: pshufb %xmm5, %xmm5
+ pshufb %xmm5,%xmm5
+
+// CHECK: psignb 3735928559(%ebx,%ecx,8), %mm3
+ psignb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psignb 69, %mm3
+ psignb 0x45,%mm3
+
+// CHECK: psignb 32493, %mm3
+ psignb 0x7eed,%mm3
+
+// CHECK: psignb 3133065982, %mm3
+ psignb 0xbabecafe,%mm3
+
+// CHECK: psignb 305419896, %mm3
+ psignb 0x12345678,%mm3
+
+// CHECK: psignb %mm3, %mm3
+ psignb %mm3,%mm3
+
+// CHECK: psignb 3735928559(%ebx,%ecx,8), %xmm5
+ psignb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psignb 69, %xmm5
+ psignb 0x45,%xmm5
+
+// CHECK: psignb 32493, %xmm5
+ psignb 0x7eed,%xmm5
+
+// CHECK: psignb 3133065982, %xmm5
+ psignb 0xbabecafe,%xmm5
+
+// CHECK: psignb 305419896, %xmm5
+ psignb 0x12345678,%xmm5
+
+// CHECK: psignb %xmm5, %xmm5
+ psignb %xmm5,%xmm5
+
+// CHECK: psignw 3735928559(%ebx,%ecx,8), %mm3
+ psignw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psignw 69, %mm3
+ psignw 0x45,%mm3
+
+// CHECK: psignw 32493, %mm3
+ psignw 0x7eed,%mm3
+
+// CHECK: psignw 3133065982, %mm3
+ psignw 0xbabecafe,%mm3
+
+// CHECK: psignw 305419896, %mm3
+ psignw 0x12345678,%mm3
+
+// CHECK: psignw %mm3, %mm3
+ psignw %mm3,%mm3
+
+// CHECK: psignw 3735928559(%ebx,%ecx,8), %xmm5
+ psignw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psignw 69, %xmm5
+ psignw 0x45,%xmm5
+
+// CHECK: psignw 32493, %xmm5
+ psignw 0x7eed,%xmm5
+
+// CHECK: psignw 3133065982, %xmm5
+ psignw 0xbabecafe,%xmm5
+
+// CHECK: psignw 305419896, %xmm5
+ psignw 0x12345678,%xmm5
+
+// CHECK: psignw %xmm5, %xmm5
+ psignw %xmm5,%xmm5
+
+// CHECK: psignd 3735928559(%ebx,%ecx,8), %mm3
+ psignd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: psignd 69, %mm3
+ psignd 0x45,%mm3
+
+// CHECK: psignd 32493, %mm3
+ psignd 0x7eed,%mm3
+
+// CHECK: psignd 3133065982, %mm3
+ psignd 0xbabecafe,%mm3
+
+// CHECK: psignd 305419896, %mm3
+ psignd 0x12345678,%mm3
+
+// CHECK: psignd %mm3, %mm3
+ psignd %mm3,%mm3
+
+// CHECK: psignd 3735928559(%ebx,%ecx,8), %xmm5
+ psignd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: psignd 69, %xmm5
+ psignd 0x45,%xmm5
+
+// CHECK: psignd 32493, %xmm5
+ psignd 0x7eed,%xmm5
+
+// CHECK: psignd 3133065982, %xmm5
+ psignd 0xbabecafe,%xmm5
+
+// CHECK: psignd 305419896, %xmm5
+ psignd 0x12345678,%xmm5
+
+// CHECK: psignd %xmm5, %xmm5
+ psignd %xmm5,%xmm5
+
+// CHECK: pabsb 3735928559(%ebx,%ecx,8), %mm3
+ pabsb 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pabsb 69, %mm3
+ pabsb 0x45,%mm3
+
+// CHECK: pabsb 32493, %mm3
+ pabsb 0x7eed,%mm3
+
+// CHECK: pabsb 3133065982, %mm3
+ pabsb 0xbabecafe,%mm3
+
+// CHECK: pabsb 305419896, %mm3
+ pabsb 0x12345678,%mm3
+
+// CHECK: pabsb %mm3, %mm3
+ pabsb %mm3,%mm3
+
+// CHECK: pabsb 3735928559(%ebx,%ecx,8), %xmm5
+ pabsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pabsb 69, %xmm5
+ pabsb 0x45,%xmm5
+
+// CHECK: pabsb 32493, %xmm5
+ pabsb 0x7eed,%xmm5
+
+// CHECK: pabsb 3133065982, %xmm5
+ pabsb 0xbabecafe,%xmm5
+
+// CHECK: pabsb 305419896, %xmm5
+ pabsb 0x12345678,%xmm5
+
+// CHECK: pabsb %xmm5, %xmm5
+ pabsb %xmm5,%xmm5
+
+// CHECK: pabsw 3735928559(%ebx,%ecx,8), %mm3
+ pabsw 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pabsw 69, %mm3
+ pabsw 0x45,%mm3
+
+// CHECK: pabsw 32493, %mm3
+ pabsw 0x7eed,%mm3
+
+// CHECK: pabsw 3133065982, %mm3
+ pabsw 0xbabecafe,%mm3
+
+// CHECK: pabsw 305419896, %mm3
+ pabsw 0x12345678,%mm3
+
+// CHECK: pabsw %mm3, %mm3
+ pabsw %mm3,%mm3
+
+// CHECK: pabsw 3735928559(%ebx,%ecx,8), %xmm5
+ pabsw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pabsw 69, %xmm5
+ pabsw 0x45,%xmm5
+
+// CHECK: pabsw 32493, %xmm5
+ pabsw 0x7eed,%xmm5
+
+// CHECK: pabsw 3133065982, %xmm5
+ pabsw 0xbabecafe,%xmm5
+
+// CHECK: pabsw 305419896, %xmm5
+ pabsw 0x12345678,%xmm5
+
+// CHECK: pabsw %xmm5, %xmm5
+ pabsw %xmm5,%xmm5
+
+// CHECK: pabsd 3735928559(%ebx,%ecx,8), %mm3
+ pabsd 0xdeadbeef(%ebx,%ecx,8),%mm3
+
+// CHECK: pabsd 69, %mm3
+ pabsd 0x45,%mm3
+
+// CHECK: pabsd 32493, %mm3
+ pabsd 0x7eed,%mm3
+
+// CHECK: pabsd 3133065982, %mm3
+ pabsd 0xbabecafe,%mm3
+
+// CHECK: pabsd 305419896, %mm3
+ pabsd 0x12345678,%mm3
+
+// CHECK: pabsd %mm3, %mm3
+ pabsd %mm3,%mm3
+
+// CHECK: pabsd 3735928559(%ebx,%ecx,8), %xmm5
+ pabsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pabsd 69, %xmm5
+ pabsd 0x45,%xmm5
+
+// CHECK: pabsd 32493, %xmm5
+ pabsd 0x7eed,%xmm5
+
+// CHECK: pabsd 3133065982, %xmm5
+ pabsd 0xbabecafe,%xmm5
+
+// CHECK: pabsd 305419896, %xmm5
+ pabsd 0x12345678,%xmm5
+
+// CHECK: pabsd %xmm5, %xmm5
+ pabsd %xmm5,%xmm5
+
+// CHECK: femms
+ femms
+
+// CHECK: movntdqa 3735928559(%ebx,%ecx,8), %xmm5
+ movntdqa 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: movntdqa 69, %xmm5
+ movntdqa 0x45,%xmm5
+
+// CHECK: movntdqa 32493, %xmm5
+ movntdqa 0x7eed,%xmm5
+
+// CHECK: movntdqa 3133065982, %xmm5
+ movntdqa 0xbabecafe,%xmm5
+
+// CHECK: movntdqa 305419896, %xmm5
+ movntdqa 0x12345678,%xmm5
+
+// CHECK: packusdw 3735928559(%ebx,%ecx,8), %xmm5
+ packusdw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: packusdw 69, %xmm5
+ packusdw 0x45,%xmm5
+
+// CHECK: packusdw 32493, %xmm5
+ packusdw 0x7eed,%xmm5
+
+// CHECK: packusdw 3133065982, %xmm5
+ packusdw 0xbabecafe,%xmm5
+
+// CHECK: packusdw 305419896, %xmm5
+ packusdw 0x12345678,%xmm5
+
+// CHECK: packusdw %xmm5, %xmm5
+ packusdw %xmm5,%xmm5
+
+// CHECK: pcmpeqq 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpeqq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpeqq 69, %xmm5
+ pcmpeqq 0x45,%xmm5
+
+// CHECK: pcmpeqq 32493, %xmm5
+ pcmpeqq 0x7eed,%xmm5
+
+// CHECK: pcmpeqq 3133065982, %xmm5
+ pcmpeqq 0xbabecafe,%xmm5
+
+// CHECK: pcmpeqq 305419896, %xmm5
+ pcmpeqq 0x12345678,%xmm5
+
+// CHECK: pcmpeqq %xmm5, %xmm5
+ pcmpeqq %xmm5,%xmm5
+
+// CHECK: phminposuw 3735928559(%ebx,%ecx,8), %xmm5
+ phminposuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: phminposuw 69, %xmm5
+ phminposuw 0x45,%xmm5
+
+// CHECK: phminposuw 32493, %xmm5
+ phminposuw 0x7eed,%xmm5
+
+// CHECK: phminposuw 3133065982, %xmm5
+ phminposuw 0xbabecafe,%xmm5
+
+// CHECK: phminposuw 305419896, %xmm5
+ phminposuw 0x12345678,%xmm5
+
+// CHECK: phminposuw %xmm5, %xmm5
+ phminposuw %xmm5,%xmm5
+
+// CHECK: pmaxsb 3735928559(%ebx,%ecx,8), %xmm5
+ pmaxsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaxsb 69, %xmm5
+ pmaxsb 0x45,%xmm5
+
+// CHECK: pmaxsb 32493, %xmm5
+ pmaxsb 0x7eed,%xmm5
+
+// CHECK: pmaxsb 3133065982, %xmm5
+ pmaxsb 0xbabecafe,%xmm5
+
+// CHECK: pmaxsb 305419896, %xmm5
+ pmaxsb 0x12345678,%xmm5
+
+// CHECK: pmaxsb %xmm5, %xmm5
+ pmaxsb %xmm5,%xmm5
+
+// CHECK: pmaxsd 3735928559(%ebx,%ecx,8), %xmm5
+ pmaxsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaxsd 69, %xmm5
+ pmaxsd 0x45,%xmm5
+
+// CHECK: pmaxsd 32493, %xmm5
+ pmaxsd 0x7eed,%xmm5
+
+// CHECK: pmaxsd 3133065982, %xmm5
+ pmaxsd 0xbabecafe,%xmm5
+
+// CHECK: pmaxsd 305419896, %xmm5
+ pmaxsd 0x12345678,%xmm5
+
+// CHECK: pmaxsd %xmm5, %xmm5
+ pmaxsd %xmm5,%xmm5
+
+// CHECK: pmaxud 3735928559(%ebx,%ecx,8), %xmm5
+ pmaxud 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaxud 69, %xmm5
+ pmaxud 0x45,%xmm5
+
+// CHECK: pmaxud 32493, %xmm5
+ pmaxud 0x7eed,%xmm5
+
+// CHECK: pmaxud 3133065982, %xmm5
+ pmaxud 0xbabecafe,%xmm5
+
+// CHECK: pmaxud 305419896, %xmm5
+ pmaxud 0x12345678,%xmm5
+
+// CHECK: pmaxud %xmm5, %xmm5
+ pmaxud %xmm5,%xmm5
+
+// CHECK: pmaxuw 3735928559(%ebx,%ecx,8), %xmm5
+ pmaxuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmaxuw 69, %xmm5
+ pmaxuw 0x45,%xmm5
+
+// CHECK: pmaxuw 32493, %xmm5
+ pmaxuw 0x7eed,%xmm5
+
+// CHECK: pmaxuw 3133065982, %xmm5
+ pmaxuw 0xbabecafe,%xmm5
+
+// CHECK: pmaxuw 305419896, %xmm5
+ pmaxuw 0x12345678,%xmm5
+
+// CHECK: pmaxuw %xmm5, %xmm5
+ pmaxuw %xmm5,%xmm5
+
+// CHECK: pminsb 3735928559(%ebx,%ecx,8), %xmm5
+ pminsb 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pminsb 69, %xmm5
+ pminsb 0x45,%xmm5
+
+// CHECK: pminsb 32493, %xmm5
+ pminsb 0x7eed,%xmm5
+
+// CHECK: pminsb 3133065982, %xmm5
+ pminsb 0xbabecafe,%xmm5
+
+// CHECK: pminsb 305419896, %xmm5
+ pminsb 0x12345678,%xmm5
+
+// CHECK: pminsb %xmm5, %xmm5
+ pminsb %xmm5,%xmm5
+
+// CHECK: pminsd 3735928559(%ebx,%ecx,8), %xmm5
+ pminsd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pminsd 69, %xmm5
+ pminsd 0x45,%xmm5
+
+// CHECK: pminsd 32493, %xmm5
+ pminsd 0x7eed,%xmm5
+
+// CHECK: pminsd 3133065982, %xmm5
+ pminsd 0xbabecafe,%xmm5
+
+// CHECK: pminsd 305419896, %xmm5
+ pminsd 0x12345678,%xmm5
+
+// CHECK: pminsd %xmm5, %xmm5
+ pminsd %xmm5,%xmm5
+
+// CHECK: pminud 3735928559(%ebx,%ecx,8), %xmm5
+ pminud 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pminud 69, %xmm5
+ pminud 0x45,%xmm5
+
+// CHECK: pminud 32493, %xmm5
+ pminud 0x7eed,%xmm5
+
+// CHECK: pminud 3133065982, %xmm5
+ pminud 0xbabecafe,%xmm5
+
+// CHECK: pminud 305419896, %xmm5
+ pminud 0x12345678,%xmm5
+
+// CHECK: pminud %xmm5, %xmm5
+ pminud %xmm5,%xmm5
+
+// CHECK: pminuw 3735928559(%ebx,%ecx,8), %xmm5
+ pminuw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pminuw 69, %xmm5
+ pminuw 0x45,%xmm5
+
+// CHECK: pminuw 32493, %xmm5
+ pminuw 0x7eed,%xmm5
+
+// CHECK: pminuw 3133065982, %xmm5
+ pminuw 0xbabecafe,%xmm5
+
+// CHECK: pminuw 305419896, %xmm5
+ pminuw 0x12345678,%xmm5
+
+// CHECK: pminuw %xmm5, %xmm5
+ pminuw %xmm5,%xmm5
+
+// CHECK: pmovsxbw 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxbw 69, %xmm5
+ pmovsxbw 0x45,%xmm5
+
+// CHECK: pmovsxbw 32493, %xmm5
+ pmovsxbw 0x7eed,%xmm5
+
+// CHECK: pmovsxbw 3133065982, %xmm5
+ pmovsxbw 0xbabecafe,%xmm5
+
+// CHECK: pmovsxbw 305419896, %xmm5
+ pmovsxbw 0x12345678,%xmm5
+
+// CHECK: pmovsxbw %xmm5, %xmm5
+ pmovsxbw %xmm5,%xmm5
+
+// CHECK: pmovsxbd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxbd 69, %xmm5
+ pmovsxbd 0x45,%xmm5
+
+// CHECK: pmovsxbd 32493, %xmm5
+ pmovsxbd 0x7eed,%xmm5
+
+// CHECK: pmovsxbd 3133065982, %xmm5
+ pmovsxbd 0xbabecafe,%xmm5
+
+// CHECK: pmovsxbd 305419896, %xmm5
+ pmovsxbd 0x12345678,%xmm5
+
+// CHECK: pmovsxbd %xmm5, %xmm5
+ pmovsxbd %xmm5,%xmm5
+
+// CHECK: pmovsxbq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxbq 69, %xmm5
+ pmovsxbq 0x45,%xmm5
+
+// CHECK: pmovsxbq 32493, %xmm5
+ pmovsxbq 0x7eed,%xmm5
+
+// CHECK: pmovsxbq 3133065982, %xmm5
+ pmovsxbq 0xbabecafe,%xmm5
+
+// CHECK: pmovsxbq 305419896, %xmm5
+ pmovsxbq 0x12345678,%xmm5
+
+// CHECK: pmovsxbq %xmm5, %xmm5
+ pmovsxbq %xmm5,%xmm5
+
+// CHECK: pmovsxwd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxwd 69, %xmm5
+ pmovsxwd 0x45,%xmm5
+
+// CHECK: pmovsxwd 32493, %xmm5
+ pmovsxwd 0x7eed,%xmm5
+
+// CHECK: pmovsxwd 3133065982, %xmm5
+ pmovsxwd 0xbabecafe,%xmm5
+
+// CHECK: pmovsxwd 305419896, %xmm5
+ pmovsxwd 0x12345678,%xmm5
+
+// CHECK: pmovsxwd %xmm5, %xmm5
+ pmovsxwd %xmm5,%xmm5
+
+// CHECK: pmovsxwq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxwq 69, %xmm5
+ pmovsxwq 0x45,%xmm5
+
+// CHECK: pmovsxwq 32493, %xmm5
+ pmovsxwq 0x7eed,%xmm5
+
+// CHECK: pmovsxwq 3133065982, %xmm5
+ pmovsxwq 0xbabecafe,%xmm5
+
+// CHECK: pmovsxwq 305419896, %xmm5
+ pmovsxwq 0x12345678,%xmm5
+
+// CHECK: pmovsxwq %xmm5, %xmm5
+ pmovsxwq %xmm5,%xmm5
+
+// CHECK: pmovsxdq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovsxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovsxdq 69, %xmm5
+ pmovsxdq 0x45,%xmm5
+
+// CHECK: pmovsxdq 32493, %xmm5
+ pmovsxdq 0x7eed,%xmm5
+
+// CHECK: pmovsxdq 3133065982, %xmm5
+ pmovsxdq 0xbabecafe,%xmm5
+
+// CHECK: pmovsxdq 305419896, %xmm5
+ pmovsxdq 0x12345678,%xmm5
+
+// CHECK: pmovsxdq %xmm5, %xmm5
+ pmovsxdq %xmm5,%xmm5
+
+// CHECK: pmovzxbw 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxbw 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxbw 69, %xmm5
+ pmovzxbw 0x45,%xmm5
+
+// CHECK: pmovzxbw 32493, %xmm5
+ pmovzxbw 0x7eed,%xmm5
+
+// CHECK: pmovzxbw 3133065982, %xmm5
+ pmovzxbw 0xbabecafe,%xmm5
+
+// CHECK: pmovzxbw 305419896, %xmm5
+ pmovzxbw 0x12345678,%xmm5
+
+// CHECK: pmovzxbw %xmm5, %xmm5
+ pmovzxbw %xmm5,%xmm5
+
+// CHECK: pmovzxbd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxbd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxbd 69, %xmm5
+ pmovzxbd 0x45,%xmm5
+
+// CHECK: pmovzxbd 32493, %xmm5
+ pmovzxbd 0x7eed,%xmm5
+
+// CHECK: pmovzxbd 3133065982, %xmm5
+ pmovzxbd 0xbabecafe,%xmm5
+
+// CHECK: pmovzxbd 305419896, %xmm5
+ pmovzxbd 0x12345678,%xmm5
+
+// CHECK: pmovzxbd %xmm5, %xmm5
+ pmovzxbd %xmm5,%xmm5
+
+// CHECK: pmovzxbq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxbq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxbq 69, %xmm5
+ pmovzxbq 0x45,%xmm5
+
+// CHECK: pmovzxbq 32493, %xmm5
+ pmovzxbq 0x7eed,%xmm5
+
+// CHECK: pmovzxbq 3133065982, %xmm5
+ pmovzxbq 0xbabecafe,%xmm5
+
+// CHECK: pmovzxbq 305419896, %xmm5
+ pmovzxbq 0x12345678,%xmm5
+
+// CHECK: pmovzxbq %xmm5, %xmm5
+ pmovzxbq %xmm5,%xmm5
+
+// CHECK: pmovzxwd 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxwd 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxwd 69, %xmm5
+ pmovzxwd 0x45,%xmm5
+
+// CHECK: pmovzxwd 32493, %xmm5
+ pmovzxwd 0x7eed,%xmm5
+
+// CHECK: pmovzxwd 3133065982, %xmm5
+ pmovzxwd 0xbabecafe,%xmm5
+
+// CHECK: pmovzxwd 305419896, %xmm5
+ pmovzxwd 0x12345678,%xmm5
+
+// CHECK: pmovzxwd %xmm5, %xmm5
+ pmovzxwd %xmm5,%xmm5
+
+// CHECK: pmovzxwq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxwq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxwq 69, %xmm5
+ pmovzxwq 0x45,%xmm5
+
+// CHECK: pmovzxwq 32493, %xmm5
+ pmovzxwq 0x7eed,%xmm5
+
+// CHECK: pmovzxwq 3133065982, %xmm5
+ pmovzxwq 0xbabecafe,%xmm5
+
+// CHECK: pmovzxwq 305419896, %xmm5
+ pmovzxwq 0x12345678,%xmm5
+
+// CHECK: pmovzxwq %xmm5, %xmm5
+ pmovzxwq %xmm5,%xmm5
+
+// CHECK: pmovzxdq 3735928559(%ebx,%ecx,8), %xmm5
+ pmovzxdq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmovzxdq 69, %xmm5
+ pmovzxdq 0x45,%xmm5
+
+// CHECK: pmovzxdq 32493, %xmm5
+ pmovzxdq 0x7eed,%xmm5
+
+// CHECK: pmovzxdq 3133065982, %xmm5
+ pmovzxdq 0xbabecafe,%xmm5
+
+// CHECK: pmovzxdq 305419896, %xmm5
+ pmovzxdq 0x12345678,%xmm5
+
+// CHECK: pmovzxdq %xmm5, %xmm5
+ pmovzxdq %xmm5,%xmm5
+
+// CHECK: pmuldq 3735928559(%ebx,%ecx,8), %xmm5
+ pmuldq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmuldq 69, %xmm5
+ pmuldq 0x45,%xmm5
+
+// CHECK: pmuldq 32493, %xmm5
+ pmuldq 0x7eed,%xmm5
+
+// CHECK: pmuldq 3133065982, %xmm5
+ pmuldq 0xbabecafe,%xmm5
+
+// CHECK: pmuldq 305419896, %xmm5
+ pmuldq 0x12345678,%xmm5
+
+// CHECK: pmuldq %xmm5, %xmm5
+ pmuldq %xmm5,%xmm5
+
+// CHECK: pmulld 3735928559(%ebx,%ecx,8), %xmm5
+ pmulld 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pmulld 69, %xmm5
+ pmulld 0x45,%xmm5
+
+// CHECK: pmulld 32493, %xmm5
+ pmulld 0x7eed,%xmm5
+
+// CHECK: pmulld 3133065982, %xmm5
+ pmulld 0xbabecafe,%xmm5
+
+// CHECK: pmulld 305419896, %xmm5
+ pmulld 0x12345678,%xmm5
+
+// CHECK: pmulld %xmm5, %xmm5
+ pmulld %xmm5,%xmm5
+
+// CHECK: ptest 3735928559(%ebx,%ecx,8), %xmm5
+ ptest 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: ptest 69, %xmm5
+ ptest 0x45,%xmm5
+
+// CHECK: ptest 32493, %xmm5
+ ptest 0x7eed,%xmm5
+
+// CHECK: ptest 3133065982, %xmm5
+ ptest 0xbabecafe,%xmm5
+
+// CHECK: ptest 305419896, %xmm5
+ ptest 0x12345678,%xmm5
+
+// CHECK: ptest %xmm5, %xmm5
+ ptest %xmm5,%xmm5
+
+// CHECK: crc32b %bl, %eax
+ crc32b %bl, %eax
+
+// CHECK: crc32b 4(%ebx), %eax
+ crc32b 4(%ebx), %eax
+
+// CHECK: crc32w %bx, %eax
+ crc32w %bx, %eax
+
+// CHECK: crc32w 4(%ebx), %eax
+ crc32w 4(%ebx), %eax
+
+// CHECK: crc32l %ebx, %eax
+ crc32l %ebx, %eax
+
+// CHECK: crc32l 4(%ebx), %eax
+ crc32l 4(%ebx), %eax
+
+// CHECK: crc32l 3735928559(%ebx,%ecx,8), %ecx
+ crc32l 0xdeadbeef(%ebx,%ecx,8),%ecx
+
+// CHECK: crc32l 69, %ecx
+ crc32l 0x45,%ecx
+
+// CHECK: crc32l 32493, %ecx
+ crc32l 0x7eed,%ecx
+
+// CHECK: crc32l 3133065982, %ecx
+ crc32l 0xbabecafe,%ecx
+
+// CHECK: crc32l %ecx, %ecx
+ crc32l %ecx,%ecx
+
+// CHECK: pcmpgtq 3735928559(%ebx,%ecx,8), %xmm5
+ pcmpgtq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+
+// CHECK: pcmpgtq 69, %xmm5
+ pcmpgtq 0x45,%xmm5
+
+// CHECK: pcmpgtq 32493, %xmm5
+ pcmpgtq 0x7eed,%xmm5
+
+// CHECK: pcmpgtq 3133065982, %xmm5
+ pcmpgtq 0xbabecafe,%xmm5
+
+// CHECK: pcmpgtq 305419896, %xmm5
+ pcmpgtq 0x12345678,%xmm5
+
+// CHECK: pcmpgtq %xmm5, %xmm5
+ pcmpgtq %xmm5,%xmm5
+
+// CHECK: aesimc %xmm0, %xmm1
+ aesimc %xmm0,%xmm1
+
+// CHECK: aesimc (%eax), %xmm1
+ aesimc (%eax),%xmm1
+
+// CHECK: aesenc %xmm1, %xmm2
+ aesenc %xmm1,%xmm2
+
+// CHECK: aesenc 4(%ebx), %xmm2
+ aesenc 4(%ebx),%xmm2
+
+// CHECK: aesenclast %xmm3, %xmm4
+ aesenclast %xmm3,%xmm4
+
+// CHECK: aesenclast 4(%edx,%edi), %xmm4
+ aesenclast 4(%edx,%edi),%xmm4
+
+// CHECK: aesdec %xmm5, %xmm6
+ aesdec %xmm5,%xmm6
+
+// CHECK: aesdec 4(%ecx,%eax,8), %xmm6
+ aesdec 4(%ecx,%eax,8),%xmm6
+
+// CHECK: aesdeclast %xmm7, %xmm0
+ aesdeclast %xmm7,%xmm0
+
+// CHECK: aesdeclast 3405691582, %xmm0
+ aesdeclast 0xcafebabe,%xmm0
+
+// CHECK: aeskeygenassist $125, %xmm1, %xmm2
+ aeskeygenassist $125, %xmm1, %xmm2
+
+// CHECK: aeskeygenassist $125, (%edx,%eax,4), %xmm2
+ aeskeygenassist $125, (%edx,%eax,4), %xmm2
diff --git a/test/MC/AsmParser/X86/x86_32-fma3-encoding.s b/test/MC/X86/x86-32-fma3.s
index db7efec..db7efec 100644
--- a/test/MC/AsmParser/X86/x86_32-fma3-encoding.s
+++ b/test/MC/X86/x86-32-fma3.s
diff --git a/test/MC/AsmParser/X86/x86_32-new-encoder.s b/test/MC/X86/x86-32.s
index e3aa188..de6b963 100644
--- a/test/MC/AsmParser/X86/x86_32-new-encoder.s
+++ b/test/MC/X86/x86-32.s
@@ -15,9 +15,15 @@
monitor
// CHECK: monitor
// CHECK: encoding: [0x0f,0x01,0xc8]
+ monitor %eax, %ecx, %edx
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
mwait
// CHECK: mwait
// CHECK: encoding: [0x0f,0x01,0xc9]
+ mwait %eax, %ecx
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
vmcall
// CHECK: vmcall
@@ -57,6 +63,11 @@ rdtscp
// CHECK: shrl %eax # encoding: [0xd1,0xe8]
shrl $1, %eax
+// CHECK: shll %eax # encoding: [0xd1,0xe0]
+ sall $1, %eax
+// CHECK: shll %eax # encoding: [0xd1,0xe0]
+ sal $1, %eax
+
// moffset forms of moves, rdar://7947184
movb 0, %al // CHECK: movb 0, %al # encoding: [0xa0,A,A,A,A]
movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0xa1,A,A,A,A]
@@ -107,6 +118,10 @@ retl
// CHECK: encoding: [0x0f,0x42,0xd0]
cmovbl %eax,%edx
+// CHECK: cmovbw %bx, %bx
+cmovnae %bx,%bx
+
+
// CHECK: cmovbel %eax, %edx
// CHECK: encoding: [0x0f,0x46,0xd0]
cmovbel %eax,%edx
@@ -423,3 +438,373 @@ retl
// CHECK: lcalll $2, $4660
// CHECK: encoding: [0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
lcalll $0x2, $0x1234
+
+
+// rdar://8061602
+L1:
+ jcxz L1
+// CHECK: jcxz L1
+// CHECK: encoding: [0x67,0xe3,A]
+ jecxz L1
+// CHECK: jecxz L1
+// CHECK: encoding: [0xe3,A]
+
+// rdar://8403974
+iret
+// CHECK: iretl
+// CHECK: encoding: [0xcf]
+iretw
+// CHECK: iretw
+// CHECK: encoding: [0x66,0xcf]
+iretl
+// CHECK: iretl
+// CHECK: encoding: [0xcf]
+
+// rdar://8403907
+sysret
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretl
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+
+// rdar://8018260
+testl %ecx, -24(%ebp)
+// CHECK: testl -24(%ebp), %ecx
+testl -24(%ebp), %ecx
+// CHECK: testl -24(%ebp), %ecx
+
+
+// rdar://8407242
+push %cs
+// CHECK: pushl %cs
+// CHECK: encoding: [0x0e]
+push %ds
+// CHECK: pushl %ds
+// CHECK: encoding: [0x1e]
+push %ss
+// CHECK: pushl %ss
+// CHECK: encoding: [0x16]
+push %es
+// CHECK: pushl %es
+// CHECK: encoding: [0x06]
+push %fs
+// CHECK: pushl %fs
+// CHECK: encoding: [0x0f,0xa0]
+push %gs
+// CHECK: pushl %gs
+// CHECK: encoding: [0x0f,0xa8]
+
+pushw %cs
+// CHECK: pushw %cs
+// CHECK: encoding: [0x66,0x0e]
+pushw %ds
+// CHECK: pushw %ds
+// CHECK: encoding: [0x66,0x1e]
+pushw %ss
+// CHECK: pushw %ss
+// CHECK: encoding: [0x66,0x16]
+pushw %es
+// CHECK: pushw %es
+// CHECK: encoding: [0x66,0x06]
+pushw %fs
+// CHECK: pushw %fs
+// CHECK: encoding: [0x66,0x0f,0xa0]
+pushw %gs
+// CHECK: pushw %gs
+// CHECK: encoding: [0x66,0x0f,0xa8]
+
+pop %ss
+// CHECK: popl %ss
+// CHECK: encoding: [0x17]
+pop %ds
+// CHECK: popl %ds
+// CHECK: encoding: [0x1f]
+pop %es
+// CHECK: popl %es
+// CHECK: encoding: [0x07]
+
+// rdar://8408129
+pushfd
+// CHECK: pushfl
+popfd
+// CHECK: popfl
+pushfl
+// CHECK: pushfl
+popfl
+// CHECK: popfl
+
+
+// rdar://8416805
+ setc %bl
+ setnae %bl
+ setnb %bl
+ setnc %bl
+ setna %bl
+ setnbe %bl
+ setpe %bl
+ setpo %bl
+ setnge %bl
+ setnl %bl
+ setng %bl
+ setnle %bl
+
+// PR8686
+ setneb %cl // CHECK: setne %cl
+ setcb %bl // CHECK: setb %bl
+ setnaeb %bl // CHECK: setb %bl
+
+
+// CHECK: lcalll $31438, $31438
+// CHECK: lcalll $31438, $31438
+// CHECK: ljmpl $31438, $31438
+// CHECK: ljmpl $31438, $31438
+
+calll $0x7ace,$0x7ace
+lcalll $0x7ace,$0x7ace
+jmpl $0x7ace,$0x7ace
+ljmpl $0x7ace,$0x7ace
+
+// CHECK: lcalll $31438, $31438
+// CHECK: lcalll $31438, $31438
+// CHECK: ljmpl $31438, $31438
+// CHECK: ljmpl $31438, $31438
+
+call $0x7ace,$0x7ace
+lcall $0x7ace,$0x7ace
+jmp $0x7ace,$0x7ace
+ljmp $0x7ace,$0x7ace
+
+// rdar://8456370
+// CHECK: calll a
+ calll a
+
+// CHECK: incb %al # encoding: [0xfe,0xc0]
+ incb %al
+
+// CHECK: incw %ax # encoding: [0x66,0x40]
+ incw %ax
+
+// CHECK: incl %eax # encoding: [0x40]
+ incl %eax
+
+// CHECK: decb %al # encoding: [0xfe,0xc8]
+ decb %al
+
+// CHECK: decw %ax # encoding: [0x66,0x48]
+ decw %ax
+
+// CHECK: decl %eax # encoding: [0x48]
+ decl %eax
+
+// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
+pshufw $14, %mm4, %mm0
+
+// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
+// PR8288
+pshufw $90, %mm4, %mm0
+
+// rdar://8416805
+// CHECK: aaa
+// CHECK: encoding: [0x37]
+ aaa
+
+// CHECK: aad $1
+// CHECK: encoding: [0xd5,0x01]
+ aad $1
+
+// CHECK: aad $10
+// CHECK: encoding: [0xd5,0x0a]
+ aad $0xA
+
+// CHECK: aad $10
+// CHECK: encoding: [0xd5,0x0a]
+ aad
+
+// CHECK: aam $2
+// CHECK: encoding: [0xd4,0x02]
+ aam $2
+
+// CHECK: aam $10
+// CHECK: encoding: [0xd4,0x0a]
+ aam $0xA
+
+// CHECK: aam $10
+// CHECK: encoding: [0xd4,0x0a]
+ aam
+
+// CHECK: aas
+// CHECK: encoding: [0x3f]
+ aas
+
+// CHECK: daa
+// CHECK: encoding: [0x27]
+ daa
+
+// CHECK: das
+// CHECK: encoding: [0x2f]
+ das
+
+// CHECK: retw $31438
+// CHECK: encoding: [0x66,0xc2,0xce,0x7a]
+ retw $0x7ace
+
+// CHECK: lretw $31438
+// CHECK: encoding: [0x66,0xca,0xce,0x7a]
+ lretw $0x7ace
+
+// CHECK: bound 2(%eax), %bx
+// CHECK: encoding: [0x66,0x62,0x58,0x02]
+ bound 2(%eax),%bx
+
+// CHECK: bound 4(%ebx), %ecx
+// CHECK: encoding: [0x62,0x4b,0x04]
+ bound 4(%ebx),%ecx
+
+// CHECK: arpl %bx, %bx
+// CHECK: encoding: [0x63,0xdb]
+ arpl %bx,%bx
+
+// CHECK: arpl %bx, 6(%ecx)
+// CHECK: encoding: [0x63,0x59,0x06]
+ arpl %bx,6(%ecx)
+
+// CHECK: lgdtw 4(%eax)
+// CHECK: encoding: [0x66,0x0f,0x01,0x50,0x04]
+ lgdtw 4(%eax)
+
+// CHECK: lgdt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x50,0x04]
+ lgdt 4(%eax)
+
+// CHECK: lgdt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x50,0x04]
+ lgdtl 4(%eax)
+
+// CHECK: lidtw 4(%eax)
+// CHECK: encoding: [0x66,0x0f,0x01,0x58,0x04]
+ lidtw 4(%eax)
+
+// CHECK: lidt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x58,0x04]
+ lidt 4(%eax)
+
+// CHECK: lidt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x58,0x04]
+ lidtl 4(%eax)
+
+// CHECK: sgdtw 4(%eax)
+// CHECK: encoding: [0x66,0x0f,0x01,0x40,0x04]
+ sgdtw 4(%eax)
+
+// CHECK: sgdt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x40,0x04]
+ sgdt 4(%eax)
+
+// CHECK: sgdt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x40,0x04]
+ sgdtl 4(%eax)
+
+// CHECK: sidtw 4(%eax)
+// CHECK: encoding: [0x66,0x0f,0x01,0x48,0x04]
+ sidtw 4(%eax)
+
+// CHECK: sidt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x48,0x04]
+ sidt 4(%eax)
+
+// CHECK: sidt 4(%eax)
+// CHECK: encoding: [0x0f,0x01,0x48,0x04]
+ sidtl 4(%eax)
+
+// CHECK: fcompi %st(2)
+// CHECK: encoding: [0xdf,0xf2]
+ fcompi %st(2), %st
+
+// CHECK: fcompi %st(2)
+// CHECK: encoding: [0xdf,0xf2]
+ fcompi %st(2)
+
+// CHECK: fcompi %st(1)
+// CHECK: encoding: [0xdf,0xf1]
+ fcompi
+
+// CHECK: fucompi %st(2)
+// CHECK: encoding: [0xdf,0xea]
+ fucompi %st(2),%st
+
+// CHECK: fucompi %st(2)
+// CHECK: encoding: [0xdf,0xea]
+ fucompi %st(2)
+
+// CHECK: fucompi %st(1)
+// CHECK: encoding: [0xdf,0xe9]
+ fucompi
+
+// CHECK: fldcw 32493
+// CHECK: encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
+ fldcww 0x7eed
+
+// CHECK: fldcw 32493
+// CHECK: encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
+ fldcw 0x7eed
+
+// CHECK: fnstcw 32493
+// CHECK: encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
+ fnstcww 0x7eed
+
+// CHECK: fnstcw 32493
+// CHECK: encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
+ fnstcw 0x7eed
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fstcww 0x7eed
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fstcw 0x7eed
+
+// CHECK: fnstsw 32493
+// CHECK: encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
+ fnstsww 0x7eed
+
+// CHECK: fnstsw 32493
+// CHECK: encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
+ fnstsw 0x7eed
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fstsww 0x7eed
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fstsw 0x7eed
+
+// CHECK: verr 32493
+// CHECK: encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
+ verrw 0x7eed
+
+// CHECK: verr 32493
+// CHECK: encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
+ verr 0x7eed
+
+// CHECK: wait
+// CHECK: encoding: [0x9b]
+ fclex
+
+// CHECK: fnclex
+// CHECK: encoding: [0xdb,0xe2]
+ fnclex
+
+// CHECK: ud2
+// CHECK: encoding: [0x0f,0x0b]
+ ud2
+
+// CHECK: ud2
+// CHECK: encoding: [0x0f,0x0b]
+ ud2a
+
+// CHECK: ud2b
+// CHECK: encoding: [0x0f,0xb9]
+ ud2b
diff --git a/test/MC/X86/x86-64.s b/test/MC/X86/x86-64.s
new file mode 100644
index 0000000..c8b6414
--- /dev/null
+++ b/test/MC/X86/x86-64.s
@@ -0,0 +1,944 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err
+// RUN: FileCheck < %t %s
+// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
+
+ monitor
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
+ monitor %rax, %rcx, %rdx
+// CHECK: monitor
+// CHECK: encoding: [0x0f,0x01,0xc8]
+ mwait
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
+ mwait %rax, %rcx
+// CHECK: mwait
+// CHECK: encoding: [0x0f,0x01,0xc9]
+
+// Suffix inference:
+
+// CHECK: addl $0, %eax
+ add $0, %eax
+// CHECK: addb $255, %al
+ add $0xFF, %al
+// CHECK: orq %rax, %rdx
+ or %rax, %rdx
+// CHECK: shlq $3, %rax
+ shl $3, %rax
+
+
+// CHECK: subb %al, %al
+ subb %al, %al
+
+// CHECK: addl $24, %eax
+ addl $24, %eax
+
+// CHECK: movl %eax, 10(%ebp)
+ movl %eax, 10(%ebp)
+// CHECK: movl %eax, 10(%ebp,%ebx)
+ movl %eax, 10(%ebp, %ebx)
+// CHECK: movl %eax, 10(%ebp,%ebx,4)
+ movl %eax, 10(%ebp, %ebx, 4)
+// CHECK: movl %eax, 10(,%ebx,4)
+ movl %eax, 10(, %ebx, 4)
+
+// CHECK: movl 0, %eax
+ movl 0, %eax
+// CHECK: movl $0, %eax
+ movl $0, %eax
+
+// CHECK: ret
+ ret
+
+// FIXME: Check that this matches SUB32ri8
+// CHECK: subl $1, %eax
+ subl $1, %eax
+
+// FIXME: Check that this matches SUB32ri8
+// CHECK: subl $-1, %eax
+ subl $-1, %eax
+
+// FIXME: Check that this matches SUB32ri
+// CHECK: subl $256, %eax
+ subl $256, %eax
+
+// FIXME: Check that this matches XOR64ri8
+// CHECK: xorq $1, %rax
+ xorq $1, %rax
+
+// FIXME: Check that this matches XOR64ri32
+// CHECK: xorq $256, %rax
+ xorq $256, %rax
+
+// FIXME: Check that this matches SUB8rr
+// CHECK: subb %al, %bl
+ subb %al, %bl
+
+// FIXME: Check that this matches SUB16rr
+// CHECK: subw %ax, %bx
+ subw %ax, %bx
+
+// FIXME: Check that this matches SUB32rr
+// CHECK: subl %eax, %ebx
+ subl %eax, %ebx
+
+// FIXME: Check that this matches the correct instruction.
+// CHECK: callq *%rax
+ call *%rax
+
+// FIXME: Check that this matches the correct instruction.
+// CHECK: shldl %cl, %eax, %ebx
+ shldl %cl, %eax, %ebx
+
+// CHECK: shll $2, %eax
+ shll $2, %eax
+
+// CHECK: shll $2, %eax
+ sall $2, %eax
+
+// CHECK: rep
+// CHECK: insb
+ rep;insb
+
+// CHECK: rep
+// CHECK: outsb
+ rep;outsb
+
+// CHECK: rep
+// CHECK: movsb
+ rep;movsb
+
+
+// rdar://8470918
+smovb // CHECK: movsb
+smovw // CHECK: movsw
+smovl // CHECK: movsl
+smovq // CHECK: movsq
+
+// rdar://8456361
+// CHECK: rep
+// CHECK: movsl
+ rep movsd
+
+// CHECK: rep
+// CHECK: lodsb
+ rep;lodsb
+
+// CHECK: rep
+// CHECK: stosb
+ rep;stosb
+
+// NOTE: repz and repe have the same opcode as rep
+// CHECK: rep
+// CHECK: cmpsb
+ repz;cmpsb
+
+// NOTE: repnz has the same opcode as repne
+// CHECK: repne
+// CHECK: cmpsb
+ repnz;cmpsb
+
+// NOTE: repe and repz have the same opcode as rep
+// CHECK: rep
+// CHECK: scasb
+ repe;scasb
+
+// CHECK: repne
+// CHECK: scasb
+ repne;scasb
+
+// CHECK: lock
+// CHECK: cmpxchgb %al, (%ebx)
+ lock;cmpxchgb %al, 0(%ebx)
+
+// CHECK: cs
+// CHECK: movb (%eax), %al
+ cs;movb 0(%eax), %al
+
+// CHECK: ss
+// CHECK: movb (%eax), %al
+ ss;movb 0(%eax), %al
+
+// CHECK: ds
+// CHECK: movb (%eax), %al
+ ds;movb 0(%eax), %al
+
+// CHECK: es
+// CHECK: movb (%eax), %al
+ es;movb 0(%eax), %al
+
+// CHECK: fs
+// CHECK: movb (%eax), %al
+ fs;movb 0(%eax), %al
+
+// CHECK: gs
+// CHECK: movb (%eax), %al
+ gs;movb 0(%eax), %al
+
+// CHECK: fadd %st(0)
+// CHECK: fadd %st(1)
+// CHECK: fadd %st(7)
+
+fadd %st(0)
+fadd %st(1)
+fadd %st(7)
+
+// CHECK: leal 0, %eax
+ leal 0, %eax
+
+// rdar://7986634 - Insensitivity on opcodes.
+// CHECK: int3
+INT3
+
+
+// Allow scale factor without index register.
+// CHECK: movaps %xmm3, (%esi)
+// CHECK-STDERR: warning: scale factor without index register is ignored
+movaps %xmm3, (%esi, 2)
+
+// CHECK: imull $12, %eax, %eax
+imul $12, %eax
+
+// CHECK: imull %ecx, %eax
+imull %ecx, %eax
+
+
+// rdar://8208481
+// CHECK: outb %al, $161
+outb %al, $161
+// CHECK: outw %ax, $128
+outw %ax, $128
+// CHECK: inb $161, %al
+inb $161, %al
+
+// rdar://8017621
+// CHECK: pushq $1
+push $1
+
+// rdar://8017530
+// CHECK: sldtw 4
+sldt 4
+
+// rdar://8208499
+// CHECK: cmovnew %bx, %ax
+cmovnz %bx, %ax
+// CHECK: cmovneq %rbx, %rax
+cmovnzq %rbx, %rax
+
+
+// rdar://8407928
+// CHECK: inb $127, %al
+// CHECK: inw %dx, %ax
+// CHECK: outb %al, $127
+// CHECK: outw %ax, %dx
+// CHECK: inl %dx, %eax
+inb $0x7f
+inw %dx
+outb $0x7f
+outw %dx
+inl %dx
+
+
+// PR8114
+// CHECK: outb %al, %dx
+// CHECK: outw %ax, %dx
+// CHECK: outl %eax, %dx
+
+out %al, (%dx)
+out %ax, (%dx)
+outl %eax, (%dx)
+
+
+// rdar://8431422
+
+// CHECK: fxch %st(1)
+// CHECK: fucom %st(1)
+// CHECK: fucomp %st(1)
+// CHECK: faddp %st(1)
+// CHECK: faddp %st(0)
+// CHECK: fsubp %st(1)
+// CHECK: fsubrp %st(1)
+// CHECK: fmulp %st(1)
+// CHECK: fdivp %st(1)
+// CHECK: fdivrp %st(1)
+
+fxch
+fucom
+fucomp
+faddp
+faddp %st
+fsubp
+fsubrp
+fmulp
+fdivp
+fdivrp
+
+// CHECK: fcomi %st(1)
+// CHECK: fcomi %st(2)
+// CHECK: fucomi %st(1)
+// CHECK: fucomi %st(2)
+// CHECK: fucomi %st(2)
+
+fcomi
+fcomi %st(2)
+fucomi
+fucomi %st(2)
+fucomi %st(2), %st
+
+// CHECK: fnstsw %ax
+// CHECK: fnstsw %ax
+// CHECK: fnstsw %ax
+// CHECK: fnstsw %ax
+
+fnstsw
+fnstsw %ax
+fnstsw %eax
+fnstsw %al
+
+// rdar://8431880
+// CHECK: rclb %bl
+// CHECK: rcll 3735928559(%ebx,%ecx,8)
+// CHECK: rcrl %ecx
+// CHECK: rcrl 305419896
+rcl %bl
+rcll 0xdeadbeef(%ebx,%ecx,8)
+rcr %ecx
+rcrl 0x12345678
+
+rclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3]
+rclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3]
+rclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02]
+
+// rdar://8418316
+// CHECK: shldw $1, %bx, %bx
+// CHECK: shldw $1, %bx, %bx
+// CHECK: shrdw $1, %bx, %bx
+// CHECK: shrdw $1, %bx, %bx
+
+shld %bx,%bx
+shld $1, %bx,%bx
+shrd %bx,%bx
+shrd $1, %bx,%bx
+
+// CHECK: sldtl %ecx
+// CHECK: encoding: [0x0f,0x00,0xc1]
+// CHECK: sldtw %cx
+// CHECK: encoding: [0x66,0x0f,0x00,0xc1]
+
+sldt %ecx
+sldt %cx
+
+// CHECK: lcalll *3135175374
+// CHECK: ljmpl *3135175374
+lcall *0xbadeface
+ljmp *0xbadeface
+
+
+// rdar://8444631
+// CHECK: enter $31438, $0
+// CHECK: encoding: [0xc8,0xce,0x7a,0x00]
+// CHECK: enter $31438, $1
+// CHECK: encoding: [0xc8,0xce,0x7a,0x01]
+// CHECK: enter $31438, $127
+// CHECK: encoding: [0xc8,0xce,0x7a,0x7f]
+enter $0x7ace,$0
+enter $0x7ace,$1
+enter $0x7ace,$0x7f
+
+
+// rdar://8456364
+// CHECK: movw %cs, %ax
+mov %CS, %ax
+
+// rdar://8456391
+fcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0)
+fcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0)
+fcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0)
+fcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0)
+
+fcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0)
+fcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0)
+fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0)
+fcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0)
+
+fcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0)
+fcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0)
+
+fcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0)
+fcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0)
+
+// rdar://8456417
+.byte 88 + 1 & 15 // CHECK: .byte 9
+
+// rdar://8456412
+mov %rdx, %cr0
+// CHECK: movq %rdx, %cr0
+// CHECK: encoding: [0x0f,0x22,0xc2]
+mov %rdx, %cr4
+// CHECK: movq %rdx, %cr4
+// CHECK: encoding: [0x0f,0x22,0xe2]
+mov %rdx, %cr8
+// CHECK: movq %rdx, %cr8
+// CHECK: encoding: [0x44,0x0f,0x22,0xc2]
+mov %rdx, %cr15
+// CHECK: movq %rdx, %cr15
+// CHECK: encoding: [0x44,0x0f,0x22,0xfa]
+
+// rdar://8456371 - Handle commutable instructions written backward.
+// CHECK: faddp %st(1)
+// CHECK: fmulp %st(2)
+faddp %st, %st(1)
+fmulp %st, %st(2)
+
+// rdar://8468087 - Encode these accurately, they are not synonyms.
+// CHECK: fmul %st(0), %st(1)
+// CHECK: encoding: [0xdc,0xc9]
+// CHECK: fmul %st(1)
+// CHECK: encoding: [0xd8,0xc9]
+fmul %st, %st(1)
+fmul %st(1), %st
+
+// CHECK: fadd %st(0), %st(1)
+// CHECK: encoding: [0xdc,0xc1]
+// CHECK: fadd %st(1)
+// CHECK: encoding: [0xd8,0xc1]
+fadd %st, %st(1)
+fadd %st(1), %st
+
+
+// rdar://8416805
+// CHECK: xorb %al, %al
+// CHECK: encoding: [0x30,0xc0]
+// CHECK: xorw %di, %di
+// CHECK: encoding: [0x66,0x31,0xff]
+// CHECK: xorl %esi, %esi
+// CHECK: encoding: [0x31,0xf6]
+// CHECK: xorq %rsi, %rsi
+// CHECK: encoding: [0x48,0x31,0xf6]
+clrb %al
+clr %di
+clr %esi
+clr %rsi
+
+// rdar://8456378
+cltq // CHECK: cltq
+cdqe // CHECK: cltq
+cwde // CHECK: cwtl
+cwtl // CHECK: cwtl
+
+// rdar://8416805
+cbw // CHECK: cbtw
+cwd // CHECK: cwtd
+cdq // CHECK: cltd
+
+// rdar://8456378 and PR7557 - fstsw
+fstsw %ax
+// CHECK: wait
+// CHECK: fnstsw %ax
+fstsw (%rax)
+// CHECK: wait
+// CHECK: fnstsw (%rax)
+
+// PR8259
+fstcw (%rsp)
+// CHECK: wait
+// CHECK: fnstcw (%rsp)
+
+// PR8259
+fstcw (%rsp)
+// CHECK: wait
+// CHECK: fnstcw (%rsp)
+
+// PR8258
+finit
+// CHECK: wait
+// CHECK: fninit
+
+fsave 32493
+// CHECK: wait
+// CHECK: fnsave 32493
+
+
+// rdar://8456382 - cvtsd2si support.
+cvtsd2si %xmm1, %rax
+// CHECK: cvtsd2siq %xmm1, %rax
+// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1]
+cvtsd2si %xmm1, %eax
+// CHECK: cvtsd2sil %xmm1, %eax
+// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1]
+
+cvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax
+cvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil %xmm0, %eax
+cvtsd2si %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax
+
+
+cvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0
+cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0
+
+cvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0
+cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0
+
+// rdar://8456376 - llvm-mc rejects 'roundss'
+roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
+roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
+roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
+roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
+
+
+// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix)
+leal 8(%eax), %esi
+// CHECK: leal 8(%eax), %esi
+// CHECK: encoding: [0x67,0x8d,0x70,0x08]
+leaq 8(%eax), %rsi
+// CHECK: leaq 8(%eax), %rsi
+// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08]
+leaq 8(%rax), %rsi
+// CHECK: leaq 8(%rax), %rsi
+// CHECK: encoding: [0x48,0x8d,0x70,0x08]
+
+
+cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5
+// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5
+// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
+
+// rdar://8490728 - llvm-mc rejects 'movmskpd'
+movmskpd %xmm6, %rax
+// CHECK: movmskpd %xmm6, %rax
+// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6]
+movmskpd %xmm6, %eax
+// CHECK: movmskpd %xmm6, %eax
+// CHECK: encoding: [0x66,0x0f,0x50,0xc6]
+
+// rdar://8491845 - Gas supports commuted forms of non-commutable instructions.
+fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9]
+fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9]
+
+fsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9]
+fsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9]
+
+// also PR8861
+fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1]
+fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1]
+
+
+movl foo(%rip), %eax
+// CHECK: movl foo(%rip), %eax
+// CHECK: encoding: [0x8b,0x05,A,A,A,A]
+// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
+
+movb $12, foo(%rip)
+// CHECK: movb $12, foo(%rip)
+// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
+// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
+
+movw $12, foo(%rip)
+// CHECK: movw $12, foo(%rip)
+// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
+// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
+
+movl $12, foo(%rip)
+// CHECK: movl $12, foo(%rip)
+// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
+// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
+
+movq $12, foo(%rip)
+// CHECK: 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
+
+// CHECK: addq $-424, %rax
+// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
+addq $-424, %rax
+
+
+// CHECK: movq _foo@GOTPCREL(%rip), %rax
+// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A]
+// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
+movq _foo@GOTPCREL(%rip), %rax
+
+// CHECK: movq _foo@GOTPCREL(%rip), %r14
+// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A]
+// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
+movq _foo@GOTPCREL(%rip), %r14
+
+
+// CHECK: movq (%r13,%rax,8), %r13
+// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
+movq 0x00(%r13,%rax,8),%r13
+
+// CHECK: testq %rax, %rbx
+// CHECK: encoding: [0x48,0x85,0xd8]
+testq %rax, %rbx
+
+// CHECK: cmpq %rbx, %r14
+// CHECK: encoding: [0x49,0x39,0xde]
+ cmpq %rbx, %r14
+
+// rdar://7947167
+
+movsq
+// CHECK: movsq
+// CHECK: encoding: [0x48,0xa5]
+
+movsl
+// CHECK: movsl
+// CHECK: encoding: [0xa5]
+
+stosq
+// CHECK: stosq
+// CHECK: encoding: [0x48,0xab]
+stosl
+// CHECK: stosl
+// CHECK: encoding: [0xab]
+
+
+// Not moffset forms of moves, they are x86-32 only! rdar://7947184
+movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
+movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
+movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
+
+// CHECK: pushfq # encoding: [0x9c]
+ pushf
+// CHECK: pushfq # encoding: [0x9c]
+ pushfq
+// CHECK: popfq # encoding: [0x9d]
+ popf
+// CHECK: popfq # encoding: [0x9d]
+ popfq
+
+// CHECK: movabsq $-281474976710654, %rax
+// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
+ movabsq $0xFFFF000000000002, %rax
+
+// CHECK: movabsq $-281474976710654, %rax
+// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
+ movq $0xFFFF000000000002, %rax
+
+// CHECK: movq $-65536, %rax
+// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
+ movq $0xFFFFFFFFFFFF0000, %rax
+
+// CHECK: movq $-256, %rax
+// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
+ movq $0xFFFFFFFFFFFFFF00, %rax
+
+// CHECK: movq $10, %rax
+// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
+ movq $10, %rax
+
+// rdar://8014869
+//
+// CHECK: ret
+// CHECK: encoding: [0xc3]
+ retq
+
+// CHECK: sete %al
+// CHECK: encoding: [0x0f,0x94,0xc0]
+ setz %al
+
+// CHECK: setne %al
+// CHECK: encoding: [0x0f,0x95,0xc0]
+ setnz %al
+
+// CHECK: je 0
+// CHECK: encoding: [0x74,A]
+ jz 0
+
+// CHECK: jne
+// CHECK: encoding: [0x75,A]
+ jnz 0
+
+// PR9264
+btl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
+bt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
+
+// rdar://8017515
+btq $0x01,%rdx
+// CHECK: btq $1, %rdx
+// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01]
+
+//rdar://8017633
+// CHECK: movzbl %al, %esi
+// CHECK: encoding: [0x0f,0xb6,0xf0]
+ movzx %al, %esi
+
+// CHECK: movzbq %al, %rsi
+// CHECK: encoding: [0x48,0x0f,0xb6,0xf0]
+ movzx %al, %rsi
+
+// CHECK: movsbw %al, %ax
+// CHECK: encoding: [0x66,0x0f,0xbe,0xc0]
+movsx %al, %ax
+
+// CHECK: movsbl %al, %eax
+// CHECK: encoding: [0x0f,0xbe,0xc0]
+movsx %al, %eax
+
+// CHECK: movswl %ax, %eax
+// CHECK: encoding: [0x0f,0xbf,0xc0]
+movsx %ax, %eax
+
+// CHECK: movsbq %bl, %rax
+// CHECK: encoding: [0x48,0x0f,0xbe,0xc3]
+movsx %bl, %rax
+
+// CHECK: movswq %cx, %rax
+// CHECK: encoding: [0x48,0x0f,0xbf,0xc1]
+movsx %cx, %rax
+
+// CHECK: movslq %edi, %rax
+// CHECK: encoding: [0x48,0x63,0xc7]
+movsx %edi, %rax
+
+// CHECK: movzbw %al, %ax
+// CHECK: encoding: [0x66,0x0f,0xb6,0xc0]
+movzx %al, %ax
+
+// CHECK: movzbl %al, %eax
+// CHECK: encoding: [0x0f,0xb6,0xc0]
+movzx %al, %eax
+
+// CHECK: movzwl %ax, %eax
+// CHECK: encoding: [0x0f,0xb7,0xc0]
+movzx %ax, %eax
+
+// CHECK: movzbq %bl, %rax
+// CHECK: encoding: [0x48,0x0f,0xb6,0xc3]
+movzx %bl, %rax
+
+// CHECK: movzwq %cx, %rax
+// CHECK: encoding: [0x48,0x0f,0xb7,0xc1]
+movzx %cx, %rax
+
+// CHECK: movsbw (%rax), %ax
+// CHECK: encoding: [0x66,0x0f,0xbe,0x00]
+movsx (%rax), %ax
+
+// CHECK: movzbw (%rax), %ax
+// CHECK: encoding: [0x66,0x0f,0xb6,0x00]
+movzx (%rax), %ax
+
+
+// rdar://7873482
+// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
+ movl %gs:124, %eax
+
+// CHECK: jmpq *8(%rax)
+// CHECK: encoding: [0xff,0x60,0x08]
+ jmp *8(%rax)
+
+// CHECK: btq $61, -216(%rbp)
+// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
+ btq $61, -216(%rbp)
+
+
+// rdar://8061602
+L1:
+ jecxz L1
+// CHECK: jecxz L1
+// CHECK: encoding: [0x67,0xe3,A]
+ jrcxz L1
+// CHECK: jrcxz L1
+// CHECK: encoding: [0xe3,A]
+
+// PR8061
+xchgl 368(%rax),%ecx
+// CHECK: xchgl %ecx, 368(%rax)
+xchgl %ecx, 368(%rax)
+// CHECK: xchgl %ecx, 368(%rax)
+
+// rdar://8407548
+xchg 0xdeadbeef(%rbx,%rcx,8),%bl
+// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8)
+
+
+
+// PR7254
+lock incl 1(%rsp)
+// CHECK: lock
+// CHECK: incl 1(%rsp)
+
+// rdar://8741045
+lock/incl 1(%rsp)
+// CHECK: lock
+// CHECK: incl 1(%rsp)
+
+// rdar://8033482
+rep movsl
+// CHECK: rep
+// CHECK: encoding: [0xf3]
+// CHECK: movsl
+// CHECK: encoding: [0xa5]
+
+
+// rdar://8403974
+iret
+// CHECK: iretl
+// CHECK: encoding: [0xcf]
+iretw
+// CHECK: iretw
+// CHECK: encoding: [0x66,0xcf]
+iretl
+// CHECK: iretl
+// CHECK: encoding: [0xcf]
+iretq
+// CHECK: iretq
+// CHECK: encoding: [0x48,0xcf]
+
+// rdar://8416805
+// CHECK: retw $31438
+// CHECK: encoding: [0x66,0xc2,0xce,0x7a]
+ retw $0x7ace
+
+// CHECK: lretw $31438
+// CHECK: encoding: [0x66,0xca,0xce,0x7a]
+ lretw $0x7ace
+
+// PR8592
+lretq // CHECK: lretq # encoding: [0x48,0xcb]
+lretl // CHECK: lretl # encoding: [0xcb]
+lret // CHECK: lretl # encoding: [0xcb]
+
+// rdar://8403907
+sysret
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretl
+// CHECK: sysretl
+// CHECK: encoding: [0x0f,0x07]
+sysretq
+// CHECK: sysretq
+// CHECK: encoding: [0x48,0x0f,0x07]
+
+// rdar://8407242
+push %fs
+// CHECK: pushq %fs
+// CHECK: encoding: [0x0f,0xa0]
+push %gs
+// CHECK: pushq %gs
+// CHECK: encoding: [0x0f,0xa8]
+
+pushw %fs
+// CHECK: pushw %fs
+// CHECK: encoding: [0x66,0x0f,0xa0]
+pushw %gs
+// CHECK: pushw %gs
+// CHECK: encoding: [0x66,0x0f,0xa8]
+
+
+pop %fs
+// CHECK: popq %fs
+// CHECK: encoding: [0x0f,0xa1]
+pop %gs
+// CHECK: popq %gs
+// CHECK: encoding: [0x0f,0xa9]
+
+popw %fs
+// CHECK: popw %fs
+// CHECK: encoding: [0x66,0x0f,0xa1]
+popw %gs
+// CHECK: popw %gs
+// CHECK: encoding: [0x66,0x0f,0xa9]
+
+// rdar://8438816
+fildq -8(%rsp)
+fildll -8(%rsp)
+// CHECK: fildll -8(%rsp)
+// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
+// CHECK: fildll -8(%rsp)
+// CHECK: encoding: [0xdf,0x6c,0x24,0xf8]
+
+// CHECK: callq a
+ callq a
+
+// CHECK: leaq -40(%rbp), %r15
+ leaq -40(%rbp), %r15
+
+
+
+// rdar://8013734 - Alias dr6=db6
+mov %dr6, %rax
+mov %db6, %rax
+// CHECK: movq %dr6, %rax
+// CHECK: movq %dr6, %rax
+
+
+// INC/DEC encodings.
+incb %al // CHECK: incb %al # encoding: [0xfe,0xc0]
+incw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0]
+incl %eax // CHECK: incl %eax # encoding: [0xff,0xc0]
+decb %al // CHECK: decb %al # encoding: [0xfe,0xc8]
+decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8]
+decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8]
+
+// rdar://8416805
+// CHECK: lgdt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x50,0x04]
+ lgdt 4(%rax)
+
+// CHECK: lgdt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x50,0x04]
+ lgdtq 4(%rax)
+
+// CHECK: lidt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x58,0x04]
+ lidt 4(%rax)
+
+// CHECK: lidt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x58,0x04]
+ lidtq 4(%rax)
+
+// CHECK: sgdt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x40,0x04]
+ sgdt 4(%rax)
+
+// CHECK: sgdt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x40,0x04]
+ sgdtq 4(%rax)
+
+// CHECK: sidt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x48,0x04]
+ sidt 4(%rax)
+
+// CHECK: sidt 4(%rax)
+// CHECK: encoding: [0x0f,0x01,0x48,0x04]
+ sidtq 4(%rax)
+
+
+// rdar://8208615
+mov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e]
+mov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e]
+
+
+// rdar://8431864
+ div %bl,%al
+ div %bx,%ax
+ div %ecx,%eax
+ div 0xdeadbeef(%ebx,%ecx,8),%eax
+ div 0x45,%eax
+ div 0x7eed,%eax
+ div 0xbabecafe,%eax
+ div 0x12345678,%eax
+ idiv %bl,%al
+ idiv %bx,%ax
+ idiv %ecx,%eax
+ idiv 0xdeadbeef(%ebx,%ecx,8),%eax
+ idiv 0x45,%eax
+ idiv 0x7eed,%eax
+ idiv 0xbabecafe,%eax
+ idiv 0x12345678,%eax
+
+// PR8524
+movd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
+movd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
+movq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8]
+movq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb]
+
+rex64 // CHECK: rex64 # encoding: [0x48]
+data16 // CHECK: data16 # encoding: [0x66]
+
+// PR8855
+movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx
+
+// PR8946
+movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8]
diff --git a/test/MC/AsmParser/X86/x86_64-avx-clmul-encoding.s b/test/MC/X86/x86_64-avx-clmul-encoding.s
index 67e82c6..67e82c6 100644
--- a/test/MC/AsmParser/X86/x86_64-avx-clmul-encoding.s
+++ b/test/MC/X86/x86_64-avx-clmul-encoding.s
diff --git a/test/MC/AsmParser/X86/x86_64-avx-encoding.s b/test/MC/X86/x86_64-avx-encoding.s
index 7a96bb5..7a96bb5 100644
--- a/test/MC/AsmParser/X86/x86_64-avx-encoding.s
+++ b/test/MC/X86/x86_64-avx-encoding.s
diff --git a/test/MC/AsmParser/X86/x86_64-encoding.s b/test/MC/X86/x86_64-encoding.s
index f45b0a2..756da4d 100644
--- a/test/MC/AsmParser/X86/x86_64-encoding.s
+++ b/test/MC/X86/x86_64-encoding.s
@@ -140,3 +140,18 @@ pshufb CPI1_0(%rip), %xmm1
// CHECK: encoding: [0x48,0x8b,0x04,0xe1]
movq (%rcx,%riz,8), %rax
+// CHECK: fxsaveq (%rax)
+// CHECK: encoding: [0x48,0x0f,0xae,0x00]
+ fxsaveq (%rax)
+
+// CHECK: fxrstorq (%rax)
+// CHECK: encoding: [0x48,0x0f,0xae,0x08]
+ fxrstorq (%rax)
+
+// CHECK: leave
+// CHECK: encoding: [0xc9]
+ leave
+
+// CHECK: leave
+// CHECK: encoding: [0xc9]
+ leaveq
diff --git a/test/MC/AsmParser/X86/x86_64-fma3-encoding.s b/test/MC/X86/x86_64-fma3-encoding.s
index d08a732..d08a732 100644
--- a/test/MC/AsmParser/X86/x86_64-fma3-encoding.s
+++ b/test/MC/X86/x86_64-fma3-encoding.s
diff --git a/test/MC/AsmParser/X86/x86_64-imm-widths.s b/test/MC/X86/x86_64-imm-widths.s
index 6243717..97b60ff 100644
--- a/test/MC/AsmParser/X86/x86_64-imm-widths.s
+++ b/test/MC/X86/x86_64-imm-widths.s
@@ -84,11 +84,11 @@
// CHECK: encoding: [0x48,0x05,0xff,0xff,0x00,0x00]
addq $0xFFFF, %rax
-// CHECK: movq $4294967168, %rax
+// CHECK: movabsq $4294967168, %rax
// CHECK: encoding: [0x48,0xb8,0x80,0xff,0xff,0xff,0x00,0x00,0x00,0x00]
movq $0xFFFFFF80, %rax
-// CHECK: movq $4294967295, %rax
+// CHECK: movabsq $4294967295, %rax
// CHECK: encoding: [0x48,0xb8,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]
movq $0xFFFFFFFF, %rax
diff --git a/test/MC/AsmParser/X86/x86_word_directive.s b/test/MC/X86/x86_directives.s
index 2950c8c..2950c8c 100644
--- a/test/MC/AsmParser/X86/x86_word_directive.s
+++ b/test/MC/X86/x86_directives.s
diff --git a/test/MC/AsmParser/X86/x86_instruction_errors.s b/test/MC/X86/x86_errors.s
index 183306b..183306b 100644
--- a/test/MC/AsmParser/X86/x86_instruction_errors.s
+++ b/test/MC/X86/x86_errors.s
diff --git a/test/MC/AsmParser/X86/x86_operands.s b/test/MC/X86/x86_operands.s
index ddadf79..b34713d 100644
--- a/test/MC/AsmParser/X86/x86_operands.s
+++ b/test/MC/X86/x86_operands.s
@@ -46,11 +46,11 @@
addl $1, 1(,%ebx,(2+2))
# '*'
-# CHECK: call a
+# CHECK: calll a
call a
-# CHECK: call *%eax
+# CHECK: calll *%eax
call *%eax
-# CHECK: call *4(%eax)
+# CHECK: calll *4(%eax)
call *4(%eax)
# CHECK: movl %gs:8, %eax
OpenPOWER on IntegriCloud