[llvm] dbf520f - [llvm-readobj][test] - Move platform specific test cases and their inputs to separate folders.

Georgii Rymar via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 10 00:45:36 PST 2019


Author: Georgii Rymar
Date: 2019-12-10T11:36:23+03:00
New Revision: dbf520f617440d62ca46f64cdc41159945911902

URL: https://github.com/llvm/llvm-project/commit/dbf520f617440d62ca46f64cdc41159945911902
DIFF: https://github.com/llvm/llvm-project/commit/dbf520f617440d62ca46f64cdc41159945911902.diff

LOG: [llvm-readobj][test] - Move platform specific test cases and their inputs to separate folders.

This creates the next subfolders in the test directory:
"COFF", "ELF", "MachO", "wasm".

I've also removed platform specific prefixes, like "coff-*".
One unused binary was removed as well: `Inputs/relocs.obj.elf-mips`

Differential revision: https://reviews.llvm.org/D71203

Added: 
    llvm/test/tools/llvm-readobj/COFF/Inputs/aix_xcoff_xlc_test8.o
    llvm/test/tools/llvm-readobj/COFF/Inputs/arm64-win1.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/arm64-win2.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/bad-relocs.obj.coff-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/basereloc.obj.coff-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/bigobj.coff-x86-64
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-cycle.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-inlinees.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-inlining.obj.coff
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-label.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-1.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-2.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-anon.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-types.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-unsorted.obj
    llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-vftable.obj.coff
    llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-data-end.exe
    llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-x64.dll
    llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-x86.dll
    llvm/test/tools/llvm-readobj/COFF/Inputs/coff-no-load-config.exe
    llvm/test/tools/llvm-readobj/COFF/Inputs/comdat-function-linetables.obj.coff-2012-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/comdat-function-linetables.obj.coff-2013-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/const-import.lib
    llvm/test/tools/llvm-readobj/COFF/Inputs/cxx-cli-aux.cpp
    llvm/test/tools/llvm-readobj/COFF/Inputs/cxx-cli-aux.obj.coff-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/directives.obj.coff-x86_64
    llvm/test/tools/llvm-readobj/COFF/Inputs/export-arm.dll
    llvm/test/tools/llvm-readobj/COFF/Inputs/export-x64.dll
    llvm/test/tools/llvm-readobj/COFF/Inputs/export-x86.dll
    llvm/test/tools/llvm-readobj/COFF/Inputs/has_pdb.exe
    llvm/test/tools/llvm-readobj/COFF/Inputs/imports.exe.coff-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/imports.exe.coff-x86-64
    llvm/test/tools/llvm-readobj/COFF/Inputs/library.lib
    llvm/test/tools/llvm-readobj/COFF/Inputs/magic.coff-importlib
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2012-i368
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2012-x86_64
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2013-i368
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2013-x86_64
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2012-i368
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2012-x86_64
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2013-i368
    llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2013-x86_64
    llvm/test/tools/llvm-readobj/COFF/Inputs/needed-libs.obj.coff-am64
    llvm/test/tools/llvm-readobj/COFF/Inputs/nop.exe.coff-x86-64
    llvm/test/tools/llvm-readobj/COFF/Inputs/relocs-no-symtab.obj.coff-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/resources/cursor_small.bmp
    llvm/test/tools/llvm-readobj/COFF/Inputs/resources/okay_small.bmp
    llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.obj.coff
    llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.rc
    llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.res
    llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.exe.coff-arm
    llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-arm
    llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-i386
    llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-x86-64
    llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-64.o
    llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-neg-sym-count.o
    llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-neg-time.o
    llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic.o
    llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-reloc-overflow.o
    llvm/test/tools/llvm-readobj/COFF/Inputs/zero-string-table.obj.coff-i386
    llvm/test/tools/llvm-readobj/COFF/arm-baserelocs.test
    llvm/test/tools/llvm-readobj/COFF/arm64-many-epilogs.s
    llvm/test/tools/llvm-readobj/COFF/arm64-win-error1.s
    llvm/test/tools/llvm-readobj/COFF/arm64-win-error2.s
    llvm/test/tools/llvm-readobj/COFF/arm64-win-error3.s
    llvm/test/tools/llvm-readobj/COFF/basereloc.test
    llvm/test/tools/llvm-readobj/COFF/bigobj.test
    llvm/test/tools/llvm-readobj/COFF/codeview-inlinees.test
    llvm/test/tools/llvm-readobj/COFF/codeview-inlining.test
    llvm/test/tools/llvm-readobj/COFF/codeview-label.test
    llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test
    llvm/test/tools/llvm-readobj/COFF/codeview-merging-anon.test
    llvm/test/tools/llvm-readobj/COFF/codeview-merging-cycle.test
    llvm/test/tools/llvm-readobj/COFF/codeview-merging-ghash.test
    llvm/test/tools/llvm-readobj/COFF/codeview-merging-unsorted.test
    llvm/test/tools/llvm-readobj/COFF/codeview-merging.test
    llvm/test/tools/llvm-readobj/COFF/codeview-types.test
    llvm/test/tools/llvm-readobj/COFF/codeview-vftable.test
    llvm/test/tools/llvm-readobj/COFF/const-import.test
    llvm/test/tools/llvm-readobj/COFF/cxx-cli-aux.test
    llvm/test/tools/llvm-readobj/COFF/debug-directory.test
    llvm/test/tools/llvm-readobj/COFF/directives.test
    llvm/test/tools/llvm-readobj/COFF/exports-implib.test
    llvm/test/tools/llvm-readobj/COFF/exports.test
    llvm/test/tools/llvm-readobj/COFF/file-headers.test
    llvm/test/tools/llvm-readobj/COFF/file-sections-reading.test
    llvm/test/tools/llvm-readobj/COFF/imports.test
    llvm/test/tools/llvm-readobj/COFF/load-config.test
    llvm/test/tools/llvm-readobj/COFF/needed-libs.test
    llvm/test/tools/llvm-readobj/COFF/non-null-terminated-file.test
    llvm/test/tools/llvm-readobj/COFF/peplus.test
    llvm/test/tools/llvm-readobj/COFF/reloc-types-coff-i386.test
    llvm/test/tools/llvm-readobj/COFF/reloc-types-coff-x64.test
    llvm/test/tools/llvm-readobj/COFF/reloc_overflow.test
    llvm/test/tools/llvm-readobj/COFF/res-resources.test
    llvm/test/tools/llvm-readobj/COFF/resources.test
    llvm/test/tools/llvm-readobj/COFF/unwind-arm64-windows.test
    llvm/test/tools/llvm-readobj/COFF/xcoff-basic.test
    llvm/test/tools/llvm-readobj/COFF/xcoff-overflow-section.test
    llvm/test/tools/llvm-readobj/COFF/xcoff-sections.test
    llvm/test/tools/llvm-readobj/COFF/xcoff-symbols.test
    llvm/test/tools/llvm-readobj/COFF/zero-string-table.test
    llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-note-gnu-property.s
    llvm/test/tools/llvm-readobj/ELF/AArch64/dwarf-cfi.s
    llvm/test/tools/llvm-readobj/ELF/AArch64/lit.local.cfg
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-0.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-1.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-10.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-11.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-12.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-13.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-136.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-14.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-15.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-2.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-3.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-4.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-5.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-6.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-7.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-8.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-9.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-A.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-M.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-R.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-S.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-conformance-1.s
    llvm/test/tools/llvm-readobj/ELF/ARM/attribute-conformance-2.s
    llvm/test/tools/llvm-readobj/ELF/ARM/dwarf-cfi.s
    llvm/test/tools/llvm-readobj/ELF/ARM/lit.local.cfg
    llvm/test/tools/llvm-readobj/ELF/ARM/unwind.s
    llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mips
    llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/compression.zlib.style.elf-x86-64
    llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-exe.mips
    llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.mips
    llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.x86
    llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table.c
    llvm/test/tools/llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml
    llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs1.s
    llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs2.s
    llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs3.s
    llvm/test/tools/llvm-readobj/ELF/Inputs/elf-relr-relocs1.s
    llvm/test/tools/llvm-readobj/ELF/Inputs/elf-relr-relocs2.s
    llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-i386
    llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc
    llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc64
    llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-x86_64
    llvm/test/tools/llvm-readobj/ELF/Inputs/got-empty.exe.mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/got-over.exe.elf-mips
    llvm/test/tools/llvm-readobj/ELF/Inputs/got-plt.exe.elf-mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/got-static.exe.mips
    llvm/test/tools/llvm-readobj/ELF/Inputs/got-tls.so.elf-mips64el
    llvm/test/tools/llvm-readobj/ELF/Inputs/mips-options.elf-mips64el
    llvm/test/tools/llvm-readobj/ELF/Inputs/mips-rld-map-rel.elf-mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/options.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/phdrs-elf.exe-i386
    llvm/test/tools/llvm-readobj/ELF/Inputs/phdrs-elf.exe-x86_64
    llvm/test/tools/llvm-readobj/ELF/Inputs/ppc64.exe
    llvm/test/tools/llvm-readobj/ELF/Inputs/reginfo.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/relocs.obj.elf-x86_64
    llvm/test/tools/llvm-readobj/ELF/Inputs/rpath.exe.elf-x86_64
    llvm/test/tools/llvm-readobj/ELF/Inputs/st-other.obj.elf-mips
    llvm/test/tools/llvm-readobj/ELF/Inputs/st-other.obj.elf-mips16
    llvm/test/tools/llvm-readobj/ELF/Inputs/symbols-proc-specific.elf-hexagon
    llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.ll
    llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-amdhsa-gfx803
    llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-i386
    llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-x86-64
    llvm/test/tools/llvm-readobj/ELF/addrsig.test
    llvm/test/tools/llvm-readobj/ELF/all.test
    llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-definitions.test
    llvm/test/tools/llvm-readobj/ELF/broken-dynamic-reloc-name.test
    llvm/test/tools/llvm-readobj/ELF/broken-dynsym-link.test
    llvm/test/tools/llvm-readobj/ELF/broken-group.test
    llvm/test/tools/llvm-readobj/ELF/check-output-order.test
    llvm/test/tools/llvm-readobj/ELF/demangle.test
    llvm/test/tools/llvm-readobj/ELF/dependent-libraries.test
    llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test
    llvm/test/tools/llvm-readobj/ELF/dynamic-empty.test
    llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test
    llvm/test/tools/llvm-readobj/ELF/dynamic-no-pt-dynamic.test
    llvm/test/tools/llvm-readobj/ELF/dynamic-not-in-pt-dynamic.test
    llvm/test/tools/llvm-readobj/ELF/dynamic-table-dtnull.s
    llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test
    llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
    llvm/test/tools/llvm-readobj/ELF/file-headers.test
    llvm/test/tools/llvm-readobj/ELF/file-name.test
    llvm/test/tools/llvm-readobj/ELF/file-types.test
    llvm/test/tools/llvm-readobj/ELF/gnu-file-headers.test
    llvm/test/tools/llvm-readobj/ELF/gnu-note-size.test
    llvm/test/tools/llvm-readobj/ELF/gnu-notes.test
    llvm/test/tools/llvm-readobj/ELF/gnu-phdrs.test
    llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-phdrs.test
    llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-shdrs.test
    llvm/test/tools/llvm-readobj/ELF/gnu-sections.test
    llvm/test/tools/llvm-readobj/ELF/gnu-symbols.test
    llvm/test/tools/llvm-readobj/ELF/gnuhash.test
    llvm/test/tools/llvm-readobj/ELF/groups.test
    llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
    llvm/test/tools/llvm-readobj/ELF/hash-symbols.test
    llvm/test/tools/llvm-readobj/ELF/headers.test
    llvm/test/tools/llvm-readobj/ELF/hex-dump-multi.s
    llvm/test/tools/llvm-readobj/ELF/hidden-versym.test
    llvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test
    llvm/test/tools/llvm-readobj/ELF/linker-options.test
    llvm/test/tools/llvm-readobj/ELF/loadname.test
    llvm/test/tools/llvm-readobj/ELF/machine-specific-section-types.test
    llvm/test/tools/llvm-readobj/ELF/malformed-pt-dynamic.test
    llvm/test/tools/llvm-readobj/ELF/many-sections.s
    llvm/test/tools/llvm-readobj/ELF/many-sections2.s
    llvm/test/tools/llvm-readobj/ELF/merged.test
    llvm/test/tools/llvm-readobj/ELF/mips-abiflags.test
    llvm/test/tools/llvm-readobj/ELF/mips-got-overlapped.test
    llvm/test/tools/llvm-readobj/ELF/mips-got.test
    llvm/test/tools/llvm-readobj/ELF/mips-options-sec.test
    llvm/test/tools/llvm-readobj/ELF/mips-options.test
    llvm/test/tools/llvm-readobj/ELF/mips-plt.test
    llvm/test/tools/llvm-readobj/ELF/mips-reginfo.test
    llvm/test/tools/llvm-readobj/ELF/mips-rld-map-rel.test
    llvm/test/tools/llvm-readobj/ELF/mips-st-other.test
    llvm/test/tools/llvm-readobj/ELF/no-action.test
    llvm/test/tools/llvm-readobj/ELF/no-phdrs.test
    llvm/test/tools/llvm-readobj/ELF/no-relocs.test
    llvm/test/tools/llvm-readobj/ELF/no-shdrs.test
    llvm/test/tools/llvm-readobj/ELF/non-dynamic-in-pt-dynamic.test
    llvm/test/tools/llvm-readobj/ELF/note-amd.s
    llvm/test/tools/llvm-readobj/ELF/note-amdgpu.test
    llvm/test/tools/llvm-readobj/ELF/note-core-ntfile-bad.test
    llvm/test/tools/llvm-readobj/ELF/note-core-ntfile.test
    llvm/test/tools/llvm-readobj/ELF/note-core.test
    llvm/test/tools/llvm-readobj/ELF/note-freebsd.s
    llvm/test/tools/llvm-readobj/ELF/note-generic.s
    llvm/test/tools/llvm-readobj/ELF/note-gnu-property.s
    llvm/test/tools/llvm-readobj/ELF/note-gnu-property2.s
    llvm/test/tools/llvm-readobj/ELF/note-unknown.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-empty.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s
    llvm/test/tools/llvm-readobj/ELF/packed-relocs.test
    llvm/test/tools/llvm-readobj/ELF/ppc64-glink.test
    llvm/test/tools/llvm-readobj/ELF/program-headers.test
    llvm/test/tools/llvm-readobj/ELF/pt-gnu-property.test
    llvm/test/tools/llvm-readobj/ELF/readelf-s-alias.test
    llvm/test/tools/llvm-readobj/ELF/reloc-negative-addend-no-sym.test
    llvm/test/tools/llvm-readobj/ELF/reloc-no-sym.test
    llvm/test/tools/llvm-readobj/ELF/reloc-symbol-with-versioning.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-arm.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-i386.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-lanai.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips64.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-ppc64.test
    llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-x64.test
    llvm/test/tools/llvm-readobj/ELF/reloc-zero-name-or-value.test
    llvm/test/tools/llvm-readobj/ELF/relr-relocs.test
    llvm/test/tools/llvm-readobj/ELF/rpath.test
    llvm/test/tools/llvm-readobj/ELF/sec-compressed.test
    llvm/test/tools/llvm-readobj/ELF/sec-flags.test
    llvm/test/tools/llvm-readobj/ELF/section-symbols.test
    llvm/test/tools/llvm-readobj/ELF/section-types.test
    llvm/test/tools/llvm-readobj/ELF/stack-sizes.test
    llvm/test/tools/llvm-readobj/ELF/string-dump-multi.s
    llvm/test/tools/llvm-readobj/ELF/string-dump.test
    llvm/test/tools/llvm-readobj/ELF/symbol-64bit.test
    llvm/test/tools/llvm-readobj/ELF/symbol-binding.test
    llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test
    llvm/test/tools/llvm-readobj/ELF/symbol-types.test
    llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test
    llvm/test/tools/llvm-readobj/ELF/thin-archive-paths.test
    llvm/test/tools/llvm-readobj/ELF/types.test
    llvm/test/tools/llvm-readobj/ELF/unwind.test
    llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test
    llvm/test/tools/llvm-readobj/ELF/verneed-flags.yaml
    llvm/test/tools/llvm-readobj/ELF/verneed-invalid.test
    llvm/test/tools/llvm-readobj/ELF/versioninfo.test
    llvm/test/tools/llvm-readobj/ELF/versym-invalid.test
    llvm/test/tools/llvm-readobj/ELF/wrong-shstrtab-type.test
    llvm/test/tools/llvm-readobj/MachO/Inputs/macho-universal-archive.x86_64.i386
    llvm/test/tools/llvm-readobj/MachO/Inputs/macho-universal.x86_64.i386
    llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-arm
    llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-i386
    llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-x86_64
    llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-arm
    llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-i386
    llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-ppc
    llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-ppc64
    llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-x86-64
    llvm/test/tools/llvm-readobj/MachO/file-headers.test
    llvm/test/tools/llvm-readobj/MachO/needed-libs.test
    llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-arm.test
    llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-i386.test
    llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-x64.test
    llvm/test/tools/llvm-readobj/MachO/sections.test
    llvm/test/tools/llvm-readobj/MachO/universal-x86_64.i386.test
    llvm/test/tools/llvm-readobj/wasm/Inputs/trivial.obj.wasm
    llvm/test/tools/llvm-readobj/wasm/wasm-file-headers.test
    llvm/test/tools/llvm-readobj/wasm/wasm-imports.test
    llvm/test/tools/llvm-readobj/wasm/wasm-invalid.test

Modified: 
    llvm/test/tools/llvm-objdump/elf-dynamic-section-machine-specific.test
    llvm/test/tools/llvm-readobj/archive.test
    llvm/test/tools/llvm-readobj/basic.test
    llvm/test/tools/llvm-readobj/hex-dump.test
    llvm/test/tools/llvm-readobj/relocations.test
    llvm/test/tools/llvm-readobj/sections-ext.test
    llvm/test/tools/llvm-readobj/sections.test
    llvm/test/tools/llvm-readobj/symbols.test
    llvm/test/tools/llvm-readobj/thin-archive.test

