diff --git a/test/tools/llvm-objdump/X86/disassemble-align.s b/test/tools/llvm-objdump/X86/disassemble-align.s
new file mode 100644
index 0000000..56572a9
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/disassemble-align.s
@@ -0,0 +1,29 @@
+# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
+# RUN: llvm-objdump -d -print-imm-hex %t | sed 'y/\t/ /' | FileCheck -strict-whitespace %s
+
+# RUN: llvm-objdump -d -print-imm-hex -no-show-raw-insn %t | sed 's/\t/ /g' | \
+# RUN:   FileCheck -check-prefix=NORAW -strict-whitespace %s
+
+# Instructions are expected to be aligned if the instruction in hex is not too long.
+
+# CHECK:       0: c3                            retq
+# CHECK-NEXT:  1: 48 8b 05 56 34 12 00          movq 0x123456(%rip), %rax
+# CHECK-NEXT:  8: 48 b8 54 55 55 55 55 55 55 55 movabsq $0x5555555555555554, %rax
+# CHECK-NEXT: 12: 8f ea 00 12 4c 02 40 00 00 00 00      lwpval $0x0, 0x40(%rdx,%rax), %r15d
+# CHECK-NEXT: 1d: 8f ea 00 12 04 25 f0 1c f0 1c 00 00 00 00     lwpins $0x0, 0x1cf01cf0, %r15d
+# CHECK-NEXT: 2b: ff ff                         <unknown>
+
+# NORAW:       0:       retq
+# NORAW-NEXT:  1:       movq 0x123456(%rip), %rax
+# NORAW-NEXT:  8:       movabsq $0x5555555555555554, %rax
+# NORAW-NEXT: 12:       lwpval $0x0, 0x40(%rdx,%rax), %r15d
+# NORAW-NEXT: 1d:       lwpins $0x0, 0x1cf01cf0, %r15d
+# NORAW-NEXT: 2b:       <unknown>
+
+.text
+  retq
+  movq 0x123456(%rip),%rax
+  movabs $0x5555555555555554,%rax
+  lwpval $0x0, 0x40(%rdx,%rax), %r15d
+  lwpins $0x0, 0x1cf01cf0, %r15d
+  .word 0xffff
diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp
index 3ae72c7..0722db0 100644
--- a/tools/llvm-objdump/llvm-objdump.cpp
+++ b/tools/llvm-objdump/llvm-objdump.cpp
@@ -605,12 +605,25 @@
                          std::vector<RelocationRef> *Rels = nullptr) {
     if (SP && (PrintSource || PrintLines))
       SP->printSourceLine(OS, Address);
-    if (!NoLeadingAddr)
-      OS << format("%8" PRIx64 ":", Address.Address);
-    if (!NoShowRawInsn) {
-      OS << "\t";
-      dumpBytes(Bytes, OS);
+
+    {
+      formatted_raw_ostream FOS(OS);
+      if (!NoLeadingAddr)
+        FOS << format("%8" PRIx64 ":", Address.Address);
+      if (!NoShowRawInsn) {
+        FOS << ' ';
+        dumpBytes(Bytes, FOS);
+      }
+      FOS.flush();
+      // The output of printInst starts with a tab. Print some spaces so that
+      // the tab has 1 column and advances to the target tab stop.
+      unsigned TabStop = NoShowRawInsn ? 16 : 40;
+      unsigned Column = FOS.getColumn();
+      FOS.indent(Column < TabStop - 1 ? TabStop - 1 - Column : 7 - Column % 8);
+
+      // The dtor calls flush() to ensure the indent comes before printInst().
     }
+
     if (MI)
       IP.printInst(MI, OS, "", STI);
     else