Removed: 
    llvm/test/tools/llvm-readobj/AArch64/aarch64-note-gnu-property.s
    llvm/test/tools/llvm-readobj/AArch64/dwarf-cfi.s
    llvm/test/tools/llvm-readobj/AArch64/lit.local.cfg
    llvm/test/tools/llvm-readobj/ARM/attribute-0.s
    llvm/test/tools/llvm-readobj/ARM/attribute-1.s
    llvm/test/tools/llvm-readobj/ARM/attribute-10.s
    llvm/test/tools/llvm-readobj/ARM/attribute-11.s
    llvm/test/tools/llvm-readobj/ARM/attribute-12.s
    llvm/test/tools/llvm-readobj/ARM/attribute-13.s
    llvm/test/tools/llvm-readobj/ARM/attribute-136.s
    llvm/test/tools/llvm-readobj/ARM/attribute-14.s
    llvm/test/tools/llvm-readobj/ARM/attribute-15.s
    llvm/test/tools/llvm-readobj/ARM/attribute-2.s
    llvm/test/tools/llvm-readobj/ARM/attribute-3.s
    llvm/test/tools/llvm-readobj/ARM/attribute-4.s
    llvm/test/tools/llvm-readobj/ARM/attribute-5.s
    llvm/test/tools/llvm-readobj/ARM/attribute-6.s
    llvm/test/tools/llvm-readobj/ARM/attribute-7.s
    llvm/test/tools/llvm-readobj/ARM/attribute-8.s
    llvm/test/tools/llvm-readobj/ARM/attribute-9.s
    llvm/test/tools/llvm-readobj/ARM/attribute-A.s
    llvm/test/tools/llvm-readobj/ARM/attribute-M.s
    llvm/test/tools/llvm-readobj/ARM/attribute-R.s
    llvm/test/tools/llvm-readobj/ARM/attribute-S.s
    llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s
    llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s
    llvm/test/tools/llvm-readobj/ARM/dwarf-cfi.s
    llvm/test/tools/llvm-readobj/ARM/lit.local.cfg
    llvm/test/tools/llvm-readobj/ARM/unwind.s
    llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips
    llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/Inputs/aix_xcoff_xlc_test8.o
    llvm/test/tools/llvm-readobj/Inputs/arm64-win1.obj
    llvm/test/tools/llvm-readobj/Inputs/arm64-win2.obj
    llvm/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386
    llvm/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386
    llvm/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64
    llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-inlining.obj.coff
    llvm/test/tools/llvm-readobj/Inputs/codeview-label.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-merging-1.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-merging-2.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-merging-anon.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-types.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj
    llvm/test/tools/llvm-readobj/Inputs/codeview-vftable.obj.coff
    llvm/test/tools/llvm-readobj/Inputs/coff-load-config-data-end.exe
    llvm/test/tools/llvm-readobj/Inputs/coff-load-config-x64.dll
    llvm/test/tools/llvm-readobj/Inputs/coff-load-config-x86.dll
    llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe
    llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386
    llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386
    llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64
    llvm/test/tools/llvm-readobj/Inputs/const-import.lib
    llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp
    llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386
    llvm/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64
    llvm/test/tools/llvm-readobj/Inputs/dynamic-table-exe.mips
    llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.mips
    llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.x86
    llvm/test/tools/llvm-readobj/Inputs/dynamic-table.c
    llvm/test/tools/llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml
    llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s
    llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs2.s
    llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs3.s
    llvm/test/tools/llvm-readobj/Inputs/elf-relr-relocs1.s
    llvm/test/tools/llvm-readobj/Inputs/elf-relr-relocs2.s
    llvm/test/tools/llvm-readobj/Inputs/export-arm.dll
    llvm/test/tools/llvm-readobj/Inputs/export-x64.dll
    llvm/test/tools/llvm-readobj/Inputs/export-x86.dll
    llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-i386
    llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc
    llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc64
    llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-x86_64
    llvm/test/tools/llvm-readobj/Inputs/got-empty.exe.mipsel
    llvm/test/tools/llvm-readobj/Inputs/got-over.exe.elf-mips
    llvm/test/tools/llvm-readobj/Inputs/got-plt.exe.elf-mipsel
    llvm/test/tools/llvm-readobj/Inputs/got-static.exe.mips
    llvm/test/tools/llvm-readobj/Inputs/got-tls.so.elf-mips64el
    llvm/test/tools/llvm-readobj/Inputs/has_pdb.exe
    llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386
    llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64
    llvm/test/tools/llvm-readobj/Inputs/library.lib
    llvm/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386
    llvm/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386
    llvm/test/tools/llvm-readobj/Inputs/magic.coff-importlib
    llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el
    llvm/test/tools/llvm-readobj/Inputs/mips-rld-map-rel.elf-mipsel
    llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368
    llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64
    llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368
    llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64
    llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368
    llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64
    llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368
    llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64
    llvm/test/tools/llvm-readobj/Inputs/needed-libs.obj.coff-am64
    llvm/test/tools/llvm-readobj/Inputs/nop.exe.coff-x86-64
    llvm/test/tools/llvm-readobj/Inputs/options.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-i386
    llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-x86_64
    llvm/test/tools/llvm-readobj/Inputs/ppc64.exe
    llvm/test/tools/llvm-readobj/Inputs/reginfo.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386
    llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips
    llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-x86_64
    llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-arm
    llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-i386
    llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-x86_64
    llvm/test/tools/llvm-readobj/Inputs/relocs.py
    llvm/test/tools/llvm-readobj/Inputs/resources/cursor_small.bmp
    llvm/test/tools/llvm-readobj/Inputs/resources/okay_small.bmp
    llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.obj.coff
    llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.rc
    llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.res
    llvm/test/tools/llvm-readobj/Inputs/rpath.exe.elf-x86_64
    llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips
    llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips16
    llvm/test/tools/llvm-readobj/Inputs/symbols-proc-specific.elf-hexagon
    llvm/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm
    llvm/test/tools/llvm-readobj/Inputs/trivial.ll
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-i386
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-x86-64
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-amdhsa-gfx803
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-i386
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-mipsel
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-x86-64
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-arm
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-i386
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc64
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-x86-64
    llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm
    llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-64.o
    llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-neg-sym-count.o
    llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-neg-time.o
    llvm/test/tools/llvm-readobj/Inputs/xcoff-basic.o
    llvm/test/tools/llvm-readobj/Inputs/xcoff-reloc-overflow.o
    llvm/test/tools/llvm-readobj/Inputs/zero-string-table.obj.coff-i386
    llvm/test/tools/llvm-readobj/all.test
    llvm/test/tools/llvm-readobj/amdgpu-elf-definitions.test
    llvm/test/tools/llvm-readobj/arm64-many-epilogs.s
    llvm/test/tools/llvm-readobj/arm64-win-error1.s
    llvm/test/tools/llvm-readobj/arm64-win-error2.s
    llvm/test/tools/llvm-readobj/arm64-win-error3.s
    llvm/test/tools/llvm-readobj/bigobj.test
    llvm/test/tools/llvm-readobj/broken-group.test
    llvm/test/tools/llvm-readobj/check-output-order.test
    llvm/test/tools/llvm-readobj/codeview-inlinees.test
    llvm/test/tools/llvm-readobj/codeview-inlining.test
    llvm/test/tools/llvm-readobj/codeview-label.test
    llvm/test/tools/llvm-readobj/codeview-linetables.test
    llvm/test/tools/llvm-readobj/codeview-merging-anon.test
    llvm/test/tools/llvm-readobj/codeview-merging-cycle.test
    llvm/test/tools/llvm-readobj/codeview-merging-ghash.test
    llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test
    llvm/test/tools/llvm-readobj/codeview-merging.test
    llvm/test/tools/llvm-readobj/codeview-types.test
    llvm/test/tools/llvm-readobj/codeview-vftable.test
    llvm/test/tools/llvm-readobj/coff-arm-baserelocs.test
    llvm/test/tools/llvm-readobj/coff-basereloc.test
    llvm/test/tools/llvm-readobj/coff-const-import.test
    llvm/test/tools/llvm-readobj/coff-debug-directory.test
    llvm/test/tools/llvm-readobj/coff-directives.test
    llvm/test/tools/llvm-readobj/coff-exports-implib.test
    llvm/test/tools/llvm-readobj/coff-exports.test
    llvm/test/tools/llvm-readobj/coff-file-headers.test
    llvm/test/tools/llvm-readobj/coff-file-sections-reading.test
    llvm/test/tools/llvm-readobj/coff-load-config.test
    llvm/test/tools/llvm-readobj/coff-needed-libs.test
    llvm/test/tools/llvm-readobj/coff-non-null-terminated-file.test
    llvm/test/tools/llvm-readobj/coff-resources.test
    llvm/test/tools/llvm-readobj/coff-zero-string-table.test
    llvm/test/tools/llvm-readobj/cxx-cli-aux.test
    llvm/test/tools/llvm-readobj/demangle.test
    llvm/test/tools/llvm-readobj/dyn-symbols.test
    llvm/test/tools/llvm-readobj/elf-addrsig.test
    llvm/test/tools/llvm-readobj/elf-broken-dynamic-reloc-name.test
    llvm/test/tools/llvm-readobj/elf-broken-dynsym-link.test
    llvm/test/tools/llvm-readobj/elf-dependent-libraries.test
    llvm/test/tools/llvm-readobj/elf-dynamic-empty.test
    llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test
    llvm/test/tools/llvm-readobj/elf-dynamic-no-pt-dynamic.test
    llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test
    llvm/test/tools/llvm-readobj/elf-dynamic-table-dtnull.s
    llvm/test/tools/llvm-readobj/elf-dynamic-tags-machine-specific.test
    llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
    llvm/test/tools/llvm-readobj/elf-file-headers.test
    llvm/test/tools/llvm-readobj/elf-file-types.test
    llvm/test/tools/llvm-readobj/elf-gnuhash.test
    llvm/test/tools/llvm-readobj/elf-groups.test
    llvm/test/tools/llvm-readobj/elf-hash-histogram.test
    llvm/test/tools/llvm-readobj/elf-hash-symbols.test
    llvm/test/tools/llvm-readobj/elf-hidden-versym.test
    llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test
    llvm/test/tools/llvm-readobj/elf-linker-options.test
    llvm/test/tools/llvm-readobj/elf-loadname.test
    llvm/test/tools/llvm-readobj/elf-machine-specific-section-types.test
    llvm/test/tools/llvm-readobj/elf-malformed-pt-dynamic.test
    llvm/test/tools/llvm-readobj/elf-no-action.test
    llvm/test/tools/llvm-readobj/elf-no-phdrs.test
    llvm/test/tools/llvm-readobj/elf-no-relocs.test
    llvm/test/tools/llvm-readobj/elf-no-shdrs.test
    llvm/test/tools/llvm-readobj/elf-non-dynamic-in-pt-dynamic.test
    llvm/test/tools/llvm-readobj/elf-packed-relocs-empty.s
    llvm/test/tools/llvm-readobj/elf-packed-relocs-error1.s
    llvm/test/tools/llvm-readobj/elf-packed-relocs-error2.s
    llvm/test/tools/llvm-readobj/elf-packed-relocs-error3.s
    llvm/test/tools/llvm-readobj/elf-packed-relocs-error4.s
    llvm/test/tools/llvm-readobj/elf-packed-relocs-error5.s
    llvm/test/tools/llvm-readobj/elf-packed-relocs.test
    llvm/test/tools/llvm-readobj/elf-pt-gnu-property.test
    llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test
    llvm/test/tools/llvm-readobj/elf-reloc-no-sym.test
    llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test
    llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test
    llvm/test/tools/llvm-readobj/elf-relr-relocs.test
    llvm/test/tools/llvm-readobj/elf-sec-compressed.test
    llvm/test/tools/llvm-readobj/elf-sec-flags.test
    llvm/test/tools/llvm-readobj/elf-section-symbols.test
    llvm/test/tools/llvm-readobj/elf-section-types.test
    llvm/test/tools/llvm-readobj/elf-symbol-64bit.test
    llvm/test/tools/llvm-readobj/elf-symbol-binding.test
    llvm/test/tools/llvm-readobj/elf-symbol-shndx.test
    llvm/test/tools/llvm-readobj/elf-symbol-types.test
    llvm/test/tools/llvm-readobj/elf-symbol-visibility.test
    llvm/test/tools/llvm-readobj/elf-types.test
    llvm/test/tools/llvm-readobj/elf-verdef-invalid.test
    llvm/test/tools/llvm-readobj/elf-verneed-flags.yaml
    llvm/test/tools/llvm-readobj/elf-verneed-invalid.test
    llvm/test/tools/llvm-readobj/elf-versioninfo.test
    llvm/test/tools/llvm-readobj/elf-versym-invalid.test
    llvm/test/tools/llvm-readobj/elf-wrong-shstrtab-type.test
    llvm/test/tools/llvm-readobj/file-name.test
    llvm/test/tools/llvm-readobj/gnu-file-headers.test
    llvm/test/tools/llvm-readobj/gnu-note-size.test
    llvm/test/tools/llvm-readobj/gnu-notes.test
    llvm/test/tools/llvm-readobj/gnu-phdrs.test
    llvm/test/tools/llvm-readobj/gnu-section-mapping-no-phdrs.test
    llvm/test/tools/llvm-readobj/gnu-section-mapping-no-shdrs.test
    llvm/test/tools/llvm-readobj/gnu-sections.test
    llvm/test/tools/llvm-readobj/gnu-symbols.test
    llvm/test/tools/llvm-readobj/headers.test
    llvm/test/tools/llvm-readobj/hex-dump-multi.s
    llvm/test/tools/llvm-readobj/imports.test
    llvm/test/tools/llvm-readobj/macho-file-headers.test
    llvm/test/tools/llvm-readobj/macho-needed-libs.test
    llvm/test/tools/llvm-readobj/macho-sections.test
    llvm/test/tools/llvm-readobj/macho-universal-x86_64.i386.test
    llvm/test/tools/llvm-readobj/many-sections.s
    llvm/test/tools/llvm-readobj/many-sections2.s
    llvm/test/tools/llvm-readobj/merged.test
    llvm/test/tools/llvm-readobj/mips-abiflags.test
    llvm/test/tools/llvm-readobj/mips-got-overlapped.test
    llvm/test/tools/llvm-readobj/mips-got.test
    llvm/test/tools/llvm-readobj/mips-options-sec.test
    llvm/test/tools/llvm-readobj/mips-options.test
    llvm/test/tools/llvm-readobj/mips-plt.test
    llvm/test/tools/llvm-readobj/mips-reginfo.test
    llvm/test/tools/llvm-readobj/mips-rld-map-rel.test
    llvm/test/tools/llvm-readobj/mips-st-other.test
    llvm/test/tools/llvm-readobj/note-amd.s
    llvm/test/tools/llvm-readobj/note-amdgpu.test
    llvm/test/tools/llvm-readobj/note-core-ntfile-bad.test
    llvm/test/tools/llvm-readobj/note-core-ntfile.test
    llvm/test/tools/llvm-readobj/note-core.test
    llvm/test/tools/llvm-readobj/note-freebsd.s
    llvm/test/tools/llvm-readobj/note-generic.s
    llvm/test/tools/llvm-readobj/note-gnu-property.s
    llvm/test/tools/llvm-readobj/note-gnu-property2.s
    llvm/test/tools/llvm-readobj/note-unknown.s
    llvm/test/tools/llvm-readobj/peplus.test
    llvm/test/tools/llvm-readobj/ppc64-glink.test
    llvm/test/tools/llvm-readobj/program-headers.test
    llvm/test/tools/llvm-readobj/readelf-s-alias.test
    llvm/test/tools/llvm-readobj/reloc-types-coff-i386.test
    llvm/test/tools/llvm-readobj/reloc-types-coff-x64.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-aarch64.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-arm.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-lanai.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-mips.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-mips64.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-ppc64.test
    llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test
    llvm/test/tools/llvm-readobj/reloc-types-macho-arm.test
    llvm/test/tools/llvm-readobj/reloc-types-macho-i386.test
    llvm/test/tools/llvm-readobj/reloc-types-macho-x64.test
    llvm/test/tools/llvm-readobj/reloc_overflow.test
    llvm/test/tools/llvm-readobj/res-resources.test
    llvm/test/tools/llvm-readobj/rpath.test
    llvm/test/tools/llvm-readobj/stack-sizes.test
    llvm/test/tools/llvm-readobj/string-dump-multi.s
    llvm/test/tools/llvm-readobj/string-dump.test
    llvm/test/tools/llvm-readobj/thin-archive-paths.test
    llvm/test/tools/llvm-readobj/unwind-arm64-windows.test
    llvm/test/tools/llvm-readobj/unwind.test
    llvm/test/tools/llvm-readobj/wasm-file-headers.test
    llvm/test/tools/llvm-readobj/wasm-imports.test
    llvm/test/tools/llvm-readobj/wasm-invalid.test
    llvm/test/tools/llvm-readobj/xcoff-basic.test
    llvm/test/tools/llvm-readobj/xcoff-overflow-section.test
    llvm/test/tools/llvm-readobj/xcoff-sections.test
    llvm/test/tools/llvm-readobj/xcoff-symbols.test


################################################################################
diff  --git a/llvm/test/tools/llvm-objdump/elf-dynamic-section-machine-specific.test b/llvm/test/tools/llvm-objdump/elf-dynamic-section-machine-specific.test
index 2355dd9d81c2..e5780e0bcdac 100644
--- a/llvm/test/tools/llvm-objdump/elf-dynamic-section-machine-specific.test
+++ b/llvm/test/tools/llvm-objdump/elf-dynamic-section-machine-specific.test
@@ -1,6 +1,6 @@
 ## Test that hexagon machine-specific tags can be dumped.
 # RUN: yaml2obj --docnum=1 -o %t.hex \
-# RUN:          %S/../llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml
+# RUN:          %S/../llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml
 # RUN: llvm-objdump -p %t.hex | FileCheck %s --check-prefix=HEXAGON
 
 # HEXAGON:      Dynamic Section:
@@ -13,7 +13,7 @@
 
 ## Test that MIPS machine-specific tags can be dumped.
 # RUN: yaml2obj --docnum=2 -o %t.mips \
-# RUN:          %S/../llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml
+# RUN:          %S/../llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml
 # RUN: llvm-objdump -p %t.mips | FileCheck %s --check-prefix=MIPS
 
 # MIPS:      Dynamic Section:
@@ -68,7 +68,7 @@
 
 ## Test that PPC machine-specific tags can be dumped.
 # RUN: yaml2obj --docnum=3 -o %t.ppc \
-# RUN:          %S/../llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml
+# RUN:          %S/../llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml
 # RUN: llvm-objdump -p %t.ppc | FileCheck %s --check-prefix=PPC
 
 # PPC:      Dynamic Section:
@@ -79,7 +79,7 @@
 
 ## Test that PPC64 machine-specific tags can be dumped.
 # RUN: yaml2obj --docnum=4 -o %t.ppc64 \
-# RUN:          %S/../llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml
+# RUN:          %S/../llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml
 # RUN: llvm-objdump -p %t.ppc64 | FileCheck %s --check-prefix=PPC64
 
 # PPC64:      Dynamic Section:

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/aix_xcoff_xlc_test8.o b/llvm/test/tools/llvm-readobj/COFF/Inputs/aix_xcoff_xlc_test8.o
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/aix_xcoff_xlc_test8.o
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/aix_xcoff_xlc_test8.o

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/arm64-win1.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/arm64-win1.obj
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/arm64-win1.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/arm64-win1.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/arm64-win2.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/arm64-win2.obj
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/arm64-win2.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/arm64-win2.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/bad-relocs.obj.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/bad-relocs.obj.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/basereloc.obj.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/basereloc.obj.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/bigobj.coff-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/bigobj.coff-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-cycle.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-cycle.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-cycle.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-inlinees.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-inlinees.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-inlinees.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-inlining.obj.coff b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-inlining.obj.coff
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-inlining.obj.coff
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-inlining.obj.coff

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-label.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-label.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-label.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-label.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-merging-1.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-1.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-merging-1.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-1.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-merging-2.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-2.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-merging-2.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-2.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-merging-anon.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-anon.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-merging-anon.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-merging-anon.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-types.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-types.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-types.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-types.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-unsorted.obj
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-unsorted.obj
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-unsorted.obj

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/codeview-vftable.obj.coff b/llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-vftable.obj.coff
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/codeview-vftable.obj.coff
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/codeview-vftable.obj.coff

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/coff-load-config-data-end.exe b/llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-data-end.exe
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/coff-load-config-data-end.exe
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-data-end.exe

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/coff-load-config-x64.dll b/llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-x64.dll
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/coff-load-config-x64.dll
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-x64.dll

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/coff-load-config-x86.dll b/llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-x86.dll
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/coff-load-config-x86.dll
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/coff-load-config-x86.dll

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe b/llvm/test/tools/llvm-readobj/COFF/Inputs/coff-no-load-config.exe
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/coff-no-load-config.exe
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/coff-no-load-config.exe

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/comdat-function-linetables.obj.coff-2012-i386
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/comdat-function-linetables.obj.coff-2012-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/comdat-function-linetables.obj.coff-2013-i386
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/comdat-function-linetables.obj.coff-2013-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/const-import.lib b/llvm/test/tools/llvm-readobj/COFF/Inputs/const-import.lib
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/const-import.lib
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/const-import.lib

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp b/llvm/test/tools/llvm-readobj/COFF/Inputs/cxx-cli-aux.cpp
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/cxx-cli-aux.cpp

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/cxx-cli-aux.obj.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/cxx-cli-aux.obj.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/directives.obj.coff-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/directives.obj.coff-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/export-arm.dll b/llvm/test/tools/llvm-readobj/COFF/Inputs/export-arm.dll
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/export-arm.dll
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/export-arm.dll

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/export-x64.dll b/llvm/test/tools/llvm-readobj/COFF/Inputs/export-x64.dll
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/export-x64.dll
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/export-x64.dll

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/export-x86.dll b/llvm/test/tools/llvm-readobj/COFF/Inputs/export-x86.dll
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/export-x86.dll
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/export-x86.dll

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/has_pdb.exe b/llvm/test/tools/llvm-readobj/COFF/Inputs/has_pdb.exe
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/has_pdb.exe
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/has_pdb.exe

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/imports.exe.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/imports.exe.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/imports.exe.coff-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/imports.exe.coff-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/library.lib b/llvm/test/tools/llvm-readobj/COFF/Inputs/library.lib
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/library.lib
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/library.lib

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/magic.coff-importlib b/llvm/test/tools/llvm-readobj/COFF/Inputs/magic.coff-importlib
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/magic.coff-importlib
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/magic.coff-importlib

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2012-i368
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2012-i368

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2012-x86_64
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2012-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2013-i368
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2013-i368

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2013-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifile-linetables.obj.coff-2013-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2012-i368
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2012-i368

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2012-x86_64
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2012-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2013-i368
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2013-i368

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2013-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/multifunction-linetables.obj.coff-2013-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/needed-libs.obj.coff-am64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/needed-libs.obj.coff-am64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/needed-libs.obj.coff-am64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/needed-libs.obj.coff-am64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/nop.exe.coff-x86-64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/nop.exe.coff-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/nop.exe.coff-x86-64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/nop.exe.coff-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/relocs-no-symtab.obj.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/relocs-no-symtab.obj.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/resources/cursor_small.bmp b/llvm/test/tools/llvm-readobj/COFF/Inputs/resources/cursor_small.bmp
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/resources/cursor_small.bmp
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/resources/cursor_small.bmp

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/resources/okay_small.bmp b/llvm/test/tools/llvm-readobj/COFF/Inputs/resources/okay_small.bmp
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/resources/okay_small.bmp
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/resources/okay_small.bmp

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.obj.coff b/llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.obj.coff
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.obj.coff
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.obj.coff

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.rc b/llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.rc
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.rc
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.rc

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.res b/llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.res
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/resources/test_resource.res
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/resources/test_resource.res

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm b/llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.exe.coff-arm
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.exe.coff-arm

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm b/llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-arm
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-arm

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-x86-64 b/llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-x86-64
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/trivial.obj.coff-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-64.o b/llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-64.o
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-64.o
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-64.o

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-neg-sym-count.o b/llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-neg-sym-count.o
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-neg-sym-count.o
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-neg-sym-count.o

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-neg-time.o b/llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-neg-time.o
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/xcoff-basic-neg-time.o
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic-neg-time.o

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/xcoff-basic.o b/llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic.o
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/xcoff-basic.o
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-basic.o

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/xcoff-reloc-overflow.o b/llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-reloc-overflow.o
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/xcoff-reloc-overflow.o
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/xcoff-reloc-overflow.o

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/zero-string-table.obj.coff-i386 b/llvm/test/tools/llvm-readobj/COFF/Inputs/zero-string-table.obj.coff-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/zero-string-table.obj.coff-i386
rename to llvm/test/tools/llvm-readobj/COFF/Inputs/zero-string-table.obj.coff-i386

diff  --git a/llvm/test/tools/llvm-readobj/coff-arm-baserelocs.test b/llvm/test/tools/llvm-readobj/COFF/arm-baserelocs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-arm-baserelocs.test
rename to llvm/test/tools/llvm-readobj/COFF/arm-baserelocs.test

diff  --git a/llvm/test/tools/llvm-readobj/arm64-many-epilogs.s b/llvm/test/tools/llvm-readobj/COFF/arm64-many-epilogs.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/arm64-many-epilogs.s
rename to llvm/test/tools/llvm-readobj/COFF/arm64-many-epilogs.s

diff  --git a/llvm/test/tools/llvm-readobj/arm64-win-error1.s b/llvm/test/tools/llvm-readobj/COFF/arm64-win-error1.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/arm64-win-error1.s
rename to llvm/test/tools/llvm-readobj/COFF/arm64-win-error1.s

diff  --git a/llvm/test/tools/llvm-readobj/arm64-win-error2.s b/llvm/test/tools/llvm-readobj/COFF/arm64-win-error2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/arm64-win-error2.s
rename to llvm/test/tools/llvm-readobj/COFF/arm64-win-error2.s

diff  --git a/llvm/test/tools/llvm-readobj/arm64-win-error3.s b/llvm/test/tools/llvm-readobj/COFF/arm64-win-error3.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/arm64-win-error3.s
rename to llvm/test/tools/llvm-readobj/COFF/arm64-win-error3.s

diff  --git a/llvm/test/tools/llvm-readobj/coff-basereloc.test b/llvm/test/tools/llvm-readobj/COFF/basereloc.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-basereloc.test
rename to llvm/test/tools/llvm-readobj/COFF/basereloc.test

diff  --git a/llvm/test/tools/llvm-readobj/bigobj.test b/llvm/test/tools/llvm-readobj/COFF/bigobj.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/bigobj.test
rename to llvm/test/tools/llvm-readobj/COFF/bigobj.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-inlinees.test b/llvm/test/tools/llvm-readobj/COFF/codeview-inlinees.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-inlinees.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-inlinees.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-inlining.test b/llvm/test/tools/llvm-readobj/COFF/codeview-inlining.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-inlining.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-inlining.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-label.test b/llvm/test/tools/llvm-readobj/COFF/codeview-label.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-label.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-label.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-linetables.test b/llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-linetables.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-merging-anon.test b/llvm/test/tools/llvm-readobj/COFF/codeview-merging-anon.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-merging-anon.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-merging-anon.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-merging-cycle.test b/llvm/test/tools/llvm-readobj/COFF/codeview-merging-cycle.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-merging-cycle.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-merging-cycle.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-merging-ghash.test b/llvm/test/tools/llvm-readobj/COFF/codeview-merging-ghash.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-merging-ghash.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-merging-ghash.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test b/llvm/test/tools/llvm-readobj/COFF/codeview-merging-unsorted.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-merging-unsorted.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-merging-unsorted.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-merging.test b/llvm/test/tools/llvm-readobj/COFF/codeview-merging.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-merging.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-merging.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-types.test b/llvm/test/tools/llvm-readobj/COFF/codeview-types.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-types.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-types.test

diff  --git a/llvm/test/tools/llvm-readobj/codeview-vftable.test b/llvm/test/tools/llvm-readobj/COFF/codeview-vftable.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/codeview-vftable.test
rename to llvm/test/tools/llvm-readobj/COFF/codeview-vftable.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-const-import.test b/llvm/test/tools/llvm-readobj/COFF/const-import.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-const-import.test
rename to llvm/test/tools/llvm-readobj/COFF/const-import.test

diff  --git a/llvm/test/tools/llvm-readobj/cxx-cli-aux.test b/llvm/test/tools/llvm-readobj/COFF/cxx-cli-aux.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/cxx-cli-aux.test
rename to llvm/test/tools/llvm-readobj/COFF/cxx-cli-aux.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-debug-directory.test b/llvm/test/tools/llvm-readobj/COFF/debug-directory.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-debug-directory.test
rename to llvm/test/tools/llvm-readobj/COFF/debug-directory.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-directives.test b/llvm/test/tools/llvm-readobj/COFF/directives.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-directives.test
rename to llvm/test/tools/llvm-readobj/COFF/directives.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-exports-implib.test b/llvm/test/tools/llvm-readobj/COFF/exports-implib.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-exports-implib.test
rename to llvm/test/tools/llvm-readobj/COFF/exports-implib.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-exports.test b/llvm/test/tools/llvm-readobj/COFF/exports.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-exports.test
rename to llvm/test/tools/llvm-readobj/COFF/exports.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-file-headers.test b/llvm/test/tools/llvm-readobj/COFF/file-headers.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-file-headers.test
rename to llvm/test/tools/llvm-readobj/COFF/file-headers.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-file-sections-reading.test b/llvm/test/tools/llvm-readobj/COFF/file-sections-reading.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-file-sections-reading.test
rename to llvm/test/tools/llvm-readobj/COFF/file-sections-reading.test

diff  --git a/llvm/test/tools/llvm-readobj/imports.test b/llvm/test/tools/llvm-readobj/COFF/imports.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/imports.test
rename to llvm/test/tools/llvm-readobj/COFF/imports.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-load-config.test b/llvm/test/tools/llvm-readobj/COFF/load-config.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-load-config.test
rename to llvm/test/tools/llvm-readobj/COFF/load-config.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-needed-libs.test b/llvm/test/tools/llvm-readobj/COFF/needed-libs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-needed-libs.test
rename to llvm/test/tools/llvm-readobj/COFF/needed-libs.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-non-null-terminated-file.test b/llvm/test/tools/llvm-readobj/COFF/non-null-terminated-file.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-non-null-terminated-file.test
rename to llvm/test/tools/llvm-readobj/COFF/non-null-terminated-file.test

diff  --git a/llvm/test/tools/llvm-readobj/peplus.test b/llvm/test/tools/llvm-readobj/COFF/peplus.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/peplus.test
rename to llvm/test/tools/llvm-readobj/COFF/peplus.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-coff-i386.test b/llvm/test/tools/llvm-readobj/COFF/reloc-types-coff-i386.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-coff-i386.test
rename to llvm/test/tools/llvm-readobj/COFF/reloc-types-coff-i386.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-coff-x64.test b/llvm/test/tools/llvm-readobj/COFF/reloc-types-coff-x64.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-coff-x64.test
rename to llvm/test/tools/llvm-readobj/COFF/reloc-types-coff-x64.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc_overflow.test b/llvm/test/tools/llvm-readobj/COFF/reloc_overflow.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc_overflow.test
rename to llvm/test/tools/llvm-readobj/COFF/reloc_overflow.test

diff  --git a/llvm/test/tools/llvm-readobj/res-resources.test b/llvm/test/tools/llvm-readobj/COFF/res-resources.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/res-resources.test
rename to llvm/test/tools/llvm-readobj/COFF/res-resources.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-resources.test b/llvm/test/tools/llvm-readobj/COFF/resources.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-resources.test
rename to llvm/test/tools/llvm-readobj/COFF/resources.test

diff  --git a/llvm/test/tools/llvm-readobj/unwind-arm64-windows.test b/llvm/test/tools/llvm-readobj/COFF/unwind-arm64-windows.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/unwind-arm64-windows.test
rename to llvm/test/tools/llvm-readobj/COFF/unwind-arm64-windows.test

diff  --git a/llvm/test/tools/llvm-readobj/xcoff-basic.test b/llvm/test/tools/llvm-readobj/COFF/xcoff-basic.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/xcoff-basic.test
rename to llvm/test/tools/llvm-readobj/COFF/xcoff-basic.test

diff  --git a/llvm/test/tools/llvm-readobj/xcoff-overflow-section.test b/llvm/test/tools/llvm-readobj/COFF/xcoff-overflow-section.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/xcoff-overflow-section.test
rename to llvm/test/tools/llvm-readobj/COFF/xcoff-overflow-section.test

diff  --git a/llvm/test/tools/llvm-readobj/xcoff-sections.test b/llvm/test/tools/llvm-readobj/COFF/xcoff-sections.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/xcoff-sections.test
rename to llvm/test/tools/llvm-readobj/COFF/xcoff-sections.test

diff  --git a/llvm/test/tools/llvm-readobj/xcoff-symbols.test b/llvm/test/tools/llvm-readobj/COFF/xcoff-symbols.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/xcoff-symbols.test
rename to llvm/test/tools/llvm-readobj/COFF/xcoff-symbols.test

diff  --git a/llvm/test/tools/llvm-readobj/coff-zero-string-table.test b/llvm/test/tools/llvm-readobj/COFF/zero-string-table.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/coff-zero-string-table.test
rename to llvm/test/tools/llvm-readobj/COFF/zero-string-table.test

diff  --git a/llvm/test/tools/llvm-readobj/AArch64/aarch64-note-gnu-property.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-note-gnu-property.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/AArch64/aarch64-note-gnu-property.s
rename to llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-note-gnu-property.s

diff  --git a/llvm/test/tools/llvm-readobj/AArch64/dwarf-cfi.s b/llvm/test/tools/llvm-readobj/ELF/AArch64/dwarf-cfi.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/AArch64/dwarf-cfi.s
rename to llvm/test/tools/llvm-readobj/ELF/AArch64/dwarf-cfi.s

diff  --git a/llvm/test/tools/llvm-readobj/AArch64/lit.local.cfg b/llvm/test/tools/llvm-readobj/ELF/AArch64/lit.local.cfg
similarity index 100%
rename from llvm/test/tools/llvm-readobj/AArch64/lit.local.cfg
rename to llvm/test/tools/llvm-readobj/ELF/AArch64/lit.local.cfg

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-0.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-0.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-0.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-0.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-1.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-1.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-1.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-1.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-10.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-10.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-10.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-10.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-11.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-11.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-11.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-11.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-12.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-12.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-12.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-12.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-13.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-13.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-13.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-13.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-136.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-136.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-136.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-136.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-14.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-14.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-14.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-14.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-15.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-15.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-15.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-15.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-2.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-2.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-2.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-3.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-3.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-3.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-3.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-4.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-4.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-4.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-4.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-5.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-5.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-5.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-5.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-6.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-6.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-6.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-6.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-7.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-7.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-7.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-7.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-8.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-8.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-8.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-8.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-9.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-9.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-9.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-9.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-A.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-A.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-A.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-A.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-M.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-M.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-M.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-M.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-R.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-R.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-R.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-R.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-S.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-S.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-S.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-S.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-conformance-1.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-conformance-1.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s b/llvm/test/tools/llvm-readobj/ELF/ARM/attribute-conformance-2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/attribute-conformance-2.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/dwarf-cfi.s b/llvm/test/tools/llvm-readobj/ELF/ARM/dwarf-cfi.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/dwarf-cfi.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/dwarf-cfi.s

diff  --git a/llvm/test/tools/llvm-readobj/ARM/lit.local.cfg b/llvm/test/tools/llvm-readobj/ELF/ARM/lit.local.cfg
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/lit.local.cfg
rename to llvm/test/tools/llvm-readobj/ELF/ARM/lit.local.cfg

diff  --git a/llvm/test/tools/llvm-readobj/ARM/unwind.s b/llvm/test/tools/llvm-readobj/ELF/ARM/unwind.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ARM/unwind.s
rename to llvm/test/tools/llvm-readobj/ELF/ARM/unwind.s

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mips
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mips

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mipsel
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/compression.zlib.style.elf-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/compression.zlib.style.elf-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-exe.mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-exe.mips
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/dynamic-table-exe.mips
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-exe.mips

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.mips
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.mips
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.mips

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.x86 b/llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.x86
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.x86
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table-so.x86

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/dynamic-table.c b/llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table.c
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/dynamic-table.c
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/dynamic-table.c

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml b/llvm/test/tools/llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/elf-dynamic-tags-machine-specific.yaml
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/elf-dynamic-tags-machine-specific.yaml

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s b/llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs1.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs1.s
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs1.s

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs2.s b/llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs2.s
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs2.s

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs3.s b/llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs3.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/elf-packed-relocs3.s
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/elf-packed-relocs3.s

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/elf-relr-relocs1.s b/llvm/test/tools/llvm-readobj/ELF/Inputs/elf-relr-relocs1.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/elf-relr-relocs1.s
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/elf-relr-relocs1.s

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/elf-relr-relocs2.s b/llvm/test/tools/llvm-readobj/ELF/Inputs/elf-relr-relocs2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/elf-relr-relocs2.s
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/elf-relr-relocs2.s

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-i386 b/llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-i386
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc b/llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-ppc64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-x86_64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-x86_64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/gnuhash.so.elf-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/got-empty.exe.mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/got-empty.exe.mipsel
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/got-empty.exe.mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/got-empty.exe.mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/got-over.exe.elf-mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/got-over.exe.elf-mips
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/got-over.exe.elf-mips
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/got-over.exe.elf-mips

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/got-plt.exe.elf-mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/got-plt.exe.elf-mipsel
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/got-plt.exe.elf-mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/got-plt.exe.elf-mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/got-static.exe.mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/got-static.exe.mips
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/got-static.exe.mips
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/got-static.exe.mips

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/got-tls.so.elf-mips64el b/llvm/test/tools/llvm-readobj/ELF/Inputs/got-tls.so.elf-mips64el
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/got-tls.so.elf-mips64el
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/got-tls.so.elf-mips64el

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el b/llvm/test/tools/llvm-readobj/ELF/Inputs/mips-options.elf-mips64el
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/mips-options.elf-mips64el

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/mips-rld-map-rel.elf-mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/mips-rld-map-rel.elf-mipsel
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/mips-rld-map-rel.elf-mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/mips-rld-map-rel.elf-mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/options.obj.elf-mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/options.obj.elf-mipsel
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/options.obj.elf-mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/options.obj.elf-mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-i386 b/llvm/test/tools/llvm-readobj/ELF/Inputs/phdrs-elf.exe-i386
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-i386
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/phdrs-elf.exe-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-x86_64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/phdrs-elf.exe-x86_64
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-x86_64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/phdrs-elf.exe-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/ppc64.exe b/llvm/test/tools/llvm-readobj/ELF/Inputs/ppc64.exe
old mode 100755
new mode 100644
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/ppc64.exe
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/ppc64.exe

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/reginfo.obj.elf-mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/reginfo.obj.elf-mipsel
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/reginfo.obj.elf-mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/reginfo.obj.elf-mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-x86_64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/relocs.obj.elf-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-x86_64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/relocs.obj.elf-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/rpath.exe.elf-x86_64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/rpath.exe.elf-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/rpath.exe.elf-x86_64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/rpath.exe.elf-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/st-other.obj.elf-mips
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/st-other.obj.elf-mips

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips16 b/llvm/test/tools/llvm-readobj/ELF/Inputs/st-other.obj.elf-mips16
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips16
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/st-other.obj.elf-mips16

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/symbols-proc-specific.elf-hexagon b/llvm/test/tools/llvm-readobj/ELF/Inputs/symbols-proc-specific.elf-hexagon
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/symbols-proc-specific.elf-hexagon
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/symbols-proc-specific.elf-hexagon

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.ll b/llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.ll
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.ll
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.ll

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-amdhsa-gfx803 b/llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-amdhsa-gfx803
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-amdhsa-gfx803
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-amdhsa-gfx803

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-i386 b/llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-i386
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-mipsel b/llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-mipsel
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-mipsel
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-mipsel

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-x86-64 b/llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-x86-64
rename to llvm/test/tools/llvm-readobj/ELF/Inputs/trivial.obj.elf-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/elf-addrsig.test b/llvm/test/tools/llvm-readobj/ELF/addrsig.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-addrsig.test
rename to llvm/test/tools/llvm-readobj/ELF/addrsig.test

diff  --git a/llvm/test/tools/llvm-readobj/all.test b/llvm/test/tools/llvm-readobj/ELF/all.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/all.test
rename to llvm/test/tools/llvm-readobj/ELF/all.test

diff  --git a/llvm/test/tools/llvm-readobj/amdgpu-elf-definitions.test b/llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-definitions.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/amdgpu-elf-definitions.test
rename to llvm/test/tools/llvm-readobj/ELF/amdgpu-elf-definitions.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-broken-dynamic-reloc-name.test b/llvm/test/tools/llvm-readobj/ELF/broken-dynamic-reloc-name.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-broken-dynamic-reloc-name.test
rename to llvm/test/tools/llvm-readobj/ELF/broken-dynamic-reloc-name.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-broken-dynsym-link.test b/llvm/test/tools/llvm-readobj/ELF/broken-dynsym-link.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-broken-dynsym-link.test
rename to llvm/test/tools/llvm-readobj/ELF/broken-dynsym-link.test

diff  --git a/llvm/test/tools/llvm-readobj/broken-group.test b/llvm/test/tools/llvm-readobj/ELF/broken-group.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/broken-group.test
rename to llvm/test/tools/llvm-readobj/ELF/broken-group.test

diff  --git a/llvm/test/tools/llvm-readobj/check-output-order.test b/llvm/test/tools/llvm-readobj/ELF/check-output-order.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/check-output-order.test
rename to llvm/test/tools/llvm-readobj/ELF/check-output-order.test

diff  --git a/llvm/test/tools/llvm-readobj/demangle.test b/llvm/test/tools/llvm-readobj/ELF/demangle.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/demangle.test
rename to llvm/test/tools/llvm-readobj/ELF/demangle.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dependent-libraries.test b/llvm/test/tools/llvm-readobj/ELF/dependent-libraries.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dependent-libraries.test
rename to llvm/test/tools/llvm-readobj/ELF/dependent-libraries.test

diff  --git a/llvm/test/tools/llvm-readobj/dyn-symbols.test b/llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/dyn-symbols.test
rename to llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-empty.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-empty.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-empty.test
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-empty.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-malformed.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-no-pt-dynamic.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-no-pt-dynamic.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-no-pt-dynamic.test
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-no-pt-dynamic.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-not-in-pt-dynamic.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-not-in-pt-dynamic.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-table-dtnull.s b/llvm/test/tools/llvm-readobj/ELF/dynamic-table-dtnull.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-table-dtnull.s
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-table-dtnull.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-tags-machine-specific.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-tags-machine-specific.test
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test b/llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
rename to llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-file-headers.test b/llvm/test/tools/llvm-readobj/ELF/file-headers.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-file-headers.test
rename to llvm/test/tools/llvm-readobj/ELF/file-headers.test

diff  --git a/llvm/test/tools/llvm-readobj/file-name.test b/llvm/test/tools/llvm-readobj/ELF/file-name.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/file-name.test
rename to llvm/test/tools/llvm-readobj/ELF/file-name.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-file-types.test b/llvm/test/tools/llvm-readobj/ELF/file-types.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-file-types.test
rename to llvm/test/tools/llvm-readobj/ELF/file-types.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-file-headers.test b/llvm/test/tools/llvm-readobj/ELF/gnu-file-headers.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-file-headers.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-file-headers.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-note-size.test b/llvm/test/tools/llvm-readobj/ELF/gnu-note-size.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-note-size.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-note-size.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-notes.test b/llvm/test/tools/llvm-readobj/ELF/gnu-notes.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-notes.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-notes.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-phdrs.test b/llvm/test/tools/llvm-readobj/ELF/gnu-phdrs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-phdrs.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-phdrs.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-section-mapping-no-phdrs.test b/llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-phdrs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-section-mapping-no-phdrs.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-phdrs.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-section-mapping-no-shdrs.test b/llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-shdrs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-section-mapping-no-shdrs.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-section-mapping-no-shdrs.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-sections.test b/llvm/test/tools/llvm-readobj/ELF/gnu-sections.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-sections.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-sections.test

diff  --git a/llvm/test/tools/llvm-readobj/gnu-symbols.test b/llvm/test/tools/llvm-readobj/ELF/gnu-symbols.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/gnu-symbols.test
rename to llvm/test/tools/llvm-readobj/ELF/gnu-symbols.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-gnuhash.test b/llvm/test/tools/llvm-readobj/ELF/gnuhash.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-gnuhash.test
rename to llvm/test/tools/llvm-readobj/ELF/gnuhash.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-groups.test b/llvm/test/tools/llvm-readobj/ELF/groups.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-groups.test
rename to llvm/test/tools/llvm-readobj/ELF/groups.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-hash-histogram.test b/llvm/test/tools/llvm-readobj/ELF/hash-histogram.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-hash-histogram.test
rename to llvm/test/tools/llvm-readobj/ELF/hash-histogram.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-hash-symbols.test b/llvm/test/tools/llvm-readobj/ELF/hash-symbols.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-hash-symbols.test
rename to llvm/test/tools/llvm-readobj/ELF/hash-symbols.test

diff  --git a/llvm/test/tools/llvm-readobj/headers.test b/llvm/test/tools/llvm-readobj/ELF/headers.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/headers.test
rename to llvm/test/tools/llvm-readobj/ELF/headers.test

diff  --git a/llvm/test/tools/llvm-readobj/hex-dump-multi.s b/llvm/test/tools/llvm-readobj/ELF/hex-dump-multi.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/hex-dump-multi.s
rename to llvm/test/tools/llvm-readobj/ELF/hex-dump-multi.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-hidden-versym.test b/llvm/test/tools/llvm-readobj/ELF/hidden-versym.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-hidden-versym.test
rename to llvm/test/tools/llvm-readobj/ELF/hidden-versym.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test b/llvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-invalid-shstrndx.test
rename to llvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-linker-options.test b/llvm/test/tools/llvm-readobj/ELF/linker-options.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-linker-options.test
rename to llvm/test/tools/llvm-readobj/ELF/linker-options.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-loadname.test b/llvm/test/tools/llvm-readobj/ELF/loadname.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-loadname.test
rename to llvm/test/tools/llvm-readobj/ELF/loadname.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-machine-specific-section-types.test b/llvm/test/tools/llvm-readobj/ELF/machine-specific-section-types.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-machine-specific-section-types.test
rename to llvm/test/tools/llvm-readobj/ELF/machine-specific-section-types.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-malformed-pt-dynamic.test b/llvm/test/tools/llvm-readobj/ELF/malformed-pt-dynamic.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-malformed-pt-dynamic.test
rename to llvm/test/tools/llvm-readobj/ELF/malformed-pt-dynamic.test

diff  --git a/llvm/test/tools/llvm-readobj/many-sections.s b/llvm/test/tools/llvm-readobj/ELF/many-sections.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/many-sections.s
rename to llvm/test/tools/llvm-readobj/ELF/many-sections.s

diff  --git a/llvm/test/tools/llvm-readobj/many-sections2.s b/llvm/test/tools/llvm-readobj/ELF/many-sections2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/many-sections2.s
rename to llvm/test/tools/llvm-readobj/ELF/many-sections2.s

diff  --git a/llvm/test/tools/llvm-readobj/merged.test b/llvm/test/tools/llvm-readobj/ELF/merged.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/merged.test
rename to llvm/test/tools/llvm-readobj/ELF/merged.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-abiflags.test b/llvm/test/tools/llvm-readobj/ELF/mips-abiflags.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-abiflags.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-abiflags.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-got-overlapped.test b/llvm/test/tools/llvm-readobj/ELF/mips-got-overlapped.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-got-overlapped.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-got-overlapped.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-got.test b/llvm/test/tools/llvm-readobj/ELF/mips-got.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-got.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-got.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-options-sec.test b/llvm/test/tools/llvm-readobj/ELF/mips-options-sec.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-options-sec.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-options-sec.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-options.test b/llvm/test/tools/llvm-readobj/ELF/mips-options.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-options.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-options.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-plt.test b/llvm/test/tools/llvm-readobj/ELF/mips-plt.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-plt.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-plt.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-reginfo.test b/llvm/test/tools/llvm-readobj/ELF/mips-reginfo.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-reginfo.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-reginfo.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-rld-map-rel.test b/llvm/test/tools/llvm-readobj/ELF/mips-rld-map-rel.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-rld-map-rel.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-rld-map-rel.test

diff  --git a/llvm/test/tools/llvm-readobj/mips-st-other.test b/llvm/test/tools/llvm-readobj/ELF/mips-st-other.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/mips-st-other.test
rename to llvm/test/tools/llvm-readobj/ELF/mips-st-other.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-no-action.test b/llvm/test/tools/llvm-readobj/ELF/no-action.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-no-action.test
rename to llvm/test/tools/llvm-readobj/ELF/no-action.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-no-phdrs.test b/llvm/test/tools/llvm-readobj/ELF/no-phdrs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-no-phdrs.test
rename to llvm/test/tools/llvm-readobj/ELF/no-phdrs.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-no-relocs.test b/llvm/test/tools/llvm-readobj/ELF/no-relocs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-no-relocs.test
rename to llvm/test/tools/llvm-readobj/ELF/no-relocs.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-no-shdrs.test b/llvm/test/tools/llvm-readobj/ELF/no-shdrs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-no-shdrs.test
rename to llvm/test/tools/llvm-readobj/ELF/no-shdrs.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-non-dynamic-in-pt-dynamic.test b/llvm/test/tools/llvm-readobj/ELF/non-dynamic-in-pt-dynamic.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-non-dynamic-in-pt-dynamic.test
rename to llvm/test/tools/llvm-readobj/ELF/non-dynamic-in-pt-dynamic.test

diff  --git a/llvm/test/tools/llvm-readobj/note-amd.s b/llvm/test/tools/llvm-readobj/ELF/note-amd.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-amd.s
rename to llvm/test/tools/llvm-readobj/ELF/note-amd.s

diff  --git a/llvm/test/tools/llvm-readobj/note-amdgpu.test b/llvm/test/tools/llvm-readobj/ELF/note-amdgpu.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-amdgpu.test
rename to llvm/test/tools/llvm-readobj/ELF/note-amdgpu.test

diff  --git a/llvm/test/tools/llvm-readobj/note-core-ntfile-bad.test b/llvm/test/tools/llvm-readobj/ELF/note-core-ntfile-bad.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-core-ntfile-bad.test
rename to llvm/test/tools/llvm-readobj/ELF/note-core-ntfile-bad.test

diff  --git a/llvm/test/tools/llvm-readobj/note-core-ntfile.test b/llvm/test/tools/llvm-readobj/ELF/note-core-ntfile.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-core-ntfile.test
rename to llvm/test/tools/llvm-readobj/ELF/note-core-ntfile.test

diff  --git a/llvm/test/tools/llvm-readobj/note-core.test b/llvm/test/tools/llvm-readobj/ELF/note-core.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-core.test
rename to llvm/test/tools/llvm-readobj/ELF/note-core.test

diff  --git a/llvm/test/tools/llvm-readobj/note-freebsd.s b/llvm/test/tools/llvm-readobj/ELF/note-freebsd.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-freebsd.s
rename to llvm/test/tools/llvm-readobj/ELF/note-freebsd.s

diff  --git a/llvm/test/tools/llvm-readobj/note-generic.s b/llvm/test/tools/llvm-readobj/ELF/note-generic.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-generic.s
rename to llvm/test/tools/llvm-readobj/ELF/note-generic.s

diff  --git a/llvm/test/tools/llvm-readobj/note-gnu-property.s b/llvm/test/tools/llvm-readobj/ELF/note-gnu-property.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-gnu-property.s
rename to llvm/test/tools/llvm-readobj/ELF/note-gnu-property.s

diff  --git a/llvm/test/tools/llvm-readobj/note-gnu-property2.s b/llvm/test/tools/llvm-readobj/ELF/note-gnu-property2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-gnu-property2.s
rename to llvm/test/tools/llvm-readobj/ELF/note-gnu-property2.s

diff  --git a/llvm/test/tools/llvm-readobj/note-unknown.s b/llvm/test/tools/llvm-readobj/ELF/note-unknown.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/note-unknown.s
rename to llvm/test/tools/llvm-readobj/ELF/note-unknown.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs-empty.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-empty.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs-empty.s
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs-empty.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs-error1.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs-error1.s
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs-error1.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs-error2.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs-error2.s
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs-error2.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs-error3.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs-error3.s
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs-error3.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs-error4.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs-error4.s
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs-error4.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs-error5.s b/llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs-error5.s
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs-error5.s

diff  --git a/llvm/test/tools/llvm-readobj/elf-packed-relocs.test b/llvm/test/tools/llvm-readobj/ELF/packed-relocs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-packed-relocs.test
rename to llvm/test/tools/llvm-readobj/ELF/packed-relocs.test

diff  --git a/llvm/test/tools/llvm-readobj/ppc64-glink.test b/llvm/test/tools/llvm-readobj/ELF/ppc64-glink.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/ppc64-glink.test
rename to llvm/test/tools/llvm-readobj/ELF/ppc64-glink.test

diff  --git a/llvm/test/tools/llvm-readobj/program-headers.test b/llvm/test/tools/llvm-readobj/ELF/program-headers.test
similarity index 93%
rename from llvm/test/tools/llvm-readobj/program-headers.test
rename to llvm/test/tools/llvm-readobj/ELF/program-headers.test
index a6d11f4dd495..119b3a4d9f0d 100644
--- a/llvm/test/tools/llvm-readobj/program-headers.test
+++ b/llvm/test/tools/llvm-readobj/ELF/program-headers.test
@@ -1,6 +1,6 @@
-# RUN: llvm-readobj --program-headers %p/../../Object/Inputs/program-headers.elf-i386 \
+# RUN: llvm-readobj --program-headers %p/../../../Object/Inputs/program-headers.elf-i386 \
 # RUN:     | FileCheck %s -check-prefix ELF-I386
-# RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.elf-i386 \
+# RUN: llvm-readobj -l %p/../../../Object/Inputs/program-headers.elf-i386 \
 # RUN:     | FileCheck %s -check-prefix ELF-I386
 
 # ELF-I386:      ProgramHeaders [
@@ -32,7 +32,7 @@
 # ELF-I386-NEXT:   }
 # ELF-I386-NEXT: ]
 
-# RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.elf-x86-64 \
+# RUN: llvm-readobj -l %p/../../../Object/Inputs/program-headers.elf-x86-64 \
 # RUN:     | FileCheck %s -check-prefix ELF-X86-64
 
 # ELF-X86-64:      ProgramHeaders [
@@ -76,7 +76,7 @@
 # ELF-X86-64-NEXT:   }
 # ELF-X86-64-NEXT: ]
 
-# RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.mips \
+# RUN: llvm-readobj -l %p/../../../Object/Inputs/program-headers.mips \
 # RUN:     | FileCheck %s -check-prefix ELF-MIPS
 
 # ELF-MIPS:      Format: ELF32-mips
@@ -123,7 +123,7 @@
 # ELF-MIPS-NEXT:   }
 # ELF-MIPS-NEXT: ]
 
-# RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.mips64 \
+# RUN: llvm-readobj -l %p/../../../Object/Inputs/program-headers.mips64 \
 # RUN:     | FileCheck %s -check-prefix ELF-MIPS64
 
 # ELF-MIPS64:      Format: ELF64-mips

diff  --git a/llvm/test/tools/llvm-readobj/elf-pt-gnu-property.test b/llvm/test/tools/llvm-readobj/ELF/pt-gnu-property.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-pt-gnu-property.test
rename to llvm/test/tools/llvm-readobj/ELF/pt-gnu-property.test

diff  --git a/llvm/test/tools/llvm-readobj/readelf-s-alias.test b/llvm/test/tools/llvm-readobj/ELF/readelf-s-alias.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/readelf-s-alias.test
rename to llvm/test/tools/llvm-readobj/ELF/readelf-s-alias.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test b/llvm/test/tools/llvm-readobj/ELF/reloc-negative-addend-no-sym.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-reloc-negative-addend-no-sym.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-negative-addend-no-sym.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-reloc-no-sym.test b/llvm/test/tools/llvm-readobj/ELF/reloc-no-sym.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-reloc-no-sym.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-no-sym.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test b/llvm/test/tools/llvm-readobj/ELF/reloc-symbol-with-versioning.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-reloc-symbol-with-versioning.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-symbol-with-versioning.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-aarch64.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-aarch64.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-aarch64.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-arm.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-arm.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-arm.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-arm.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-i386.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-i386.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-i386.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-lanai.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-lanai.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-lanai.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-lanai.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-mips.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-mips.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-mips64.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips64.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-mips64.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-mips64.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-ppc64.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-ppc64.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-ppc64.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-ppc64.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test b/llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-x64.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-elf-x64.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-x64.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test b/llvm/test/tools/llvm-readobj/ELF/reloc-zero-name-or-value.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-reloc-zero-name-or-value.test
rename to llvm/test/tools/llvm-readobj/ELF/reloc-zero-name-or-value.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-relr-relocs.test b/llvm/test/tools/llvm-readobj/ELF/relr-relocs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-relr-relocs.test
rename to llvm/test/tools/llvm-readobj/ELF/relr-relocs.test

diff  --git a/llvm/test/tools/llvm-readobj/rpath.test b/llvm/test/tools/llvm-readobj/ELF/rpath.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/rpath.test
rename to llvm/test/tools/llvm-readobj/ELF/rpath.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-sec-compressed.test b/llvm/test/tools/llvm-readobj/ELF/sec-compressed.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-sec-compressed.test
rename to llvm/test/tools/llvm-readobj/ELF/sec-compressed.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-sec-flags.test b/llvm/test/tools/llvm-readobj/ELF/sec-flags.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-sec-flags.test
rename to llvm/test/tools/llvm-readobj/ELF/sec-flags.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-section-symbols.test b/llvm/test/tools/llvm-readobj/ELF/section-symbols.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-section-symbols.test
rename to llvm/test/tools/llvm-readobj/ELF/section-symbols.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-section-types.test b/llvm/test/tools/llvm-readobj/ELF/section-types.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-section-types.test
rename to llvm/test/tools/llvm-readobj/ELF/section-types.test

diff  --git a/llvm/test/tools/llvm-readobj/stack-sizes.test b/llvm/test/tools/llvm-readobj/ELF/stack-sizes.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/stack-sizes.test
rename to llvm/test/tools/llvm-readobj/ELF/stack-sizes.test

diff  --git a/llvm/test/tools/llvm-readobj/string-dump-multi.s b/llvm/test/tools/llvm-readobj/ELF/string-dump-multi.s
similarity index 100%
rename from llvm/test/tools/llvm-readobj/string-dump-multi.s
rename to llvm/test/tools/llvm-readobj/ELF/string-dump-multi.s

diff  --git a/llvm/test/tools/llvm-readobj/string-dump.test b/llvm/test/tools/llvm-readobj/ELF/string-dump.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/string-dump.test
rename to llvm/test/tools/llvm-readobj/ELF/string-dump.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-symbol-64bit.test b/llvm/test/tools/llvm-readobj/ELF/symbol-64bit.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-symbol-64bit.test
rename to llvm/test/tools/llvm-readobj/ELF/symbol-64bit.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-symbol-binding.test b/llvm/test/tools/llvm-readobj/ELF/symbol-binding.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-symbol-binding.test
rename to llvm/test/tools/llvm-readobj/ELF/symbol-binding.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-symbol-shndx.test b/llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-symbol-shndx.test
rename to llvm/test/tools/llvm-readobj/ELF/symbol-shndx.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-symbol-types.test b/llvm/test/tools/llvm-readobj/ELF/symbol-types.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-symbol-types.test
rename to llvm/test/tools/llvm-readobj/ELF/symbol-types.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-symbol-visibility.test b/llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-symbol-visibility.test
rename to llvm/test/tools/llvm-readobj/ELF/symbol-visibility.test

diff  --git a/llvm/test/tools/llvm-readobj/thin-archive-paths.test b/llvm/test/tools/llvm-readobj/ELF/thin-archive-paths.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/thin-archive-paths.test
rename to llvm/test/tools/llvm-readobj/ELF/thin-archive-paths.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-types.test b/llvm/test/tools/llvm-readobj/ELF/types.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-types.test
rename to llvm/test/tools/llvm-readobj/ELF/types.test

diff  --git a/llvm/test/tools/llvm-readobj/unwind.test b/llvm/test/tools/llvm-readobj/ELF/unwind.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/unwind.test
rename to llvm/test/tools/llvm-readobj/ELF/unwind.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-verdef-invalid.test b/llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-verdef-invalid.test
rename to llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-verneed-flags.yaml b/llvm/test/tools/llvm-readobj/ELF/verneed-flags.yaml
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-verneed-flags.yaml
rename to llvm/test/tools/llvm-readobj/ELF/verneed-flags.yaml

diff  --git a/llvm/test/tools/llvm-readobj/elf-verneed-invalid.test b/llvm/test/tools/llvm-readobj/ELF/verneed-invalid.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-verneed-invalid.test
rename to llvm/test/tools/llvm-readobj/ELF/verneed-invalid.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-versioninfo.test b/llvm/test/tools/llvm-readobj/ELF/versioninfo.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-versioninfo.test
rename to llvm/test/tools/llvm-readobj/ELF/versioninfo.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-versym-invalid.test b/llvm/test/tools/llvm-readobj/ELF/versym-invalid.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-versym-invalid.test
rename to llvm/test/tools/llvm-readobj/ELF/versym-invalid.test

diff  --git a/llvm/test/tools/llvm-readobj/elf-wrong-shstrtab-type.test b/llvm/test/tools/llvm-readobj/ELF/wrong-shstrtab-type.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/elf-wrong-shstrtab-type.test
rename to llvm/test/tools/llvm-readobj/ELF/wrong-shstrtab-type.test

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips b/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips
deleted file mode 100644
index e387942b450b..000000000000
Binary files a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips and /dev/null 
diff er

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.py b/llvm/test/tools/llvm-readobj/Inputs/relocs.py
deleted file mode 100644
index d0a7341dcb63..000000000000
--- a/llvm/test/tools/llvm-readobj/Inputs/relocs.py
+++ /dev/null
@@ -1,1217 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import print_function
-
-# Generates ELF, COFF and MachO object files for 
diff erent architectures
-# containing all relocations:
-#
-# ELF:   i386, x86_64, ppc64, aarch64, arm, mips, mips64el
-# COFF:  i386, x86_64
-# MachO: i386, x86_64, arm
-# (see end of file for triples)
-#
-# To simplify generation, object files are generated with just the proper
-# number of relocations through repeated instructions. Afterwards, the
-# relocations in the object file are patched to their proper value.
-
-import operator
-import shutil
-import struct
-import subprocess
-import sys
-
-class EnumType(type):
-  def __init__(self, name, bases = (), attributes = {}):
-    super(EnumType, self).__init__(name, bases, attributes)
-
-    type.__setattr__(self, '_map', {})
-    type.__setattr__(self, '_nameMap', {})
-
-    for symbol in attributes:
-      if symbol.startswith('__') or symbol.endswith('__'):
-        continue
-
-      value = attributes[symbol]
-
-      # MyEnum.symbol == value
-      type.__setattr__(self, symbol, value)
-      self._nameMap[symbol] = value
-
-      # The first symbol with the given value is authoritative.
-      if not (value in self._map):
-        # MyEnum[value] == symbol
-        self._map[value] = symbol
-
-  # Not supported (Enums are immutable).
-  def __setattr__(self, name, value):
-    raise NotSupportedException(self.__setattr__)
-
-  # Not supported (Enums are immutable).
-  def __delattr__(self, name):
-    raise NotSupportedException(self.__delattr__)
-
-  # Gets the enum symbol for the specified value.
-  def __getitem__(self, value):
-    symbol = self._map.get(value)
-    if symbol is None:
-      raise KeyError(value)
-    return symbol
-
-  # Gets the enum symbol for the specified value or none.
-  def lookup(self, value):
-    symbol = self._map.get(value)
-    return symbol
-
-  # Not supported (Enums are immutable).
-  def __setitem__(self, value, symbol):
-    raise NotSupportedException(self.__setitem__)
-
-  # Not supported (Enums are immutable).
-  def __delitem__(self, value):
-    raise NotSupportedException(self.__delitem__)
-
-  def entries(self):
-    # sort by (value, name)
-    def makeKey(item):
-      return (item[1], item[0])
-    e = []
-    for pair in sorted(self._nameMap.items(), key=makeKey):
-      e.append(pair)
-    return e
-
-  def __iter__(self):
-    for e in self.entries():
-      yield e
-
-Enum = EnumType('Enum', (), {})
-
-class BinaryReader:
-  def __init__(self, path):
-    self.file = open(path, "r+b", 0)
-    self.isLSB = None
-    self.is64Bit = None
-    self.isN64 = False
-
-  def tell(self):
-    return self.file.tell()
-
-  def seek(self, pos):
-    self.file.seek(pos)
-
-  def read(self, N):
-    data = self.file.read(N)
-    if len(data) != N:
-      raise ValueError("Out of data!")
-    return data
-
-  def int8(self):
-    return ord(self.read(1))
-
-  def uint8(self):
-    return ord(self.read(1))
-
-  def int16(self):
-    return struct.unpack('><'[self.isLSB] + 'h', self.read(2))[0]
-
-  def uint16(self):
-    return struct.unpack('><'[self.isLSB] + 'H', self.read(2))[0]
-
-  def int32(self):
-    return struct.unpack('><'[self.isLSB] + 'i', self.read(4))[0]
-
-  def uint32(self):
-    return struct.unpack('><'[self.isLSB] + 'I', self.read(4))[0]
-
-  def int64(self):
-    return struct.unpack('><'[self.isLSB] + 'q', self.read(8))[0]
-
-  def uint64(self):
-    return struct.unpack('><'[self.isLSB] + 'Q', self.read(8))[0]
-
-  def writeUInt8(self, value):
-    self.file.write(struct.pack('><'[self.isLSB] + 'B', value))
-
-  def writeUInt16(self, value):
-    self.file.write(struct.pack('><'[self.isLSB] + 'H', value))
-
-  def writeUInt32(self, value):
-    self.file.write(struct.pack('><'[self.isLSB] + 'I', value))
-
-  def writeUInt64(self, value):
-    self.file.write(struct.pack('><'[self.isLSB] + 'Q', value))
-
-  def word(self):
-    if self.is64Bit:
-      return self.uint64()
-    else:
-      return self.uint32()
-
-  def writeWord(self, value):
-    if self.is64Bit:
-      self.writeUInt64(value)
-    else:
-      self.writeUInt32(value)
-
-class StringTable:
-  def __init__(self, strings):
-    self.string_table = strings
-
-  def __getitem__(self, index):
-    end = self.string_table.index('\x00', index)
-    return self.string_table[index:end]
-
-class ElfSection:
-  def __init__(self, f):
-    self.sh_name = f.uint32()
-    self.sh_type = f.uint32()
-    self.sh_flags = f.word()
-    self.sh_addr = f.word()
-    self.sh_offset = f.word()
-    self.sh_size = f.word()
-    self.sh_link = f.uint32()
-    self.sh_info = f.uint32()
-    self.sh_addralign = f.word()
-    self.sh_entsize = f.word()
-
-  def patch(self, f, relocs):
-    if self.sh_type == 4 or self.sh_type == 9: # SHT_RELA / SHT_REL
-      self.patchRelocs(f, relocs)
-
-  def patchRelocs(self, f, relocs):
-    entries = self.sh_size // self.sh_entsize
-
-    for index in range(entries):
-      f.seek(self.sh_offset + index * self.sh_entsize)
-      r_offset = f.word()
-
-      if index < len(relocs):
-        ri = index
-      else:
-        ri = 0
-
-      if f.isN64:
-        r_sym =   f.uint32()
-        r_ssym =  f.uint8()
-        f.seek(f.tell())
-        f.writeUInt8(relocs[ri][1])
-        f.writeUInt8(relocs[ri][1])
-        f.writeUInt8(relocs[ri][1])
-      else:
-        pos = f.tell()
-        r_info = f.word()
-
-        r_type = relocs[ri][1]
-        if f.is64Bit:
-          r_info = (r_info & 0xFFFFFFFF00000000) | (r_type & 0xFFFFFFFF)
-        else:
-          r_info = (r_info & 0xFF00) | (r_type & 0xFF)
-
-        print("    %s" % relocs[ri][0])
-        f.seek(pos)
-        f.writeWord(r_info)
-
-
-class CoffSection:
-  def __init__(self, f):
-    self.raw_name                = f.read(8)
-    self.virtual_size            = f.uint32()
-    self.virtual_address         = f.uint32()
-    self.raw_data_size           = f.uint32()
-    self.pointer_to_raw_data     = f.uint32()
-    self.pointer_to_relocations  = f.uint32()
-    self.pointer_to_line_numbers = f.uint32()
-    self.relocation_count        = f.uint16()
-    self.line_number_count       = f.uint16()
-    self.characteristics         = f.uint32()
-
-
-def compileAsm(filename, triple, src):
-  cmd = ["llvm-mc", "-triple=" + triple, "-filetype=obj", "-o", filename]
-  print("  Running: " + " ".join(cmd))
-  p = subprocess.Popen(cmd, stdin=subprocess.PIPE)
-  p.communicate(input=src)
-  p.wait()
-
-def compileIR(filename, triple, src):
-  cmd = ["llc", "-mtriple=" + triple, "-filetype=obj", "-o", filename]
-  print("  Running: " + " ".join(cmd))
-  p = subprocess.Popen(cmd, stdin=subprocess.PIPE)
-  p.communicate(input=src)
-  p.wait()
-
-
-def craftElf(filename, triple, relocs, dummyReloc):
-  print("Crafting " + filename + " for " + triple)
-  if type(dummyReloc) is tuple:
-    preSrc, dummyReloc, relocsPerDummy = dummyReloc
-    src = preSrc + "\n"
-    for i in range((len(relocs) + relocsPerDummy - 1) / relocsPerDummy):
-      src += dummyReloc.format(i) + "\n"
-    compileIR(filename, triple, src)
-  else:
-    src = (dummyReloc + "\n") * len(relocs)
-    compileAsm(filename, triple, src)
-
-  print("  Patching relocations...")
-  patchElf(filename, relocs)
-
-def patchElf(path, relocs):
-  f = BinaryReader(path)
-
-  magic = f.read(4)
-  assert magic == '\x7FELF'
-
-  fileclass = f.uint8()
-  if fileclass == 1:
-    f.is64Bit = False
-  elif fileclass == 2:
-    f.is64Bit = True
-  else:
-    raise ValueError("Unknown file class %x" % fileclass)
-
-  byteordering = f.uint8()
-  if byteordering == 1:
-      f.isLSB = True
-  elif byteordering == 2:
-      f.isLSB = False
-  else:
-      raise ValueError("Unknown byte ordering %x" % byteordering)
-
-  f.seek(18)
-  e_machine = f.uint16()
-  if e_machine == 0x0008 and f.is64Bit: # EM_MIPS && 64 bit
-      f.isN64 = True
-
-  e_version = f.uint32()
-  e_entry = f.word()
-  e_phoff = f.word()
-  e_shoff = f.word()
-  e_flags = f.uint32()
-  e_ehsize = f.uint16()
-  e_phentsize = f.uint16()
-  e_phnum = f.uint16()
-  e_shentsize = f.uint16()
-  e_shnum = f.uint16()
-  e_shstrndx = f.uint16()
-
-  sections = []
-  for index in range(e_shnum):
-    f.seek(e_shoff + index * e_shentsize)
-    s = ElfSection(f)
-    sections.append(s)
-
-  f.seek(sections[e_shstrndx].sh_offset)
-  shstrtab = StringTable(f.read(sections[e_shstrndx].sh_size))
-
-  strtab = None
-  for section in sections:
-    if shstrtab[section.sh_name] == ".strtab":
-      f.seek(section.sh_offset)
-      strtab = StringTable(f.read(section.sh_size))
-      break
-
-  for index in range(e_shnum):
-    sections[index].patch(f, relocs)
-
-
-def craftCoff(filename, triple, relocs, dummyReloc):
-  print("Crafting " + filename + " for " + triple)
-  src = (dummyReloc + "\n") * len(relocs)
-  compileAsm(filename, triple, src)
-
-  print("  Patching relocations...")
-  patchCoff(filename, relocs)
-
-def patchCoff(path, relocs):
-  f = BinaryReader(path)
-  f.isLSB = True
-
-  machine_type            = f.uint16()
-  section_count           = f.uint16()
-
-  # Zero out timestamp to prevent churn when regenerating COFF files.
-  f.writeUInt32(0)
-
-  f.seek(20)
-  sections = [CoffSection(f) for idx in range(section_count)]
-
-  section = sections[0]
-  f.seek(section.pointer_to_relocations)
-  for i in range(section.relocation_count):
-    virtual_addr = f.uint32()
-    symtab_idx   = f.uint32()
-    print("    %s" % relocs[i][0])
-    f.writeUInt16(relocs[i][1])
-
-
-def craftMacho(filename, triple, relocs, dummyReloc):
-  print("Crafting " + filename + " for " + triple)
-
-  if type(dummyReloc) is tuple:
-    srcType, preSrc, dummyReloc, relocsPerDummy = dummyReloc
-    src = preSrc + "\n"
-    for i in range((len(relocs) + relocsPerDummy - 1) / relocsPerDummy):
-      src += dummyReloc.format(i) + "\n"
-    if srcType == "asm":
-      compileAsm(filename, triple, src)
-    elif srcType == "ir":
-      compileIR(filename, triple, src)
-  else:
-    src = (dummyReloc + "\n") * len(relocs)
-    compileAsm(filename, triple, src)
-
-  print("  Patching relocations...")
-  patchMacho(filename, relocs)
-
-def patchMacho(filename, relocs):
-  f = BinaryReader(filename)
-
-  magic = f.read(4)
-  if magic == '\xFE\xED\xFA\xCE':
-    f.isLSB, f.is64Bit = False, False
-  elif magic == '\xCE\xFA\xED\xFE':
-    f.isLSB, f.is64Bit = True, False
-  elif magic == '\xFE\xED\xFA\xCF':
-    f.isLSB, f.is64Bit = False, True
-  elif magic == '\xCF\xFA\xED\xFE':
-    f.isLSB, f.is64Bit = True, True
-  else:
-    raise ValueError("Not a Mach-O object file: %r (bad magic)" % path)
-
-  cputype = f.uint32()
-  cpusubtype = f.uint32()
-  filetype = f.uint32()
-  numLoadCommands = f.uint32()
-  loadCommandsSize = f.uint32()
-  flag = f.uint32()
-  if f.is64Bit:
-    reserved = f.uint32()
-
-  start = f.tell()
-
-  for i in range(numLoadCommands):
-    patchMachoLoadCommand(f, relocs)
-
-  if f.tell() - start != loadCommandsSize:
-    raise ValueError("%s: warning: invalid load commands size: %r" % (
-      sys.argv[0], loadCommandsSize))
-
-def patchMachoLoadCommand(f, relocs):
-  start = f.tell()
-  cmd = f.uint32()
-  cmdSize = f.uint32()
-
-  if cmd == 1:
-    patchMachoSegmentLoadCommand(f, relocs)
-  elif cmd == 25:
-    patchMachoSegmentLoadCommand(f, relocs)
-  else:
-    f.read(cmdSize - 8)
-
-  if f.tell() - start != cmdSize:
-    raise ValueError("%s: warning: invalid load command size: %r" % (
-      sys.argv[0], cmdSize))
-
-def patchMachoSegmentLoadCommand(f, relocs):
-  segment_name = f.read(16)
-  vm_addr = f.word()
-  vm_size = f.word()
-  file_offset = f.word()
-  file_size = f.word()
-  maxprot = f.uint32()
-  initprot = f.uint32()
-  numSections = f.uint32()
-  flags = f.uint32()
-  for i in range(numSections):
-    patchMachoSection(f, relocs)
-
-def patchMachoSection(f, relocs):
-  section_name = f.read(16)
-  segment_name = f.read(16)
-  address = f.word()
-  size = f.word()
-  offset = f.uint32()
-  alignment = f.uint32()
-  relocOffset = f.uint32()
-  numReloc = f.uint32()
-  flags = f.uint32()
-  reserved1 = f.uint32()
-  reserved2 = f.uint32()
-  if f.is64Bit:
-    reserved3 = f.uint32()
-
-  prev_pos = f.tell()
-
-  f.seek(relocOffset)
-  for i in range(numReloc):
-    ri = i < len(relocs) and i or 0
-    print("    %s" % relocs[ri][0])
-    word1 = f.uint32()
-    pos = f.tell()
-    value = f.uint32()
-    f.seek(pos)
-    value = (value & 0x0FFFFFFF) | ((relocs[ri][1] & 0xF) << 28)
-    f.writeUInt32(value)
-  f.seek(prev_pos)
-
-
-class Relocs_Elf_X86_64(Enum):
-  R_X86_64_NONE       = 0
-  R_X86_64_64         = 1
-  R_X86_64_PC32       = 2
-  R_X86_64_GOT32      = 3
-  R_X86_64_PLT32      = 4
-  R_X86_64_COPY       = 5
-  R_X86_64_GLOB_DAT   = 6
-  R_X86_64_JUMP_SLOT  = 7
-  R_X86_64_RELATIVE   = 8
-  R_X86_64_GOTPCREL   = 9
-  R_X86_64_32         = 10
-  R_X86_64_32S        = 11
-  R_X86_64_16         = 12
-  R_X86_64_PC16       = 13
-  R_X86_64_8          = 14
-  R_X86_64_PC8        = 15
-  R_X86_64_DTPMOD64   = 16
-  R_X86_64_DTPOFF64   = 17
-  R_X86_64_TPOFF64    = 18
-  R_X86_64_TLSGD      = 19
-  R_X86_64_TLSLD      = 20
-  R_X86_64_DTPOFF32   = 21
-  R_X86_64_GOTTPOFF   = 22
-  R_X86_64_TPOFF32    = 23
-  R_X86_64_PC64       = 24
-  R_X86_64_GOTOFF64   = 25
-  R_X86_64_GOTPC32    = 26
-  R_X86_64_GOT64      = 27
-  R_X86_64_GOTPCREL64 = 28
-  R_X86_64_GOTPC64    = 29
-  R_X86_64_GOTPLT64   = 30
-  R_X86_64_PLTOFF64   = 31
-  R_X86_64_SIZE32     = 32
-  R_X86_64_SIZE64     = 33
-  R_X86_64_GOTPC32_TLSDESC = 34
-  R_X86_64_TLSDESC_CALL    = 35
-  R_X86_64_TLSDESC    = 36
-  R_X86_64_IRELATIVE  = 37
-
-class Relocs_Elf_i386(Enum):
-  R_386_NONE          = 0
-  R_386_32            = 1
-  R_386_PC32          = 2
-  R_386_GOT32         = 3
-  R_386_PLT32         = 4
-  R_386_COPY          = 5
-  R_386_GLOB_DAT      = 6
-  R_386_JUMP_SLOT     = 7
-  R_386_RELATIVE      = 8
-  R_386_GOTOFF        = 9
-  R_386_GOTPC         = 10
-  R_386_32PLT         = 11
-  R_386_TLS_TPOFF     = 14
-  R_386_TLS_IE        = 15
-  R_386_TLS_GOTIE     = 16
-  R_386_TLS_LE        = 17
-  R_386_TLS_GD        = 18
-  R_386_TLS_LDM       = 19
-  R_386_16            = 20
-  R_386_PC16          = 21
-  R_386_8             = 22
-  R_386_PC8           = 23
-  R_386_TLS_GD_32     = 24
-  R_386_TLS_GD_PUSH   = 25
-  R_386_TLS_GD_CALL   = 26
-  R_386_TLS_GD_POP    = 27
-  R_386_TLS_LDM_32    = 28
-  R_386_TLS_LDM_PUSH  = 29
-  R_386_TLS_LDM_CALL  = 30
-  R_386_TLS_LDM_POP   = 31
-  R_386_TLS_LDO_32    = 32
-  R_386_TLS_IE_32     = 33
-  R_386_TLS_LE_32     = 34
-  R_386_TLS_DTPMOD32  = 35
-  R_386_TLS_DTPOFF32  = 36
-  R_386_TLS_TPOFF32   = 37
-  R_386_TLS_GOTDESC   = 39
-  R_386_TLS_DESC_CALL = 40
-  R_386_TLS_DESC      = 41
-  R_386_IRELATIVE     = 42
-  R_386_NUM           = 43
-
-class Relocs_Elf_PPC32(Enum):
-  R_PPC_NONE                  = 0
-  R_PPC_ADDR32                = 1
-  R_PPC_ADDR24                = 2
-  R_PPC_ADDR16                = 3
-  R_PPC_ADDR16_LO             = 4
-  R_PPC_ADDR16_HI             = 5
-  R_PPC_ADDR16_HA             = 6
-  R_PPC_ADDR14                = 7
-  R_PPC_ADDR14_BRTAKEN        = 8
-  R_PPC_ADDR14_BRNTAKEN       = 9
-  R_PPC_REL24                 = 10
-  R_PPC_REL14                 = 11
-  R_PPC_REL14_BRTAKEN         = 12
-  R_PPC_REL14_BRNTAKEN        = 13
-  R_PPC_REL32                 = 26
-  R_PPC_TPREL16_LO            = 70
-  R_PPC_TPREL16_HA            = 72
-
-class Relocs_Elf_PPC64(Enum):
-  R_PPC64_NONE                = 0
-  R_PPC64_ADDR32              = 1
-  R_PPC64_ADDR16_LO           = 4
-  R_PPC64_ADDR16_HI           = 5
-  R_PPC64_ADDR14              = 7
-  R_PPC64_REL24               = 10
-  R_PPC64_REL32               = 26
-  R_PPC64_ADDR64              = 38
-  R_PPC64_ADDR16_HIGHER       = 39
-  R_PPC64_ADDR16_HIGHEST      = 41
-  R_PPC64_REL64               = 44
-  R_PPC64_TOC16               = 47
-  R_PPC64_TOC16_LO            = 48
-  R_PPC64_TOC16_HA            = 50
-  R_PPC64_TOC                 = 51
-  R_PPC64_ADDR16_DS           = 56
-  R_PPC64_ADDR16_LO_DS        = 57
-  R_PPC64_TOC16_DS            = 63
-  R_PPC64_TOC16_LO_DS         = 64
-  R_PPC64_TLS                 = 67
-  R_PPC64_TPREL16_LO          = 70
-  R_PPC64_TPREL16_HA          = 72
-  R_PPC64_DTPREL16_LO         = 75
-  R_PPC64_DTPREL16_HA         = 77
-  R_PPC64_GOT_TLSGD16_LO      = 80
-  R_PPC64_GOT_TLSGD16_HA      = 82
-  R_PPC64_GOT_TLSLD16_LO      = 84
-  R_PPC64_GOT_TLSLD16_HA      = 86
-  R_PPC64_GOT_TPREL16_LO_DS   = 88
-  R_PPC64_GOT_TPREL16_HA      = 90
-  R_PPC64_TLSGD               = 107
-  R_PPC64_TLSLD               = 108
-
-class Relocs_Elf_AArch64(Enum):
-  R_AARCH64_NONE                        = 0
-  R_AARCH64_ABS64                       = 0x101
-  R_AARCH64_ABS32                       = 0x102
-  R_AARCH64_ABS16                       = 0x103
-  R_AARCH64_PREL64                      = 0x104
-  R_AARCH64_PREL32                      = 0x105
-  R_AARCH64_PREL16                      = 0x106
-  R_AARCH64_MOVW_UABS_G0                = 0x107
-  R_AARCH64_MOVW_UABS_G0_NC             = 0x108
-  R_AARCH64_MOVW_UABS_G1                = 0x109
-  R_AARCH64_MOVW_UABS_G1_NC             = 0x10a
-  R_AARCH64_MOVW_UABS_G2                = 0x10b
-  R_AARCH64_MOVW_UABS_G2_NC             = 0x10c
-  R_AARCH64_MOVW_UABS_G3                = 0x10d
-  R_AARCH64_MOVW_SABS_G0                = 0x10e
-  R_AARCH64_MOVW_SABS_G1                = 0x10f
-  R_AARCH64_MOVW_SABS_G2                = 0x110
-  R_AARCH64_LD_PREL_LO19                = 0x111
-  R_AARCH64_ADR_PREL_LO21               = 0x112
-  R_AARCH64_ADR_PREL_PG_HI21            = 0x113
-  R_AARCH64_ADR_PREL_PG_HI21_NC         = 0x114
-  R_AARCH64_ADD_ABS_LO12_NC             = 0x115
-  R_AARCH64_LDST8_ABS_LO12_NC           = 0x116
-  R_AARCH64_TSTBR14                     = 0x117
-  R_AARCH64_CONDBR19                    = 0x118
-  R_AARCH64_JUMP26                      = 0x11a
-  R_AARCH64_CALL26                      = 0x11b
-  R_AARCH64_LDST16_ABS_LO12_NC          = 0x11c
-  R_AARCH64_LDST32_ABS_LO12_NC          = 0x11d
-  R_AARCH64_LDST64_ABS_LO12_NC          = 0x11e
-  R_AARCH64_MOVW_PREL_G0                = 0x11f
-  R_AARCH64_MOVW_PREL_G0_NC             = 0x120
-  R_AARCH64_MOVW_PREL_G1                = 0x121
-  R_AARCH64_MOVW_PREL_G1_NC             = 0x122
-  R_AARCH64_MOVW_PREL_G2                = 0x123
-  R_AARCH64_MOVW_PREL_G2_NC             = 0x124
-  R_AARCH64_MOVW_PREL_G3                = 0x125
-  R_AARCH64_LDST128_ABS_LO12_NC         = 0x12b
-  R_AARCH64_MOVW_GOTOFF_G0              = 0x12c
-  R_AARCH64_MOVW_GOTOFF_G0_NC           = 0x12d
-  R_AARCH64_MOVW_GOTOFF_G1              = 0x12e
-  R_AARCH64_MOVW_GOTOFF_G1_NC           = 0x12f
-  R_AARCH64_MOVW_GOTOFF_G2              = 0x130
-  R_AARCH64_MOVW_GOTOFF_G2_NC           = 0x131
-  R_AARCH64_MOVW_GOTOFF_G3              = 0x132
-  R_AARCH64_GOTREL64                    = 0x133
-  R_AARCH64_GOTREL32                    = 0x134
-  R_AARCH64_GOT_LD_PREL19               = 0x135
-  R_AARCH64_LD64_GOTOFF_LO15            = 0x136
-  R_AARCH64_ADR_GOT_PAGE                = 0x137
-  R_AARCH64_LD64_GOT_LO12_NC            = 0x138
-  R_AARCH64_LD64_GOTPAGE_LO15           = 0x139
-  R_AARCH64_TLSGD_ADR_PREL21            = 0x200
-  R_AARCH64_TLSGD_ADR_PAGE21            = 0x201
-  R_AARCH64_TLSGD_ADD_LO12_NC           = 0x202
-  R_AARCH64_TLSGD_MOVW_G1               = 0x203
-  R_AARCH64_TLSGD_MOVW_G0_NC            = 0x204
-  R_AARCH64_TLSLD_ADR_PREL21            = 0x205
-  R_AARCH64_TLSLD_ADR_PAGE21            = 0x206
-  R_AARCH64_TLSLD_ADD_LO12_NC           = 0x207
-  R_AARCH64_TLSLD_MOVW_G1               = 0x208
-  R_AARCH64_TLSLD_MOVW_G0_NC            = 0x209
-  R_AARCH64_TLSLD_LD_PREL19             = 0x20a
-  R_AARCH64_TLSLD_MOVW_DTPREL_G2        = 0x20b
-  R_AARCH64_TLSLD_MOVW_DTPREL_G1        = 0x20c
-  R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC     = 0x20d
-  R_AARCH64_TLSLD_MOVW_DTPREL_G0        = 0x20e
-  R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC     = 0x20f
-  R_AARCH64_TLSLD_ADD_DTPREL_HI12       = 0x210
-  R_AARCH64_TLSLD_ADD_DTPREL_LO12       = 0x211
-  R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC    = 0x212
-  R_AARCH64_TLSLD_LDST8_DTPREL_LO12     = 0x213
-  R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC  = 0x214
-  R_AARCH64_TLSLD_LDST16_DTPREL_LO12    = 0x215
-  R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC = 0x216
-  R_AARCH64_TLSLD_LDST32_DTPREL_LO12    = 0x217
-  R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC = 0x218
-  R_AARCH64_TLSLD_LDST64_DTPREL_LO12    = 0x219
-  R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC = 0x21a
-  R_AARCH64_TLSIE_MOVW_GOTTPREL_G1      = 0x21b
-  R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC   = 0x21c
-  R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21   = 0x21d
-  R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC = 0x21e
-  R_AARCH64_TLSIE_LD_GOTTPREL_PREL19    = 0x21f
-  R_AARCH64_TLSLE_MOVW_TPREL_G2         = 0x220
-  R_AARCH64_TLSLE_MOVW_TPREL_G1         = 0x221
-  R_AARCH64_TLSLE_MOVW_TPREL_G1_NC      = 0x222
-  R_AARCH64_TLSLE_MOVW_TPREL_G0         = 0x223
-  R_AARCH64_TLSLE_MOVW_TPREL_G0_NC      = 0x224
-  R_AARCH64_TLSLE_ADD_TPREL_HI12        = 0x225
-  R_AARCH64_TLSLE_ADD_TPREL_LO12        = 0x226
-  R_AARCH64_TLSLE_ADD_TPREL_LO12_NC     = 0x227
-  R_AARCH64_TLSLE_LDST8_TPREL_LO12      = 0x228
-  R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC   = 0x229
-  R_AARCH64_TLSLE_LDST16_TPREL_LO12     = 0x22a
-  R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC  = 0x22b
-  R_AARCH64_TLSLE_LDST32_TPREL_LO12     = 0x22c
-  R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC  = 0x22d
-  R_AARCH64_TLSLE_LDST64_TPREL_LO12     = 0x22e
-  R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC  = 0x22f
-  R_AARCH64_TLSDESC_LD_PREL19           = 0x230
-  R_AARCH64_TLSDESC_ADR_PREL21          = 0x231
-  R_AARCH64_TLSDESC_ADR_PAGE21          = 0x232
-  R_AARCH64_TLSDESC_LD64_LO12_NC        = 0x233
-  R_AARCH64_TLSDESC_ADD_LO12_NC         = 0x234
-  R_AARCH64_TLSDESC_OFF_G1              = 0x235
-  R_AARCH64_TLSDESC_OFF_G0_NC           = 0x236
-  R_AARCH64_TLSDESC_LDR                 = 0x237
-  R_AARCH64_TLSDESC_ADD                 = 0x238
-  R_AARCH64_TLSDESC_CALL                = 0x239
-  R_AARCH64_TLSLE_LDST128_TPREL_LO12    = 0x23a
-  R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC = 0x23b
-  R_AARCH64_TLSLD_LDST128_DTPREL_LO12   = 0x23c
-  R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC = 0x23d
-  R_AARCH64_COPY                        = 0x400
-  R_AARCH64_GLOB_DAT                    = 0x401
-  R_AARCH64_JUMP_SLOT                   = 0x402
-  R_AARCH64_RELATIVE                    = 0x403
-  R_AARCH64_TLS_DTPMOD64                = 0x404
-  R_AARCH64_TLS_DTPREL64                = 0x405
-  R_AARCH64_TLS_TPREL64                 = 0x406
-  R_AARCH64_TLSDESC                     = 0x407
-  R_AARCH64_IRELATIVE                   = 0x408
-
-class Relocs_Elf_AArch64_ILP32(Enum):
-  R_AARCH64_P32_NONE                         = 0
-  R_AARCH64_P32_ABS32                        = 1
-  R_AARCH64_P32_ABS16                        = 2
-  R_AARCH64_P32_PREL32                       = 3
-  R_AARCH64_P32_PREL16                       = 4
-  R_AARCH64_P32_MOVW_UABS_G0                 = 5
-  R_AARCH64_P32_MOVW_UABS_G0_NC              = 6
-  R_AARCH64_P32_MOVW_UABS_G1                 = 7
-  R_AARCH64_P32_MOVW_SABS_G0                 = 8
-  R_AARCH64_P32_LD_PREL_LO19                 = 9
-  R_AARCH64_P32_ADR_PREL_LO21                = 10
-  R_AARCH64_P32_ADR_PREL_PG_HI21             = 11
-  R_AARCH64_P32_ADD_ABS_LO12_NC              = 12
-  R_AARCH64_P32_LDST8_ABS_LO12_NC            = 13
-  R_AARCH64_P32_LDST16_ABS_LO12_NC           = 14
-  R_AARCH64_P32_LDST32_ABS_LO12_NC           = 15
-  R_AARCH64_P32_LDST64_ABS_LO12_NC           = 16
-  R_AARCH64_P32_LDST128_ABS_LO12_NC          = 17
-  R_AARCH64_P32_TSTBR14                      = 18
-  R_AARCH64_P32_CONDBR19                     = 19
-  R_AARCH64_P32_JUMP26                       = 20
-  R_AARCH64_P32_CALL26                       = 21
-  R_AARCH64_P32_MOVW_PREL_G0                 = 22
-  R_AARCH64_P32_MOVW_PREL_G0_NC              = 23
-  R_AARCH64_P32_MOVW_PREL_G1                 = 24
-  R_AARCH64_P32_GOT_LD_PREL19                = 25
-  R_AARCH64_P32_ADR_GOT_PAGE                 = 26
-  R_AARCH64_P32_LD32_GOT_LO12_NC             = 27
-  R_AARCH64_P32_LD32_GOTPAGE_LO14            = 28
-  R_AARCH64_P32_TLSGD_ADR_PREL21             = 80
-  R_AARCH64_P32_TLS_GD_ADR_PAGE21            = 81
-  R_AARCH64_P32_TLSGD_ADD_LO12_NC            = 82
-  R_AARCH64_P32_TLSLD_ADR_PREL21             = 83
-  R_AARCH64_P32_TLDLD_ADR_PAGE21             = 84
-  R_AARCH64_P32_TLSLD_ADR_LO12_NC            = 85
-  R_AARCH64_P32_TLSLD_LD_PREL19              = 86
-  R_AARCH64_P32_TLDLD_MOVW_DTPREL_G1         = 87
-  R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0         = 88
-  R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0_NC      = 89
-  R_AARCH64_P32_TLSLD_MOVW_ADD_DTPREL_HI12   = 90
-  R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12        = 91
-  R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12_NC     = 92
-  R_AARCH64_P32_TLSLD_LDST8_DTPREL_LO12      = 93
-  R_AARCH64_P32_TLSLD_LDST8_DTPREL_LO12_NC   = 94
-  R_AARCH64_P32_TLSLD_LDST16_DTPREL_LO12     = 95
-  R_AARCH64_P32_TLSLD_LDST16_DTPREL_LO12_NC  = 96
-  R_AARCH64_P32_TLSLD_LDST32_DTPREL_LO12     = 97
-  R_AARCH64_P32_TLSLD_LDST32_DTPREL_LO12_NC  = 98
-  R_AARCH64_P32_TLSLD_LDST64_DTPREL_LO12     = 99
-  R_AARCH64_P32_TLSLD_LDST64_DTPREL_LO12_NC  = 100
-  R_AARCH64_P32_TLSLD_LDST128_DTPREL_LO12    = 101
-  R_AARCH64_P32_TLSLD_LDST128_DTPREL_LO12_NC = 102
-  R_AARCH64_P32_TLSIE_MOVW_GOTTPREL_PAGE21   = 103
-  R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC  = 104
-  R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19     = 105
-  R_AARCH64_P32_TLSLE_MOVEW_TPREL_G1         = 106
-  R_AARCH64_P32_TLSLE_MOVW_TPREL_G0          = 107
-  R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC       = 108
-  R_AARCH64_P32_TLS_MOVW_TPREL_HI12          = 109
-  R_AARCH64_P32_TLSLE_ADD_TPREL_LO12         = 110
-  R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC      = 111
-  R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12       = 112
-  R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12_NC    = 113
-  R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12      = 114
-  R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12_NC   = 115
-  R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12      = 116
-  R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12_NC   = 117
-  R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12      = 118
-  R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12_NC   = 119
-  R_AARCH64_P32_TLSLE_LDST128_TPREL_LO12     = 120
-  R_AARCH64_P32_TLSLE_LDST128_TPREL_LO12_NC  = 121
-  R_AARCH64_P32_TLSDESC_LD_PRELL19           = 122
-  R_AARCH64_P32_TLSDESC_ADR_PREL21           = 123
-  R_AARCH64_P32_TLSDESC_ADR_PAGE21           = 124
-  R_AARCH64_P32_TLSDESSC_LD32_LO12           = 125
-  R_AARCH64_P32_TLSDESC_ADD_LO12             = 126
-  R_AARCH64_P32_TLSDESC_CALL                 = 127
-  R_AARCH64_P32_COPY                         = 180
-  R_AARCH64_P32_GLOB_DAT                     = 181
-  R_AARCH64_P32_JUMP_SLOT                    = 182
-  R_AARCH64_P32_RELATIVE                     = 183
-  R_AARCH64_P32_TLS_DTPREL                   = 184
-  R_AARCH64_P32_TLS_DTPMOD                   = 185
-  R_AARCH64_P32_TLS_TPREL                    = 186
-  R_AARCH64_P32_TLSDESC                      = 187
-  R_AARCH64_P32_IRELATIVE                    = 188
-
-class Relocs_Elf_ARM(Enum):
-  R_ARM_NONE                  = 0x00
-  R_ARM_PC24                  = 0x01
-  R_ARM_ABS32                 = 0x02
-  R_ARM_REL32                 = 0x03
-  R_ARM_LDR_PC_G0             = 0x04
-  R_ARM_ABS16                 = 0x05
-  R_ARM_ABS12                 = 0x06
-  R_ARM_THM_ABS5              = 0x07
-  R_ARM_ABS8                  = 0x08
-  R_ARM_SBREL32               = 0x09
-  R_ARM_THM_CALL              = 0x0a
-  R_ARM_THM_PC8               = 0x0b
-  R_ARM_BREL_ADJ              = 0x0c
-  R_ARM_TLS_DESC              = 0x0d
-  R_ARM_THM_SWI8              = 0x0e
-  R_ARM_XPC25                 = 0x0f
-  R_ARM_THM_XPC22             = 0x10
-  R_ARM_TLS_DTPMOD32          = 0x11
-  R_ARM_TLS_DTPOFF32          = 0x12
-  R_ARM_TLS_TPOFF32           = 0x13
-  R_ARM_COPY                  = 0x14
-  R_ARM_GLOB_DAT              = 0x15
-  R_ARM_JUMP_SLOT             = 0x16
-  R_ARM_RELATIVE              = 0x17
-  R_ARM_GOTOFF32              = 0x18
-  R_ARM_BASE_PREL             = 0x19
-  R_ARM_GOT_BREL              = 0x1a
-  R_ARM_PLT32                 = 0x1b
-  R_ARM_CALL                  = 0x1c
-  R_ARM_JUMP24                = 0x1d
-  R_ARM_THM_JUMP24            = 0x1e
-  R_ARM_BASE_ABS              = 0x1f
-  R_ARM_ALU_PCREL_7_0         = 0x20
-  R_ARM_ALU_PCREL_15_8        = 0x21
-  R_ARM_ALU_PCREL_23_15       = 0x22
-  R_ARM_LDR_SBREL_11_0_NC     = 0x23
-  R_ARM_ALU_SBREL_19_12_NC    = 0x24
-  R_ARM_ALU_SBREL_27_20_CK    = 0x25
-  R_ARM_TARGET1               = 0x26
-  R_ARM_SBREL31               = 0x27
-  R_ARM_V4BX                  = 0x28
-  R_ARM_TARGET2               = 0x29
-  R_ARM_PREL31                = 0x2a
-  R_ARM_MOVW_ABS_NC           = 0x2b
-  R_ARM_MOVT_ABS              = 0x2c
-  R_ARM_MOVW_PREL_NC          = 0x2d
-  R_ARM_MOVT_PREL             = 0x2e
-  R_ARM_THM_MOVW_ABS_NC       = 0x2f
-  R_ARM_THM_MOVT_ABS          = 0x30
-  R_ARM_THM_MOVW_PREL_NC      = 0x31
-  R_ARM_THM_MOVT_PREL         = 0x32
-  R_ARM_THM_JUMP19            = 0x33
-  R_ARM_THM_JUMP6             = 0x34
-  R_ARM_THM_ALU_PREL_11_0     = 0x35
-  R_ARM_THM_PC12              = 0x36
-  R_ARM_ABS32_NOI             = 0x37
-  R_ARM_REL32_NOI             = 0x38
-  R_ARM_ALU_PC_G0_NC          = 0x39
-  R_ARM_ALU_PC_G0             = 0x3a
-  R_ARM_ALU_PC_G1_NC          = 0x3b
-  R_ARM_ALU_PC_G1             = 0x3c
-  R_ARM_ALU_PC_G2             = 0x3d
-  R_ARM_LDR_PC_G1             = 0x3e
-  R_ARM_LDR_PC_G2             = 0x3f
-  R_ARM_LDRS_PC_G0            = 0x40
-  R_ARM_LDRS_PC_G1            = 0x41
-  R_ARM_LDRS_PC_G2            = 0x42
-  R_ARM_LDC_PC_G0             = 0x43
-  R_ARM_LDC_PC_G1             = 0x44
-  R_ARM_LDC_PC_G2             = 0x45
-  R_ARM_ALU_SB_G0_NC          = 0x46
-  R_ARM_ALU_SB_G0             = 0x47
-  R_ARM_ALU_SB_G1_NC          = 0x48
-  R_ARM_ALU_SB_G1             = 0x49
-  R_ARM_ALU_SB_G2             = 0x4a
-  R_ARM_LDR_SB_G0             = 0x4b
-  R_ARM_LDR_SB_G1             = 0x4c
-  R_ARM_LDR_SB_G2             = 0x4d
-  R_ARM_LDRS_SB_G0            = 0x4e
-  R_ARM_LDRS_SB_G1            = 0x4f
-  R_ARM_LDRS_SB_G2            = 0x50
-  R_ARM_LDC_SB_G0             = 0x51
-  R_ARM_LDC_SB_G1             = 0x52
-  R_ARM_LDC_SB_G2             = 0x53
-  R_ARM_MOVW_BREL_NC          = 0x54
-  R_ARM_MOVT_BREL             = 0x55
-  R_ARM_MOVW_BREL             = 0x56
-  R_ARM_THM_MOVW_BREL_NC      = 0x57
-  R_ARM_THM_MOVT_BREL         = 0x58
-  R_ARM_THM_MOVW_BREL         = 0x59
-  R_ARM_TLS_GOTDESC           = 0x5a
-  R_ARM_TLS_CALL              = 0x5b
-  R_ARM_TLS_DESCSEQ           = 0x5c
-  R_ARM_THM_TLS_CALL          = 0x5d
-  R_ARM_PLT32_ABS             = 0x5e
-  R_ARM_GOT_ABS               = 0x5f
-  R_ARM_GOT_PREL              = 0x60
-  R_ARM_GOT_BREL12            = 0x61
-  R_ARM_GOTOFF12              = 0x62
-  R_ARM_GOTRELAX              = 0x63
-  R_ARM_GNU_VTENTRY           = 0x64
-  R_ARM_GNU_VTINHERIT         = 0x65
-  R_ARM_THM_JUMP11            = 0x66
-  R_ARM_THM_JUMP8             = 0x67
-  R_ARM_TLS_GD32              = 0x68
-  R_ARM_TLS_LDM32             = 0x69
-  R_ARM_TLS_LDO32             = 0x6a
-  R_ARM_TLS_IE32              = 0x6b
-  R_ARM_TLS_LE32              = 0x6c
-  R_ARM_TLS_LDO12             = 0x6d
-  R_ARM_TLS_LE12              = 0x6e
-  R_ARM_TLS_IE12GP            = 0x6f
-  R_ARM_PRIVATE_0             = 0x70
-  R_ARM_PRIVATE_1             = 0x71
-  R_ARM_PRIVATE_2             = 0x72
-  R_ARM_PRIVATE_3             = 0x73
-  R_ARM_PRIVATE_4             = 0x74
-  R_ARM_PRIVATE_5             = 0x75
-  R_ARM_PRIVATE_6             = 0x76
-  R_ARM_PRIVATE_7             = 0x77
-  R_ARM_PRIVATE_8             = 0x78
-  R_ARM_PRIVATE_9             = 0x79
-  R_ARM_PRIVATE_10            = 0x7a
-  R_ARM_PRIVATE_11            = 0x7b
-  R_ARM_PRIVATE_12            = 0x7c
-  R_ARM_PRIVATE_13            = 0x7d
-  R_ARM_PRIVATE_14            = 0x7e
-  R_ARM_PRIVATE_15            = 0x7f
-  R_ARM_ME_TOO                = 0x80
-  R_ARM_THM_TLS_DESCSEQ16     = 0x81
-  R_ARM_THM_TLS_DESCSEQ32     = 0x82
-  R_ARM_IRELATIVE             = 0xa0
-
-class Relocs_Elf_Mips(Enum):
-  R_MIPS_NONE              =  0
-  R_MIPS_16                =  1
-  R_MIPS_32                =  2
-  R_MIPS_REL32             =  3
-  R_MIPS_26                =  4
-  R_MIPS_HI16              =  5
-  R_MIPS_LO16              =  6
-  R_MIPS_GPREL16           =  7
-  R_MIPS_LITERAL           =  8
-  R_MIPS_GOT16             =  9
-  R_MIPS_PC16              = 10
-  R_MIPS_CALL16            = 11
-  R_MIPS_GPREL32           = 12
-  R_MIPS_SHIFT5            = 16
-  R_MIPS_SHIFT6            = 17
-  R_MIPS_64                = 18
-  R_MIPS_GOT_DISP          = 19
-  R_MIPS_GOT_PAGE          = 20
-  R_MIPS_GOT_OFST          = 21
-  R_MIPS_GOT_HI16          = 22
-  R_MIPS_GOT_LO16          = 23
-  R_MIPS_SUB               = 24
-  R_MIPS_INSERT_A          = 25
-  R_MIPS_INSERT_B          = 26
-  R_MIPS_DELETE            = 27
-  R_MIPS_HIGHER            = 28
-  R_MIPS_HIGHEST           = 29
-  R_MIPS_CALL_HI16         = 30
-  R_MIPS_CALL_LO16         = 31
-  R_MIPS_SCN_DISP          = 32
-  R_MIPS_REL16             = 33
-  R_MIPS_ADD_IMMEDIATE     = 34
-  R_MIPS_PJUMP             = 35
-  R_MIPS_RELGOT            = 36
-  R_MIPS_JALR              = 37
-  R_MIPS_TLS_DTPMOD32      = 38
-  R_MIPS_TLS_DTPREL32      = 39
-  R_MIPS_TLS_DTPMOD64      = 40
-  R_MIPS_TLS_DTPREL64      = 41
-  R_MIPS_TLS_GD            = 42
-  R_MIPS_TLS_LDM           = 43
-  R_MIPS_TLS_DTPREL_HI16   = 44
-  R_MIPS_TLS_DTPREL_LO16   = 45
-  R_MIPS_TLS_GOTTPREL      = 46
-  R_MIPS_TLS_TPREL32       = 47
-  R_MIPS_TLS_TPREL64       = 48
-  R_MIPS_TLS_TPREL_HI16    = 49
-  R_MIPS_TLS_TPREL_LO16    = 50
-  R_MIPS_GLOB_DAT          = 51
-  R_MIPS_COPY              = 126
-  R_MIPS_JUMP_SLOT         = 127
-  R_MIPS_NUM               = 218
-
-class Relocs_Elf_Hexagon(Enum):
-  R_HEX_NONE              =  0
-  R_HEX_B22_PCREL         =  1
-  R_HEX_B15_PCREL         =  2
-  R_HEX_B7_PCREL          =  3
-  R_HEX_LO16              =  4
-  R_HEX_HI16              =  5
-  R_HEX_32                =  6
-  R_HEX_16                =  7
-  R_HEX_8                 =  8
-  R_HEX_GPREL16_0         =  9
-  R_HEX_GPREL16_1         =  10
-  R_HEX_GPREL16_2         =  11
-  R_HEX_GPREL16_3         =  12
-  R_HEX_HL16              =  13
-  R_HEX_B13_PCREL         =  14
-  R_HEX_B9_PCREL          =  15
-  R_HEX_B32_PCREL_X       =  16
-  R_HEX_32_6_X            =  17
-  R_HEX_B22_PCREL_X       =  18
-  R_HEX_B15_PCREL_X       =  19
-  R_HEX_B13_PCREL_X       =  20
-  R_HEX_B9_PCREL_X        =  21
-  R_HEX_B7_PCREL_X        =  22
-  R_HEX_16_X              =  23
-  R_HEX_12_X              =  24
-  R_HEX_11_X              =  25
-  R_HEX_10_X              =  26
-  R_HEX_9_X               =  27
-  R_HEX_8_X               =  28
-  R_HEX_7_X               =  29
-  R_HEX_6_X               =  30
-  R_HEX_32_PCREL          =  31
-  R_HEX_COPY              =  32
-  R_HEX_GLOB_DAT          =  33
-  R_HEX_JMP_SLOT          =  34
-  R_HEX_RELATIVE          =  35
-  R_HEX_PLT_B22_PCREL     =  36
-  R_HEX_GOTREL_LO16       =  37
-  R_HEX_GOTREL_HI16       =  38
-  R_HEX_GOTREL_32         =  39
-  R_HEX_GOT_LO16          =  40
-  R_HEX_GOT_HI16          =  41
-  R_HEX_GOT_32            =  42
-  R_HEX_GOT_16            =  43
-  R_HEX_DTPMOD_32         =  44
-  R_HEX_DTPREL_LO16       =  45
-  R_HEX_DTPREL_HI16       =  46
-  R_HEX_DTPREL_32         =  47
-  R_HEX_DTPREL_16         =  48
-  R_HEX_GD_PLT_B22_PCREL  =  49
-  R_HEX_GD_GOT_LO16       =  50
-  R_HEX_GD_GOT_HI16       =  51
-  R_HEX_GD_GOT_32         =  52
-  R_HEX_GD_GOT_16         =  53
-  R_HEX_IE_LO16           =  54
-  R_HEX_IE_HI16           =  55
-  R_HEX_IE_32             =  56
-  R_HEX_IE_GOT_LO16       =  57
-  R_HEX_IE_GOT_HI16       =  58
-  R_HEX_IE_GOT_32         =  59
-  R_HEX_IE_GOT_16         =  60
-  R_HEX_TPREL_LO16        =  61
-  R_HEX_TPREL_HI16        =  62
-  R_HEX_TPREL_32          =  63
-  R_HEX_TPREL_16          =  64
-  R_HEX_6_PCREL_X         =  65
-  R_HEX_GOTREL_32_6_X     =  66
-  R_HEX_GOTREL_16_X       =  67
-  R_HEX_GOTREL_11_X       =  68
-  R_HEX_GOT_32_6_X        =  69
-  R_HEX_GOT_16_X          =  70
-  R_HEX_GOT_11_X          =  71
-  R_HEX_DTPREL_32_6_X     =  72
-  R_HEX_DTPREL_16_X       =  73
-  R_HEX_DTPREL_11_X       =  74
-  R_HEX_GD_GOT_32_6_X     =  75
-  R_HEX_GD_GOT_16_X       =  76
-  R_HEX_GD_GOT_11_X       =  77
-  R_HEX_IE_32_6_X         =  78
-  R_HEX_IE_16_X           =  79
-  R_HEX_IE_GOT_32_6_X     =  80
-  R_HEX_IE_GOT_16_X       =  81
-  R_HEX_IE_GOT_11_X       =  82
-  R_HEX_TPREL_32_6_X      =  83
-  R_HEX_TPREL_16_X        =  84
-  R_HEX_TPREL_11_X        =  85
-
-class Relocs_Elf_Lanai(Enum):
-  R_LANAI_NONE = 0
-  R_LANAI_21   = 1
-  R_LANAI_21_F = 2
-  R_LANAI_25   = 3
-  R_LANAI_32   = 4
-  R_LANAI_HI16 = 5
-  R_LANAI_LO16 = 6
-
-class Relocs_Coff_i386(Enum):
-  IMAGE_REL_I386_ABSOLUTE = 0x0000
-  IMAGE_REL_I386_DIR16    = 0x0001
-  IMAGE_REL_I386_REL16    = 0x0002
-  IMAGE_REL_I386_DIR32    = 0x0006
-  IMAGE_REL_I386_DIR32NB  = 0x0007
-  IMAGE_REL_I386_SEG12    = 0x0009
-  IMAGE_REL_I386_SECTION  = 0x000A
-  IMAGE_REL_I386_SECREL   = 0x000B
-  IMAGE_REL_I386_TOKEN    = 0x000C
-  IMAGE_REL_I386_SECREL7  = 0x000D
-  IMAGE_REL_I386_REL32    = 0x0014
-
-class Relocs_Coff_X86_64(Enum):
-  IMAGE_REL_AMD64_ABSOLUTE  = 0x0000
-  IMAGE_REL_AMD64_ADDR64    = 0x0001
-  IMAGE_REL_AMD64_ADDR32    = 0x0002
-  IMAGE_REL_AMD64_ADDR32NB  = 0x0003
-  IMAGE_REL_AMD64_REL32     = 0x0004
-  IMAGE_REL_AMD64_REL32_1   = 0x0005
-  IMAGE_REL_AMD64_REL32_2   = 0x0006
-  IMAGE_REL_AMD64_REL32_3   = 0x0007
-  IMAGE_REL_AMD64_REL32_4   = 0x0008
-  IMAGE_REL_AMD64_REL32_5   = 0x0009
-  IMAGE_REL_AMD64_SECTION   = 0x000A
-  IMAGE_REL_AMD64_SECREL    = 0x000B
-  IMAGE_REL_AMD64_SECREL7   = 0x000C
-  IMAGE_REL_AMD64_TOKEN     = 0x000D
-  IMAGE_REL_AMD64_SREL32    = 0x000E
-  IMAGE_REL_AMD64_PAIR      = 0x000F
-  IMAGE_REL_AMD64_SSPAN32   = 0x0010
-
-class Relocs_Coff_ARM(Enum):
-  IMAGE_REL_ARM_ABSOLUTE  = 0x0000
-  IMAGE_REL_ARM_ADDR32    = 0x0001
-  IMAGE_REL_ARM_ADDR32NB  = 0x0002
-  IMAGE_REL_ARM_BRANCH24  = 0x0003
-  IMAGE_REL_ARM_BRANCH11  = 0x0004
-  IMAGE_REL_ARM_TOKEN     = 0x0005
-  IMAGE_REL_ARM_BLX24     = 0x0008
-  IMAGE_REL_ARM_BLX11     = 0x0009
-  IMAGE_REL_ARM_SECTION   = 0x000E
-  IMAGE_REL_ARM_SECREL    = 0x000F
-  IMAGE_REL_ARM_MOV32A    = 0x0010
-  IMAGE_REL_ARM_MOV32T    = 0x0011
-  IMAGE_REL_ARM_BRANCH20T = 0x0012
-  IMAGE_REL_ARM_BRANCH24T = 0x0014
-  IMAGE_REL_ARM_BLX23T    = 0x0015
-
-
-class Relocs_Macho_i386(Enum):
-  RIT_Vanilla                     = 0
-  RIT_Pair                        = 1
-  RIT_Difference                  = 2
-  RIT_Generic_PreboundLazyPointer = 3
-  RIT_Generic_LocalDifference     = 4
-  RIT_Generic_TLV                 = 5
-
-class Relocs_Macho_X86_64(Enum):
-  RIT_X86_64_Unsigned   = 0
-  RIT_X86_64_Signed     = 1
-  RIT_X86_64_Branch     = 2
-  RIT_X86_64_GOTLoad    = 3
-  RIT_X86_64_GOT        = 4
-  RIT_X86_64_Subtractor = 5
-  RIT_X86_64_Signed1    = 6
-  RIT_X86_64_Signed2    = 7
-  RIT_X86_64_Signed4    = 8
-  RIT_X86_64_TLV        = 9
-
-class Relocs_Macho_ARM(Enum):
-  RIT_Vanilla                     = 0
-  RIT_Pair                        = 1
-  RIT_Difference                  = 2
-  RIT_ARM_LocalDifference         = 3
-  RIT_ARM_PreboundLazyPointer     = 4
-  RIT_ARM_Branch24Bit             = 5
-  RIT_ARM_ThumbBranch22Bit        = 6
-  RIT_ARM_ThumbBranch32Bit        = 7
-  RIT_ARM_Half                    = 8
-  RIT_ARM_HalfDifference          = 9
-
-class Relocs_Macho_PPC(Enum):
-  PPC_RELOC_VANILLA        = 0
-  PPC_RELOC_PAIR           = 1
-  PPC_RELOC_BR14           = 2
-  PPC_RELOC_BR24           = 3
-  PPC_RELOC_HI16           = 4
-  PPC_RELOC_LO16           = 5
-  PPC_RELOC_HA16           = 6
-  PPC_RELOC_LO14           = 7
-  PPC_RELOC_SECTDIFF       = 8
-  PPC_RELOC_PB_LA_PTR      = 9
-  PPC_RELOC_HI16_SECTDIFF  = 10
-  PPC_RELOC_LO16_SECTDIFF  = 11
-  PPC_RELOC_HA16_SECTDIFF  = 12
-  PPC_RELOC_JBSR           = 13
-  PPC_RELOC_LO14_SECTDIFF  = 14
-  PPC_RELOC_LOCAL_SECTDIFF = 15
-
-
-craftElf("relocs.obj.elf-x86_64",   "x86_64-pc-linux-gnu",         Relocs_Elf_X86_64.entries(), "leaq sym at GOTTPOFF(%rip), %rax")
-craftElf("relocs.obj.elf-i386",     "i386-pc-linux-gnu",           Relocs_Elf_i386.entries(),   "mov sym at GOTOFF(%ebx), %eax")
-#craftElf("relocs-elf-ppc32",   "powerpc-unknown-linux-gnu",   Relocs_Elf_PPC32.entries(), ...)
-craftElf("relocs.obj.elf-ppc64",   "powerpc64-unknown-linux-gnu", Relocs_Elf_PPC64.entries(),
-         ("@t = thread_local global i32 0, align 4", "define i32* @f{0}() nounwind {{ ret i32* @t }}", 2))
-craftElf("relocs.obj.elf-aarch64",  "aarch64",                     Relocs_Elf_AArch64.entries(), "movz x0, #:abs_g0:sym")
-craftElf("relocs.obj.elf-aarch64-ilp32", "aarch64",
-         Relocs_Elf_AArch64_ILP32.entries(), "movz x0, #:abs_g0:sym")
-Relocs_Elf_AArch64_ILP32
-craftElf("relocs.obj.elf-arm",      "arm-unknown-unknown",         Relocs_Elf_ARM.entries(), "b sym")
-craftElf("relocs.obj.elf-mips",     "mips-unknown-linux",          Relocs_Elf_Mips.entries(), "lui $2, %hi(sym)")
-craftElf("relocs.obj.elf-mips64el", "mips64el-unknown-linux",        Relocs_Elf_Mips.entries(), "lui $2, %hi(sym)")
-#craftElf("relocs.obj.elf-hexagon",  "hexagon-unknown-unknown",     Relocs_Elf_Hexagon.entries(), ...)
-#craftElf("relocs.obj.elf-lanai",   "lanai-unknown-unknown",   Relocs_Elf_Lanai.entries(), "mov hi(x), %r4")
-
-craftCoff("relocs.obj.coff-i386",   "i386-pc-win32",   Relocs_Coff_i386.entries(),   "mov foo at imgrel(%ebx, %ecx, 4), %eax")
-craftCoff("relocs.obj.coff-x86_64", "x86_64-pc-win32", Relocs_Coff_X86_64.entries(), "mov foo at imgrel(%ebx, %ecx, 4), %eax")
-#craftCoff("relocs.obj.coff-arm",    "arm-pc-win32",    Relocs_Coff_ARM.entries(), "...")
-
-craftMacho("relocs.obj.macho-i386",   "i386-apple-darwin9", Relocs_Macho_i386.entries(),
-          ("asm", ".subsections_via_symbols; .text; a: ; b:", "call a", 1))
-craftMacho("relocs.obj.macho-x86_64", "x86_64-apple-darwin9", Relocs_Macho_X86_64.entries(),
-          ("asm", ".subsections_via_symbols; .text; a: ; b:", "call a", 1))
-craftMacho("relocs.obj.macho-arm",    "armv7-apple-darwin10", Relocs_Macho_ARM.entries(), "bl sym")
-#craftMacho("relocs.obj.macho-ppc",   "powerpc-apple-darwin10", Relocs_Macho_PPC.entries(), ...)

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 b/llvm/test/tools/llvm-readobj/MachO/Inputs/macho-universal-archive.x86_64.i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/macho-universal-archive.x86_64.i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386 b/llvm/test/tools/llvm-readobj/MachO/Inputs/macho-universal.x86_64.i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/macho-universal.x86_64.i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-arm b/llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-arm
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-arm
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-arm

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-i386 b/llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-i386
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-x86_64 b/llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-x86_64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-x86_64
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/relocs.obj.macho-x86_64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-arm b/llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-arm
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-arm
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-arm

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-i386 b/llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-i386
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-i386
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-i386

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc b/llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-ppc
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-ppc

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc64 b/llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-ppc64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc64
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-ppc64

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-x86-64 b/llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-x86-64
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-x86-64
rename to llvm/test/tools/llvm-readobj/MachO/Inputs/trivial.obj.macho-x86-64

diff  --git a/llvm/test/tools/llvm-readobj/macho-file-headers.test b/llvm/test/tools/llvm-readobj/MachO/file-headers.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/macho-file-headers.test
rename to llvm/test/tools/llvm-readobj/MachO/file-headers.test

diff  --git a/llvm/test/tools/llvm-readobj/macho-needed-libs.test b/llvm/test/tools/llvm-readobj/MachO/needed-libs.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/macho-needed-libs.test
rename to llvm/test/tools/llvm-readobj/MachO/needed-libs.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-macho-arm.test b/llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-arm.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-macho-arm.test
rename to llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-arm.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-macho-i386.test b/llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-i386.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-macho-i386.test
rename to llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-i386.test

diff  --git a/llvm/test/tools/llvm-readobj/reloc-types-macho-x64.test b/llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-x64.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/reloc-types-macho-x64.test
rename to llvm/test/tools/llvm-readobj/MachO/reloc-types-macho-x64.test

diff  --git a/llvm/test/tools/llvm-readobj/macho-sections.test b/llvm/test/tools/llvm-readobj/MachO/sections.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/macho-sections.test
rename to llvm/test/tools/llvm-readobj/MachO/sections.test

diff  --git a/llvm/test/tools/llvm-readobj/macho-universal-x86_64.i386.test b/llvm/test/tools/llvm-readobj/MachO/universal-x86_64.i386.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/macho-universal-x86_64.i386.test
rename to llvm/test/tools/llvm-readobj/MachO/universal-x86_64.i386.test

diff  --git a/llvm/test/tools/llvm-readobj/archive.test b/llvm/test/tools/llvm-readobj/archive.test
index 2cf0200b51e8..f6a27a212283 100644
--- a/llvm/test/tools/llvm-readobj/archive.test
+++ b/llvm/test/tools/llvm-readobj/archive.test
@@ -1,7 +1,7 @@
 # Show that dumping operations apply to all members in an archive.
 
 # RUN: rm -f %t.a
-# RUN: llvm-ar rc %t.a %p/Inputs/trivial.obj.elf-x86-64 %p/Inputs/trivial.obj.elf-i386 %p/Inputs/trivial.obj.coff-arm
+# RUN: llvm-ar rc %t.a %p/ELF/Inputs/trivial.obj.elf-x86-64 %p/ELF/Inputs/trivial.obj.elf-i386 %p/COFF/Inputs/trivial.obj.coff-arm
 # RUN: llvm-readobj --all %t.a | FileCheck %s -DARFILE="%t.a" --check-prefixes=HEADER,LLVM,COFF
 # RUN: llvm-readelf --all %t.a | FileCheck %s -DARFILE="%t.a" --check-prefixes=HEADER,GNU,COFF
 

diff  --git a/llvm/test/tools/llvm-readobj/basic.test b/llvm/test/tools/llvm-readobj/basic.test
index 488a47607323..3f33ff6ab8a1 100644
--- a/llvm/test/tools/llvm-readobj/basic.test
+++ b/llvm/test/tools/llvm-readobj/basic.test
@@ -14,8 +14,8 @@ RUN: llvm-readobj --all %t.a 2>&1 | FileCheck --check-prefix=NO-OUTPUT --allow-e
 NO-OUTPUT-NOT: {{.}}
 
 # Test case where no switches are specified.
-RUN: llvm-readobj %p/Inputs/trivial.obj.elf-x86-64 | FileCheck --check-prefix=HEADER %s
-RUN: llvm-readelf %p/Inputs/trivial.obj.elf-x86-64 | FileCheck --check-prefix=NO-OUTPUT --allow-empty %s
+RUN: llvm-readobj %p/ELF/Inputs/trivial.obj.elf-x86-64 | FileCheck --check-prefix=HEADER %s
+RUN: llvm-readelf %p/ELF/Inputs/trivial.obj.elf-x86-64 | FileCheck --check-prefix=NO-OUTPUT --allow-empty %s
 HEADER: File: {{.*}}trivial.obj.elf-x86-64
 HEADER: Format: ELF64-x86-64
 HEADER: Arch: x86_64

diff  --git a/llvm/test/tools/llvm-readobj/hex-dump.test b/llvm/test/tools/llvm-readobj/hex-dump.test
index 4088fa56b7f2..5e69e0701040 100644
--- a/llvm/test/tools/llvm-readobj/hex-dump.test
+++ b/llvm/test/tools/llvm-readobj/hex-dump.test
@@ -1,14 +1,14 @@
 ## Test that the -x alias can be used flexibly. Create a baseline and ensure
 ## all other combinations are identical.
 # RUN: llvm-readelf --file-header --hex-dump=.text \
-# RUN:   %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.out
-# RUN: llvm-readelf -h --hex-dump .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.1
-# RUN: llvm-readelf -h -x .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.2
-# RUN: llvm-readelf -h -x=.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.3
-# RUN: llvm-readelf -h -x.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.4
-# RUN: llvm-readelf -hx .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.5
-# RUN: llvm-readelf -hx=.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.6
-# RUN: llvm-readelf -hx.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.7
+# RUN:   %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.out
+# RUN: llvm-readelf -h --hex-dump .text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.1
+# RUN: llvm-readelf -h -x .text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.2
+# RUN: llvm-readelf -h -x=.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.3
+# RUN: llvm-readelf -h -x.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.4
+# RUN: llvm-readelf -hx .text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.5
+# RUN: llvm-readelf -hx=.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.6
+# RUN: llvm-readelf -hx.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.7
 
 # RUN: cmp %t.hexdump.out %t.hexdump.1
 # RUN: cmp %t.hexdump.out %t.hexdump.2
@@ -18,13 +18,13 @@
 # RUN: cmp %t.hexdump.out %t.hexdump.6
 # RUN: cmp %t.hexdump.out %t.hexdump.7
 
-# RUN: llvm-readelf -S %p/Inputs/trivial.obj.elf-x86-64 | FileCheck %s --check-prefix=ELF-SEC
+# RUN: llvm-readelf -S %p/ELF/Inputs/trivial.obj.elf-x86-64 | FileCheck %s --check-prefix=ELF-SEC
 
 ## Both 9 and .strtab refer to .strtab. Test we dump the section only once.
-# RUN: llvm-readobj -x 9 -x 9 -x .strtab -x .strtab %p/Inputs/trivial.obj.elf-x86-64 2>&1 | \
+# RUN: llvm-readobj -x 9 -x 9 -x .strtab -x .strtab %p/ELF/Inputs/trivial.obj.elf-x86-64 2>&1 | \
 # RUN:   FileCheck %s --check-prefix=ELF
 # RUN: llvm-readobj -x 9 -x .strtab -x 10 -x not_exist \
-# RUN:   %p/Inputs/trivial.obj.elf-x86-64 2>&1 | FileCheck %s -DFILE=%p/Inputs/trivial.obj.elf-x86-64 --check-prefixes=ELF-WARN,ELF
+# RUN:   %p/ELF/Inputs/trivial.obj.elf-x86-64 2>&1 | FileCheck %s -DFILE=%p/ELF/Inputs/trivial.obj.elf-x86-64 --check-prefixes=ELF-WARN,ELF
 
 # ELF-SEC: [ 9] .strtab
 
@@ -40,19 +40,19 @@
 
 ## Below we test -x can be used for other binary formats.
 
-# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.coff-x86-64 \
+# RUN: llvm-readobj -x 1 %p/COFF/Inputs/trivial.obj.coff-x86-64 \
 # RUN:     | FileCheck %s --check-prefix COFF
 
 # COFF: 0x00000000 4883ec28 488d0d00 000000e8 00000000 H..(H...........
 # COFF: 0x00000010 e8000000 0031c048 83c428c3          .....1.H..(.
 
-# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.macho-x86-64 \
+# RUN: llvm-readobj -x 1 %p/MachO/Inputs/trivial.obj.macho-x86-64 \
 # RUN:     | FileCheck %s --check-prefix MACHO
 
 # MACHO: 0x00000000 50488d3d 00000000 e8000000 00e80000 PH.=............
 # MACHO: 0x00000010 000031c0 5ac3                       ..1.Z.
 
-# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.wasm \
+# RUN: llvm-readobj -x 1 %p/wasm/Inputs/trivial.obj.wasm \
 # RUN:     | FileCheck %s --check-prefix WASM
 
 # WASM: 0x00000000 04600001 7f60017f 017f6000 0060017f .`...`....`..`..

diff  --git a/llvm/test/tools/llvm-readobj/relocations.test b/llvm/test/tools/llvm-readobj/relocations.test
index 535170342989..381eb2fbed9c 100644
--- a/llvm/test/tools/llvm-readobj/relocations.test
+++ b/llvm/test/tools/llvm-readobj/relocations.test
@@ -1,20 +1,20 @@
-RUN: llvm-readobj -r %p/Inputs/trivial.obj.coff-i386 \
+RUN: llvm-readobj -r %p/COFF/Inputs/trivial.obj.coff-i386 \
 RUN:   | FileCheck %s -check-prefix COFF
-RUN: llvm-readobj -r %p/Inputs/bad-relocs.obj.coff-i386 \
+RUN: llvm-readobj -r %p/COFF/Inputs/bad-relocs.obj.coff-i386 \
 RUN:   | FileCheck %s -check-prefix BAD-COFF-RELOCS
-RUN: llvm-readobj -r %p/Inputs/relocs-no-symtab.obj.coff-i386 \
+RUN: llvm-readobj -r %p/COFF/Inputs/relocs-no-symtab.obj.coff-i386 \
 RUN:   | FileCheck %s -check-prefix BAD-COFF-RELOCS
-RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-i386 \
+RUN: llvm-readobj -r %p/MachO/Inputs/trivial.obj.macho-i386 \
 RUN:   | FileCheck %s -check-prefix MACHO-I386
-RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-x86-64 \
+RUN: llvm-readobj -r %p/MachO/Inputs/trivial.obj.macho-x86-64 \
 RUN:   | FileCheck %s -check-prefix MACHO-X86-64
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc \
+RUN: llvm-readobj -r --expand-relocs %p/MachO/Inputs/trivial.obj.macho-ppc \
 RUN:   | FileCheck %s -check-prefix MACHO-PPC
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc64 \
+RUN: llvm-readobj -r --expand-relocs %p/MachO/Inputs/trivial.obj.macho-ppc64 \
 RUN:   | FileCheck %s -check-prefix MACHO-PPC64
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-arm \
+RUN: llvm-readobj -r --expand-relocs %p/MachO/Inputs/trivial.obj.macho-arm \
 RUN:   | FileCheck %s -check-prefix MACHO-ARM
-RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.wasm \
+RUN: llvm-readobj -r --expand-relocs %p/wasm/Inputs/trivial.obj.wasm \
 RUN:   | FileCheck %s -check-prefix WASM
 
 COFF:      Relocations [

diff  --git a/llvm/test/tools/llvm-readobj/sections-ext.test b/llvm/test/tools/llvm-readobj/sections-ext.test
index f64294c2ed35..921bf0502c83 100644
--- a/llvm/test/tools/llvm-readobj/sections-ext.test
+++ b/llvm/test/tools/llvm-readobj/sections-ext.test
@@ -1,30 +1,30 @@
-RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.coff-i386 \
+RUN: llvm-readobj -S --st --sr --sd %p/COFF/Inputs/trivial.obj.coff-i386 \
 RUN:   | FileCheck %s -check-prefix COFF
-RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.elf-i386 \
+RUN: llvm-readobj -S --st --sr --sd %p/ELF/Inputs/trivial.obj.elf-i386 \
 RUN:   | FileCheck %s -check-prefix ELF
-RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.macho-i386 \
+RUN: llvm-readobj -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-i386 \
 RUN:   | FileCheck %s -check-prefix MACHO-I386
-RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.macho-x86-64 \
+RUN: llvm-readobj -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-x86-64 \
 RUN:   | FileCheck %s -check-prefix MACHO-X86-64
-RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/Inputs/trivial.obj.macho-ppc \
+RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-ppc \
 RUN:   | FileCheck %s -check-prefix MACHO-PPC
-RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/Inputs/trivial.obj.macho-ppc64 \
+RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-ppc64 \
 RUN:   | FileCheck %s -check-prefix MACHO-PPC64
-RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/Inputs/trivial.obj.macho-arm \
+RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-arm \
 RUN:   | FileCheck %s -check-prefix MACHO-ARM
 
 # Check the two-letter aliases above (-st, -sr, -sd) are equivalent to their
 # full flag names.
-RUN: llvm-readobj -S --st %p/Inputs/trivial.obj.elf-i386 > %t.readobj-st-alias
-RUN: llvm-readobj -S --section-symbols %p/Inputs/trivial.obj.elf-i386 > %t.readobj-st-no-alias
+RUN: llvm-readobj -S --st %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-st-alias
+RUN: llvm-readobj -S --section-symbols %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-st-no-alias
 RUN: 
diff  %t.readobj-st-alias %t.readobj-st-no-alias
 
-RUN: llvm-readobj -S --sr %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-alias
-RUN: llvm-readobj -S --section-relocations %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-no-alias
+RUN: llvm-readobj -S --sr %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-alias
+RUN: llvm-readobj -S --section-relocations %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-no-alias
 RUN: 
diff  %t.readobj-sr-alias %t.readobj-sr-no-alias
 
-RUN: llvm-readobj -S --sd %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-alias
-RUN: llvm-readobj -S --section-data %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-no-alias
+RUN: llvm-readobj -S --sd %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-alias
+RUN: llvm-readobj -S --section-data %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-no-alias
 RUN: 
diff  %t.readobj-sd-alias %t.readobj-sd-no-alias
 
 COFF:      Sections [

diff  --git a/llvm/test/tools/llvm-readobj/sections.test b/llvm/test/tools/llvm-readobj/sections.test
index 1ad4e98b2dec..77fb0904845a 100644
--- a/llvm/test/tools/llvm-readobj/sections.test
+++ b/llvm/test/tools/llvm-readobj/sections.test
@@ -1,27 +1,27 @@
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.coff-i386 \
+RUN: llvm-readobj --sections %p/COFF/Inputs/trivial.obj.coff-i386 \
 RUN:   | FileCheck %s -check-prefix COFF
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.elf-i386 \
+RUN: llvm-readobj --sections %p/ELF/Inputs/trivial.obj.elf-i386 \
 RUN:   | FileCheck %s -check-prefix ELF
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.elf-mipsel \
+RUN: llvm-readobj --sections %p/ELF/Inputs/trivial.obj.elf-mipsel \
 RUN:   | FileCheck %s -check-prefix ELF-MIPSEL
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-i386 \
+RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-i386 \
 RUN:   | FileCheck %s -check-prefix MACHO-I386
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-x86-64 \
+RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-x86-64 \
 RUN:   | FileCheck %s -check-prefix MACHO-X86-64
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-ppc \
+RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-ppc \
 RUN:   | FileCheck %s -check-prefix MACHO-PPC
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-ppc64 \
+RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-ppc64 \
 RUN:   | FileCheck %s -check-prefix MACHO-PPC64
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-arm \
+RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-arm \
 RUN:   | FileCheck %s -check-prefix MACHO-ARM
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.wasm \
+RUN: llvm-readobj --sections %p/wasm/Inputs/trivial.obj.wasm \
 RUN:   | FileCheck %s -check-prefix WASM
 
 # Check flag aliases produce identical output.
-RUN: llvm-readobj --sections %p/Inputs/trivial.obj.elf-i386 > %t.sections
-RUN: llvm-readobj -S %p/Inputs/trivial.obj.elf-i386 > %t.uppers
+RUN: llvm-readobj --sections %p/ELF/Inputs/trivial.obj.elf-i386 > %t.sections
+RUN: llvm-readobj -S %p/ELF/Inputs/trivial.obj.elf-i386 > %t.uppers
 RUN: cmp %t.sections %t.uppers
-RUN: llvm-readobj -S %p/Inputs/trivial.obj.elf-i386 > %t.lowers
+RUN: llvm-readobj -S %p/ELF/Inputs/trivial.obj.elf-i386 > %t.lowers
 RUN: cmp %t.sections %t.lowers
 
 COFF:      Sections [

diff  --git a/llvm/test/tools/llvm-readobj/symbols.test b/llvm/test/tools/llvm-readobj/symbols.test
index 1931cefdea41..55725850ed79 100644
--- a/llvm/test/tools/llvm-readobj/symbols.test
+++ b/llvm/test/tools/llvm-readobj/symbols.test
@@ -1,17 +1,17 @@
-RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.coff-i386 \
+RUN: llvm-readobj --symbols %p/COFF/Inputs/trivial.obj.coff-i386 \
 RUN:   | FileCheck %s -check-prefix COFF
-RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.elf-i386 \
+RUN: llvm-readobj --symbols %p/ELF/Inputs/trivial.obj.elf-i386 \
 RUN:   | FileCheck %s -check-prefix ELF
-RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.wasm \
+RUN: llvm-readobj --symbols %p/wasm/Inputs/trivial.obj.wasm \
 RUN:   | FileCheck %s -check-prefix WASM
 
 # Check flag aliases produce identical output.
-RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.elf-i386 > %t.symbols
-RUN: llvm-readobj --syms %p/Inputs/trivial.obj.elf-i386 > %t.syms
+RUN: llvm-readobj --symbols %p/ELF/Inputs/trivial.obj.elf-i386 > %t.symbols
+RUN: llvm-readobj --syms %p/ELF/Inputs/trivial.obj.elf-i386 > %t.syms
 RUN: cmp %t.symbols %t.syms
-RUN: llvm-readobj -t %p/Inputs/trivial.obj.elf-i386 > %t.t
+RUN: llvm-readobj -t %p/ELF/Inputs/trivial.obj.elf-i386 > %t.t
 RUN: cmp %t.symbols %t.t
-RUN: llvm-readelf -s -elf-output-style LLVM %p/Inputs/trivial.obj.elf-i386 > %t.lowers
+RUN: llvm-readelf -s -elf-output-style LLVM %p/ELF/Inputs/trivial.obj.elf-i386 > %t.lowers
 RUN: cmp %t.symbols %t.lowers
 
 COFF:      Symbols [

diff  --git a/llvm/test/tools/llvm-readobj/thin-archive.test b/llvm/test/tools/llvm-readobj/thin-archive.test
index 23c435c28bb5..5a14d80cce64 100644
--- a/llvm/test/tools/llvm-readobj/thin-archive.test
+++ b/llvm/test/tools/llvm-readobj/thin-archive.test
@@ -4,9 +4,9 @@
 
 # Make copies of the test inputs for placing in the archive so that we can mess
 # about with them later on.
-# RUN: cp %p/Inputs/trivial.obj.elf-x86-64 %t/1.o
-# RUN: cp %p/Inputs/relocs.obj.elf-x86_64 %t/2.o
-# RUN: cp %p/Inputs/trivial.obj.coff-arm %t/3.o
+# RUN: cp %p/ELF/Inputs/trivial.obj.elf-x86-64 %t/1.o
+# RUN: cp %p/ELF/Inputs/relocs.obj.elf-x86_64 %t/2.o
+# RUN: cp %p/COFF/Inputs/trivial.obj.coff-arm %t/3.o
 # RUN: llvm-ar rcT %t.a %t/1.o %t/2.o %t/3.o
 
 # Test that basic dumping works for all members.

diff  --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm b/llvm/test/tools/llvm-readobj/wasm/Inputs/trivial.obj.wasm
similarity index 100%
rename from llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm
rename to llvm/test/tools/llvm-readobj/wasm/Inputs/trivial.obj.wasm

diff  --git a/llvm/test/tools/llvm-readobj/wasm-file-headers.test b/llvm/test/tools/llvm-readobj/wasm/wasm-file-headers.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/wasm-file-headers.test
rename to llvm/test/tools/llvm-readobj/wasm/wasm-file-headers.test

diff  --git a/llvm/test/tools/llvm-readobj/wasm-imports.test b/llvm/test/tools/llvm-readobj/wasm/wasm-imports.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/wasm-imports.test
rename to llvm/test/tools/llvm-readobj/wasm/wasm-imports.test

diff  --git a/llvm/test/tools/llvm-readobj/wasm-invalid.test b/llvm/test/tools/llvm-readobj/wasm/wasm-invalid.test
similarity index 100%
rename from llvm/test/tools/llvm-readobj/wasm-invalid.test
rename to llvm/test/tools/llvm-readobj/wasm/wasm-invalid.test


        


More information about the llvm-commits mailing list