[llvm] MC: Remove bundle alignment mode (PR #148781)

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 14 23:07:17 PDT 2025


https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/148781

The being-removed PNaCl has a Software Fault Isolation mechanism, which
requires that certain instructions and groups of instructions do not
cross a bundle boundary. When `.bundle_align_mode` is in effect, each
instruction is placed in its own fragment, allowing flexible NOP
padding.

This feature has significantly complicated our refactoring of MCStreamer
and MCFragment, leading to considerable effort spent untangling
it (including flushPendingLabels (75006466296ed4b0f845cbbec4bf77c21de43b40),
MCAssembler iteration improvement, and recent MCFragment refactoring).


>From b849fbadced7c0a31d261c98fde0d81497b54ea7 Mon Sep 17 00:00:00 2001
From: Fangrui Song <i at maskray.me>
Date: Mon, 14 Jul 2025 23:07:06 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
 =?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.5-bogner
---
 llvm/include/llvm/MC/MCAssembler.h            |   23 -
 llvm/include/llvm/MC/MCELFStreamer.h          |    5 -
 llvm/include/llvm/MC/MCObjectStreamer.h       |    3 -
 llvm/include/llvm/MC/MCSection.h              |   45 -
 llvm/include/llvm/MC/MCStreamer.h             |   13 -
 llvm/lib/MC/MCAsmStreamer.cpp                 |   21 -
 llvm/lib/MC/MCAssembler.cpp                   |  128 -
 llvm/lib/MC/MCELFStreamer.cpp                 |  114 +-
 llvm/lib/MC/MCFragment.cpp                    |    8 +-
 llvm/lib/MC/MCObjectStreamer.cpp              |   30 +-
 llvm/lib/MC/MCParser/AsmParser.cpp            |   68 -
 llvm/lib/MC/MCSection.cpp                     |   24 +-
 llvm/lib/MC/MCStreamer.cpp                    |    3 -
 .../Mips/MCTargetDesc/MipsNaClELFStreamer.cpp |    9 -
 .../Target/X86/MCTargetDesc/X86AsmBackend.cpp |    4 -
 .../MC/ARM/AlignedBundling/group-bundle-arm.s |   48 -
 .../illegal-subtarget-change.s                |   16 -
 .../test/MC/ARM/AlignedBundling/lit.local.cfg |    2 -
 .../AlignedBundling/pad-align-to-bundle-end.s |   41 -
 .../MC/ARM/AlignedBundling/subtarget-change.s |   33 -
 .../align-mode-argument-error.s               |    8 -
 .../asm-printing-bundle-directives.s          |   22 -
 .../autogen-inst-offset-align-to-end.s        | 2899 -----------------
 .../autogen-inst-offset-padding.s             | 2674 ---------------
 .../bundle-group-too-large-error.s            |   18 -
 .../bundle-lock-option-error.s                |   11 -
 .../bundle-subtarget-change-error.s           |   16 -
 .../X86/AlignedBundling/different-sections.s  |   27 -
 .../test/MC/X86/AlignedBundling/labeloffset.s |   85 -
 .../test/MC/X86/AlignedBundling/lit.local.cfg |    2 -
 .../lock-without-bundle-mode-error.s          |   10 -
 .../MC/X86/AlignedBundling/long-nop-pad.s     |   31 -
 .../AlignedBundling/misaligned-bundle-group.s |   19 -
 .../X86/AlignedBundling/misaligned-bundle.s   |   26 -
 llvm/test/MC/X86/AlignedBundling/nesting.s    |   73 -
 .../AlignedBundling/pad-align-to-bundle-end.s |   35 -
 .../X86/AlignedBundling/pad-bundle-groups.s   |   49 -
 .../X86/AlignedBundling/relax-at-bundle-end.s |   18 -
 .../AlignedBundling/relax-in-bundle-group.s   |   44 -
 .../MC/X86/AlignedBundling/rodata-section.s   |   30 -
 .../X86/AlignedBundling/section-alignment.s   |   23 -
 .../AlignedBundling/single-inst-bundling.s    |   52 -
 .../switch-section-locked-error.s             |   16 -
 .../unlock-without-lock-error.s               |   11 -
 llvm/test/MC/X86/align-branch-bundle.s        |   21 -
 45 files changed, 7 insertions(+), 6851 deletions(-)
 delete mode 100644 llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s
 delete mode 100644 llvm/test/MC/ARM/AlignedBundling/illegal-subtarget-change.s
 delete mode 100644 llvm/test/MC/ARM/AlignedBundling/lit.local.cfg
 delete mode 100644 llvm/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s
 delete mode 100644 llvm/test/MC/ARM/AlignedBundling/subtarget-change.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/align-mode-argument-error.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/asm-printing-bundle-directives.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-align-to-end.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-padding.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/bundle-group-too-large-error.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/bundle-lock-option-error.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/bundle-subtarget-change-error.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/different-sections.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/labeloffset.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/lit.local.cfg
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/lock-without-bundle-mode-error.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/long-nop-pad.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/misaligned-bundle-group.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/misaligned-bundle.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/nesting.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/pad-align-to-bundle-end.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/pad-bundle-groups.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/relax-at-bundle-end.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/relax-in-bundle-group.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/rodata-section.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/section-alignment.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/single-inst-bundling.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/switch-section-locked-error.s
 delete mode 100644 llvm/test/MC/X86/AlignedBundling/unlock-without-lock-error.s
 delete mode 100644 llvm/test/MC/X86/align-branch-bundle.s

diff --git a/llvm/include/llvm/MC/MCAssembler.h b/llvm/include/llvm/MC/MCAssembler.h
index 1015992cedf29..6b0d1b202e8c2 100644
--- a/llvm/include/llvm/MC/MCAssembler.h
+++ b/llvm/include/llvm/MC/MCAssembler.h
@@ -85,11 +85,6 @@ class MCAssembler {
   // refactoring too.
   mutable SmallPtrSet<const MCSymbol *, 32> ThumbFuncs;
 
-  /// The bundle alignment size currently set in the assembler.
-  ///
-  /// By default it's 0, which means bundling is disabled.
-  unsigned BundleAlignSize = 0;
-
   /// Evaluate a fixup to a relocatable expression and the value which should be
   /// placed into the fixup.
   ///
@@ -143,8 +138,6 @@ class MCAssembler {
   /// Compute the effective fragment size.
   LLVM_ABI uint64_t computeFragmentSize(const MCFragment &F) const;
 
-  LLVM_ABI void layoutBundle(MCFragment *Prev, MCFragment *F) const;
-
   // Get the offset of the given fragment inside its containing section.
   uint64_t getFragmentOffset(const MCFragment &F) const { return F.Offset; }
 
@@ -203,16 +196,6 @@ class MCAssembler {
   bool getRelaxAll() const { return RelaxAll; }
   void setRelaxAll(bool Value) { RelaxAll = Value; }
 
-  bool isBundlingEnabled() const { return BundleAlignSize != 0; }
-
-  unsigned getBundleAlignSize() const { return BundleAlignSize; }
-
-  void setBundleAlignSize(unsigned Size) {
-    assert((Size == 0 || !(Size & (Size - 1))) &&
-           "Expect a power-of-two bundle align size");
-    BundleAlignSize = Size;
-  }
-
   const_iterator begin() const { return Sections.begin(); }
   const_iterator end() const { return Sections.end(); }
 
@@ -226,12 +209,6 @@ class MCAssembler {
   LLVM_ABI bool registerSection(MCSection &Section);
   LLVM_ABI bool registerSymbol(const MCSymbol &Symbol);
 
-  /// Write the necessary bundle padding to \p OS.
-  /// Expects a fragment \p F containing instructions and its size \p FSize.
-  LLVM_ABI void writeFragmentPadding(raw_ostream &OS,
-                                     const MCEncodedFragment &F,
-                                     uint64_t FSize) const;
-
   LLVM_ABI void reportError(SMLoc L, const Twine &Msg) const;
   // Record pending errors during layout iteration, as they may go away once the
   // layout is finalized.
diff --git a/llvm/include/llvm/MC/MCELFStreamer.h b/llvm/include/llvm/MC/MCELFStreamer.h
index fa0b5cbde71d9..ccf2f868dec4d 100644
--- a/llvm/include/llvm/MC/MCELFStreamer.h
+++ b/llvm/include/llvm/MC/MCELFStreamer.h
@@ -79,10 +79,6 @@ class MCELFStreamer : public MCObjectStreamer {
   // target-specific code.
   void finishImpl() final;
 
-  void emitBundleAlignMode(Align Alignment) override;
-  void emitBundleLock(bool AlignToEnd) override;
-  void emitBundleUnlock() override;
-
   /// ELF object attributes section emission support
   struct AttributeItem {
     // This structure holds all attributes, accounting for their string /
@@ -151,7 +147,6 @@ class MCELFStreamer : public MCObjectStreamer {
   }
 
 private:
-  bool isBundleLocked() const;
   void emitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override;
 
   void finalizeCGProfileEntry(const MCSymbolRefExpr *&S, uint64_t Offset);
diff --git a/llvm/include/llvm/MC/MCObjectStreamer.h b/llvm/include/llvm/MC/MCObjectStreamer.h
index 2b42507d66920..ae08455976dbf 100644
--- a/llvm/include/llvm/MC/MCObjectStreamer.h
+++ b/llvm/include/llvm/MC/MCObjectStreamer.h
@@ -127,9 +127,6 @@ class MCObjectStreamer : public MCStreamer {
   /// can change its size during relaxation.
   void emitInstToFragment(const MCInst &Inst, const MCSubtargetInfo &);
 
-  void emitBundleAlignMode(Align Alignment) override;
-  void emitBundleLock(bool AlignToEnd) override;
-  void emitBundleUnlock() override;
   void emitBytes(StringRef Data) override;
   void emitValueToAlignment(Align Alignment, int64_t Fill = 0,
                             uint8_t FillLen = 1,
diff --git a/llvm/include/llvm/MC/MCSection.h b/llvm/include/llvm/MC/MCSection.h
index 64b13972bfca1..01ce3842cd368 100644
--- a/llvm/include/llvm/MC/MCSection.h
+++ b/llvm/include/llvm/MC/MCSection.h
@@ -61,13 +61,6 @@ class LLVM_ABI MCSection {
     SV_DXContainer,
   };
 
-  /// Express the state of bundle locked groups while emitting code.
-  enum BundleLockStateType {
-    NotBundleLocked,
-    BundleLocked,
-    BundleLockedAlignToEnd
-  };
-
   struct iterator {
     MCFragment *F = nullptr;
     iterator() = default;
@@ -94,16 +87,6 @@ class LLVM_ABI MCSection {
   /// The section index in the assemblers section list.
   unsigned Ordinal = 0;
 
-  /// Keeping track of bundle-locked state.
-  BundleLockStateType BundleLockState = NotBundleLocked;
-
-  /// Current nesting depth of bundle_lock directives.
-  unsigned BundleLockNestingDepth = 0;
-
-  /// We've seen a bundle_lock directive but not its first instruction
-  /// yet.
-  bool BundleGroupBeforeFirstInst : 1;
-
   /// Whether this section has had instructions emitted into it.
   bool HasInstructions : 1;
 
@@ -169,17 +152,6 @@ class LLVM_ABI MCSection {
   unsigned getOrdinal() const { return Ordinal; }
   void setOrdinal(unsigned Value) { Ordinal = Value; }
 
-  BundleLockStateType getBundleLockState() const { return BundleLockState; }
-  void setBundleLockState(BundleLockStateType NewState);
-  bool isBundleLocked() const { return BundleLockState != NotBundleLocked; }
-
-  bool isBundleGroupBeforeFirstInst() const {
-    return BundleGroupBeforeFirstInst;
-  }
-  void setBundleGroupBeforeFirstInst(bool IsFirst) {
-    BundleGroupBeforeFirstInst = IsFirst;
-  }
-
   bool hasInstructions() const { return HasInstructions; }
   void setHasInstructions(bool Value) { HasInstructions = Value; }
 
@@ -259,7 +231,6 @@ class MCFragment {
   ///
   /// MCEncodedFragment
   bool HasInstructions : 1;
-  bool AlignToBundleEnd : 1;
   /// MCDataFragment
   bool LinkerRelaxable : 1;
   /// MCRelaxableFragment: x86-specific
@@ -297,7 +268,6 @@ class MCFragment {
 /// Interface implemented by fragments that contain encoded instructions and/or
 /// data.
 class MCEncodedFragment : public MCFragment {
-  uint8_t BundlePadding = 0;
   uint32_t ContentStart = 0;
   uint32_t ContentEnd = 0;
   uint32_t FixupStart = 0;
@@ -329,21 +299,6 @@ class MCEncodedFragment : public MCFragment {
     }
   }
 
-  /// Should this fragment be placed at the end of an aligned bundle?
-  bool alignToBundleEnd() const { return AlignToBundleEnd; }
-  void setAlignToBundleEnd(bool V) { AlignToBundleEnd = V; }
-
-  /// Get the padding size that must be inserted before this fragment.
-  /// Used for bundling. By default, no padding is inserted.
-  /// Note that padding size is restricted to 8 bits. This is an optimization
-  /// to reduce the amount of space used for each fragment. In practice, larger
-  /// padding should never be required.
-  uint8_t getBundlePadding() const { return BundlePadding; }
-
-  /// Set the padding size for this fragment. By default it's a no-op,
-  /// and only some fragments have a meaningful implementation.
-  void setBundlePadding(uint8_t N) { BundlePadding = N; }
-
   /// Retrieve the MCSubTargetInfo in effect when the instruction was encoded.
   /// Guaranteed to be non-null if hasInstructions() == true
   const MCSubtargetInfo *getSubtargetInfo() const { return STI; }
diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h
index 4e052ecfe0e86..1f7c8b57540a7 100644
--- a/llvm/include/llvm/MC/MCStreamer.h
+++ b/llvm/include/llvm/MC/MCStreamer.h
@@ -1068,19 +1068,6 @@ class LLVM_ABI MCStreamer {
                                const MCPseudoProbeInlineStack &InlineStack,
                                MCSymbol *FnSym);
 
-  /// Set the bundle alignment mode from now on in the section.
-  /// The value 1 means turn the bundle alignment off.
-  virtual void emitBundleAlignMode(Align Alignment);
-
-  /// The following instructions are a bundle-locked group.
-  ///
-  /// \param AlignToEnd - If true, the bundle-locked group will be aligned to
-  ///                     the end of a bundle.
-  virtual void emitBundleLock(bool AlignToEnd);
-
-  /// Ends a bundle-locked group.
-  virtual void emitBundleUnlock();
-
   /// If this file is backed by a assembly streamer, this dumps the
   /// specified string in the output .s file.  This capability is indicated by
   /// the hasRawTextSupport() predicate.  By default this aborts.
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp
index 28b6f28a2e55b..3a330dbfec342 100644
--- a/llvm/lib/MC/MCAsmStreamer.cpp
+++ b/llvm/lib/MC/MCAsmStreamer.cpp
@@ -407,10 +407,6 @@ class MCAsmStreamer final : public MCStreamer {
                        const MCPseudoProbeInlineStack &InlineStack,
                        MCSymbol *FnSym) override;
 
-  void emitBundleAlignMode(Align Alignment) override;
-  void emitBundleLock(bool AlignToEnd) override;
-  void emitBundleUnlock() override;
-
   std::optional<std::pair<bool, std::string>>
   emitRelocDirective(const MCExpr &Offset, StringRef Name, const MCExpr *Expr,
                      SMLoc Loc, const MCSubtargetInfo &STI) override;
@@ -2472,23 +2468,6 @@ void MCAsmStreamer::emitPseudoProbe(uint64_t Guid, uint64_t Index,
   EmitEOL();
 }
 
-void MCAsmStreamer::emitBundleAlignMode(Align Alignment) {
-  OS << "\t.bundle_align_mode " << Log2(Alignment);
-  EmitEOL();
-}
-
-void MCAsmStreamer::emitBundleLock(bool AlignToEnd) {
-  OS << "\t.bundle_lock";
-  if (AlignToEnd)
-    OS << " align_to_end";
-  EmitEOL();
-}
-
-void MCAsmStreamer::emitBundleUnlock() {
-  OS << "\t.bundle_unlock";
-  EmitEOL();
-}
-
 std::optional<std::pair<bool, std::string>>
 MCAsmStreamer::emitRelocDirective(const MCExpr &Offset, StringRef Name,
                                   const MCExpr *Expr, SMLoc,
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index fd8a8c3a79c9f..7f01e272a323e 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -94,7 +94,6 @@ void MCAssembler::reset() {
   Sections.clear();
   Symbols.clear();
   ThumbFuncs.clear();
-  BundleAlignSize = 0;
 
   // reset objects owned by us
   if (getBackendPtr())
@@ -282,87 +281,6 @@ uint64_t MCAssembler::computeFragmentSize(const MCFragment &F) const {
   llvm_unreachable("invalid fragment kind");
 }
 
-// Compute the amount of padding required before the fragment \p F to
-// obey bundling restrictions, where \p FOffset is the fragment's offset in
-// its section and \p FSize is the fragment's size.
-static uint64_t computeBundlePadding(unsigned BundleSize,
-                                     const MCEncodedFragment *F,
-                                     uint64_t FOffset, uint64_t FSize) {
-  uint64_t OffsetInBundle = FOffset & (BundleSize - 1);
-  uint64_t EndOfFragment = OffsetInBundle + FSize;
-
-  // There are two kinds of bundling restrictions:
-  //
-  // 1) For alignToBundleEnd(), add padding to ensure that the fragment will
-  //    *end* on a bundle boundary.
-  // 2) Otherwise, check if the fragment would cross a bundle boundary. If it
-  //    would, add padding until the end of the bundle so that the fragment
-  //    will start in a new one.
-  if (F->alignToBundleEnd()) {
-    // Three possibilities here:
-    //
-    // A) The fragment just happens to end at a bundle boundary, so we're good.
-    // B) The fragment ends before the current bundle boundary: pad it just
-    //    enough to reach the boundary.
-    // C) The fragment ends after the current bundle boundary: pad it until it
-    //    reaches the end of the next bundle boundary.
-    //
-    // Note: this code could be made shorter with some modulo trickery, but it's
-    // intentionally kept in its more explicit form for simplicity.
-    if (EndOfFragment == BundleSize)
-      return 0;
-    else if (EndOfFragment < BundleSize)
-      return BundleSize - EndOfFragment;
-    else { // EndOfFragment > BundleSize
-      return 2 * BundleSize - EndOfFragment;
-    }
-  } else if (OffsetInBundle > 0 && EndOfFragment > BundleSize)
-    return BundleSize - OffsetInBundle;
-  else
-    return 0;
-}
-
-void MCAssembler::layoutBundle(MCFragment *Prev, MCFragment *F) const {
-  // If bundling is enabled and this fragment has instructions in it, it has to
-  // obey the bundling restrictions. With padding, we'll have:
-  //
-  //
-  //        BundlePadding
-  //             |||
-  // -------------------------------------
-  //   Prev  |##########|       F        |
-  // -------------------------------------
-  //                    ^
-  //                    |
-  //                    F->Offset
-  //
-  // The fragment's offset will point to after the padding, and its computed
-  // size won't include the padding.
-  //
-  // ".align N" is an example of a directive that introduces multiple
-  // fragments. We could add a special case to handle ".align N" by emitting
-  // within-fragment padding (which would produce less padding when N is less
-  // than the bundle size), but for now we don't.
-  //
-  assert(isa<MCEncodedFragment>(F) &&
-         "Only MCEncodedFragment implementations have instructions");
-  MCEncodedFragment *EF = cast<MCEncodedFragment>(F);
-  uint64_t FSize = computeFragmentSize(*EF);
-
-  if (FSize > getBundleAlignSize())
-    report_fatal_error("Fragment can't be larger than a bundle size");
-
-  uint64_t RequiredBundlePadding =
-      computeBundlePadding(getBundleAlignSize(), EF, EF->Offset, FSize);
-  if (RequiredBundlePadding > UINT8_MAX)
-    report_fatal_error("Padding cannot exceed 255 bytes");
-  EF->setBundlePadding(static_cast<uint8_t>(RequiredBundlePadding));
-  EF->Offset += RequiredBundlePadding;
-  if (auto *DF = dyn_cast_or_null<MCDataFragment>(Prev))
-    if (DF->getContents().empty())
-      DF->Offset = EF->Offset;
-}
-
 // Simple getSymbolOffset helper for the non-variable case.
 static bool getLabelOffset(const MCAssembler &Asm, const MCSymbol &S,
                            bool ReportError, uint64_t &Val) {
@@ -480,41 +398,6 @@ bool MCAssembler::registerSymbol(const MCSymbol &Symbol) {
   return Changed;
 }
 
-void MCAssembler::writeFragmentPadding(raw_ostream &OS,
-                                       const MCEncodedFragment &EF,
-                                       uint64_t FSize) const {
-  assert(getBackendPtr() && "Expected assembler backend");
-  // Should NOP padding be written out before this fragment?
-  unsigned BundlePadding = EF.getBundlePadding();
-  if (BundlePadding > 0) {
-    assert(isBundlingEnabled() &&
-           "Writing bundle padding with disabled bundling");
-    assert(EF.hasInstructions() &&
-           "Writing bundle padding for a fragment without instructions");
-
-    unsigned TotalLength = BundlePadding + static_cast<unsigned>(FSize);
-    const MCSubtargetInfo *STI = EF.getSubtargetInfo();
-    if (EF.alignToBundleEnd() && TotalLength > getBundleAlignSize()) {
-      // If the padding itself crosses a bundle boundary, it must be emitted
-      // in 2 pieces, since even nop instructions must not cross boundaries.
-      //             v--------------v   <- BundleAlignSize
-      //        v---------v             <- BundlePadding
-      // ----------------------------
-      // | Prev |####|####|    F    |
-      // ----------------------------
-      //        ^-------------------^   <- TotalLength
-      unsigned DistanceToBoundary = TotalLength - getBundleAlignSize();
-      if (!getBackend().writeNopData(OS, DistanceToBoundary, STI))
-        report_fatal_error("unable to write NOP sequence of " +
-                           Twine(DistanceToBoundary) + " bytes");
-      BundlePadding -= DistanceToBoundary;
-    }
-    if (!getBackend().writeNopData(OS, BundlePadding, STI))
-      report_fatal_error("unable to write NOP sequence of " +
-                         Twine(BundlePadding) + " bytes");
-  }
-}
-
 /// Write the fragment \p F to the output file.
 static void writeFragment(raw_ostream &OS, const MCAssembler &Asm,
                           const MCFragment &F) {
@@ -523,9 +406,6 @@ static void writeFragment(raw_ostream &OS, const MCAssembler &Asm,
 
   llvm::endianness Endian = Asm.getBackend().Endian;
 
-  if (const MCEncodedFragment *EF = dyn_cast<MCEncodedFragment>(&F))
-    Asm.writeFragmentPadding(OS, *EF, FragmentSize);
-
   // This variable (and its dummy usage) is to participate in the assert at
   // the end of the function.
   uint64_t Start = OS.tell();
@@ -1101,17 +981,9 @@ bool MCAssembler::relaxFragment(MCFragment &F) {
 }
 
 void MCAssembler::layoutSection(MCSection &Sec) {
-  MCFragment *Prev = nullptr;
   uint64_t Offset = 0;
   for (MCFragment &F : Sec) {
     F.Offset = Offset;
-    if (LLVM_UNLIKELY(isBundlingEnabled())) {
-      if (F.hasInstructions()) {
-        layoutBundle(Prev, &F);
-        Offset = F.Offset;
-      }
-      Prev = &F;
-    }
     Offset += computeFragmentSize(F);
   }
 }
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp
index 4bc3f4642ea02..3e9c51a6b83d1 100644
--- a/llvm/lib/MC/MCELFStreamer.cpp
+++ b/llvm/lib/MC/MCELFStreamer.cpp
@@ -48,10 +48,6 @@ ELFObjectWriter &MCELFStreamer::getWriter() {
   return static_cast<ELFObjectWriter &>(getAssembler().getWriter());
 }
 
-bool MCELFStreamer::isBundleLocked() const {
-  return getCurrentSectionOnly()->isBundleLocked();
-}
-
 void MCELFStreamer::initSections(bool NoExecStack, const MCSubtargetInfo &STI) {
   MCContext &Ctx = getContext();
   switchSection(Ctx.getObjectFileInfo()->getTextSection());
@@ -83,23 +79,8 @@ void MCELFStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCDataFragment &F,
     Symbol->setType(ELF::STT_TLS);
 }
 
-// If bundle alignment is used and there are any instructions in the section, it
-// needs to be aligned to at least the bundle size.
-static void setSectionAlignmentForBundling(const MCAssembler &Assembler,
-                                           MCSection *Section) {
-  if (Assembler.isBundlingEnabled() && Section->hasInstructions())
-    Section->ensureMinAlignment(Align(Assembler.getBundleAlignSize()));
-}
-
 void MCELFStreamer::changeSection(MCSection *Section, uint32_t Subsection) {
   MCAssembler &Asm = getAssembler();
-  if (auto *F = getCurrentFragment()) {
-    if (isBundleLocked())
-      report_fatal_error("Unterminated .bundle_lock when changing a section");
-
-    // Ensure the previous section gets aligned if necessary.
-    setSectionAlignmentForBundling(Asm, F->getParent());
-  }
   auto *SectionELF = static_cast<const MCSectionELF *>(Section);
   const MCSymbol *Grp = SectionELF->getGroup();
   if (Grp)
@@ -315,16 +296,12 @@ void MCELFStreamer::emitLocalCommonSymbol(MCSymbol *S, uint64_t Size,
 
 void MCELFStreamer::emitValueImpl(const MCExpr *Value, unsigned Size,
                                   SMLoc Loc) {
-  if (isBundleLocked())
-    report_fatal_error("Emitting values inside a locked bundle is forbidden");
   MCObjectStreamer::emitValueImpl(Value, Size, Loc);
 }
 
 void MCELFStreamer::emitValueToAlignment(Align Alignment, int64_t Value,
                                          uint8_t ValueSize,
                                          unsigned MaxBytesToEmit) {
-  if (isBundleLocked())
-    report_fatal_error("Emitting values inside a locked bundle is forbidden");
   MCObjectStreamer::emitValueToAlignment(Alignment, Value, ValueSize,
                                          MaxBytesToEmit);
 }
@@ -391,59 +368,10 @@ void MCELFStreamer::finalizeCGProfile() {
   popSection();
 }
 
-// A fragment can only have one Subtarget, and when bundling is enabled we
-// sometimes need to use the same fragment. We give an error if there
-// are conflicting Subtargets.
-static void CheckBundleSubtargets(const MCSubtargetInfo *OldSTI,
-                                  const MCSubtargetInfo *NewSTI) {
-  if (OldSTI && NewSTI && OldSTI != NewSTI)
-    report_fatal_error("A Bundle can only have one Subtarget.");
-}
-
 void MCELFStreamer::emitInstToData(const MCInst &Inst,
                                    const MCSubtargetInfo &STI) {
   MCAssembler &Assembler = getAssembler();
-
-  // There are several possibilities here:
-  //
-  // If bundling is disabled, append the encoded instruction to the current data
-  // fragment (or create a new such fragment if the current fragment is not a
-  // data fragment, or the Subtarget has changed).
-  //
-  // If bundling is enabled:
-  // - If we're not in a bundle-locked group, emit the instruction into a
-  //   fragment of its own.
-  // - If we're in a bundle-locked group, append the instruction to the current
-  //   data fragment because we want all the instructions in a group to get into
-  //   the same fragment. Be careful not to do that for the first instruction in
-  //   the group, though.
-  MCDataFragment *DF;
-
-  if (Assembler.isBundlingEnabled()) {
-    MCSection &Sec = *getCurrentSectionOnly();
-    if (isBundleLocked() && !Sec.isBundleGroupBeforeFirstInst()) {
-      // If we are bundle-locked, we re-use the current fragment.
-      // The bundle-locking directive ensures this is a new data fragment.
-      DF = cast<MCDataFragment>(getCurrentFragment());
-      CheckBundleSubtargets(DF->getSubtargetInfo(), &STI);
-    } else {
-      DF = getContext().allocFragment<MCDataFragment>();
-      insert(DF);
-    }
-    if (Sec.getBundleLockState() == MCSection::BundleLockedAlignToEnd) {
-      // If this fragment is for a group marked "align_to_end", set a flag
-      // in the fragment. This can happen after the fragment has already been
-      // created if there are nested bundle_align groups and an inner one
-      // is the one marked align_to_end.
-      DF->setAlignToBundleEnd(true);
-    }
-
-    // We're now emitting an instruction in a bundle group, so this flag has
-    // to be turned off.
-    Sec.setBundleGroupBeforeFirstInst(false);
-  } else {
-    DF = getOrCreateDataFragment(&STI);
-  }
+  MCDataFragment *DF = getOrCreateDataFragment(&STI);
 
   // Emit instruction directly into data fragment.
   size_t FixupStartIndex = DF->getFixups().size();
@@ -466,42 +394,6 @@ void MCELFStreamer::emitInstToData(const MCInst &Inst,
   DF->setHasInstructions(STI);
 }
 
-void MCELFStreamer::emitBundleAlignMode(Align Alignment) {
-  assert(Log2(Alignment) <= 30 && "Invalid bundle alignment");
-  MCAssembler &Assembler = getAssembler();
-  if (Alignment > 1 && (Assembler.getBundleAlignSize() == 0 ||
-                        Assembler.getBundleAlignSize() == Alignment.value()))
-    Assembler.setBundleAlignSize(Alignment.value());
-  else
-    report_fatal_error(".bundle_align_mode cannot be changed once set");
-}
-
-void MCELFStreamer::emitBundleLock(bool AlignToEnd) {
-  MCSection &Sec = *getCurrentSectionOnly();
-
-  if (!getAssembler().isBundlingEnabled())
-    report_fatal_error(".bundle_lock forbidden when bundling is disabled");
-
-  if (!isBundleLocked())
-    Sec.setBundleGroupBeforeFirstInst(true);
-
-  Sec.setBundleLockState(AlignToEnd ? MCSection::BundleLockedAlignToEnd
-                                    : MCSection::BundleLocked);
-}
-
-void MCELFStreamer::emitBundleUnlock() {
-  MCSection &Sec = *getCurrentSectionOnly();
-
-  if (!getAssembler().isBundlingEnabled())
-    report_fatal_error(".bundle_unlock forbidden when bundling is disabled");
-  else if (!isBundleLocked())
-    report_fatal_error(".bundle_unlock without matching lock");
-  else if (Sec.isBundleGroupBeforeFirstInst())
-    report_fatal_error("Empty bundle-locked group is forbidden");
-
-  Sec.setBundleLockState(MCSection::NotBundleLocked);
-}
-
 void MCELFStreamer::finishImpl() {
   // Emit the .gnu attributes section if any attributes have been added.
   if (!GNUAttributes.empty()) {
@@ -510,10 +402,6 @@ void MCELFStreamer::finishImpl() {
                             DummyAttributeSection, GNUAttributes);
   }
 
-  // Ensure the last section gets aligned if necessary.
-  if (MCFragment *F = getCurrentFragment())
-    setSectionAlignmentForBundling(getAssembler(), F->getParent());
-
   finalizeCGProfile();
   emitFrames(nullptr);
 
diff --git a/llvm/lib/MC/MCFragment.cpp b/llvm/lib/MC/MCFragment.cpp
index c59fabe5df1b9..c62abac2793e4 100644
--- a/llvm/lib/MC/MCFragment.cpp
+++ b/llvm/lib/MC/MCFragment.cpp
@@ -28,8 +28,8 @@ static_assert(std::is_trivially_destructible_v<MCDataFragment>,
               "fragment classes must be trivially destructible");
 
 MCFragment::MCFragment(FragmentType Kind, bool HasInstructions)
-    : Kind(Kind), HasInstructions(HasInstructions), AlignToBundleEnd(false),
-      LinkerRelaxable(false), AllowAutoPadding(false) {}
+    : Kind(Kind), HasInstructions(HasInstructions), LinkerRelaxable(false),
+      AllowAutoPadding(false) {}
 
 const MCSymbol *MCFragment::getAtom() const {
   return cast<MCSectionMachO>(Parent)->getAtom(LayoutOrder);
@@ -59,10 +59,6 @@ LLVM_DUMP_METHOD void MCFragment::dump() const {
     // clang-format on
   }
 
-  if (const auto *EF = dyn_cast<MCEncodedFragment>(this))
-    if (auto Pad = static_cast<unsigned>(EF->getBundlePadding()))
-      OS << " BundlePadding:" << Pad;
-
   auto printFixups = [&](llvm::ArrayRef<MCFixup> Fixups) {
     if (Fixups.empty())
       return;
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 44a82f75576b6..c30ba9160959e 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -141,10 +141,6 @@ static bool canReuseDataFragment(const MCDataFragment &F,
   // instruction cannot be resolved at assemble-time.
   if (F.isLinkerRelaxable())
     return false;
-  // When bundling is enabled, we don't want to add data to a fragment that
-  // already has instructions (see MCELFStreamer::emitInstToData for details)
-  if (Assembler.isBundlingEnabled())
-    return false;
   // If the subtarget is changed mid fragment we start a new fragment to record
   // the new STI.
   return !STI || F.getSubtargetInfo() == STI;
@@ -359,13 +355,8 @@ void MCObjectStreamer::emitInstructionImpl(const MCInst &Inst,
     return;
   }
 
-  // Otherwise, relax and emit it as data if either:
-  // - The RelaxAll flag was passed
-  // - Bundling is enabled and this instruction is inside a bundle-locked
-  //   group. We want to emit all such instructions into the same data
-  //   fragment.
-  if (Assembler.getRelaxAll() ||
-      (Assembler.isBundlingEnabled() && Sec->isBundleLocked())) {
+  // Otherwise, relax and emit it as data if RelaxAll is specified.
+  if (Assembler.getRelaxAll()) {
     MCInst Relaxed = Inst;
     while (Backend.mayNeedRelaxation(Relaxed.getOpcode(), Relaxed.getOperands(),
                                      STI))
@@ -410,23 +401,6 @@ void MCObjectStreamer::emitInstToFragment(const MCInst &Inst,
   IF->appendFixups(Fixups);
 }
 
-#ifndef NDEBUG
-static const char *const BundlingNotImplementedMsg =
-  "Aligned bundling is not implemented for this object format";
-#endif
-
-void MCObjectStreamer::emitBundleAlignMode(Align Alignment) {
-  llvm_unreachable(BundlingNotImplementedMsg);
-}
-
-void MCObjectStreamer::emitBundleLock(bool AlignToEnd) {
-  llvm_unreachable(BundlingNotImplementedMsg);
-}
-
-void MCObjectStreamer::emitBundleUnlock() {
-  llvm_unreachable(BundlingNotImplementedMsg);
-}
-
 void MCObjectStreamer::emitDwarfLocDirective(unsigned FileNo, unsigned Line,
                                              unsigned Column, unsigned Flags,
                                              unsigned Isa,
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 9fd6c05a846db..a36b2dea70ccf 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -421,9 +421,6 @@ class AsmParser : public MCAsmParser {
     DK_ORG,
     DK_FILL,
     DK_ENDR,
-    DK_BUNDLE_ALIGN_MODE,
-    DK_BUNDLE_LOCK,
-    DK_BUNDLE_UNLOCK,
     DK_ZERO,
     DK_EXTERN,
     DK_GLOBL,
@@ -624,12 +621,6 @@ class AsmParser : public MCAsmParser {
   bool parseDirectiveMacrosOnOff(StringRef Directive);
   // alternate macro mode directives
   bool parseDirectiveAltmacro(StringRef Directive);
-  // ".bundle_align_mode"
-  bool parseDirectiveBundleAlignMode();
-  // ".bundle_lock"
-  bool parseDirectiveBundleLock();
-  // ".bundle_unlock"
-  bool parseDirectiveBundleUnlock();
 
   // ".space", ".skip"
   bool parseDirectiveSpace(StringRef IDVal);
@@ -2062,12 +2053,6 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
       return parseDirectiveIrpc(IDLoc);
     case DK_ENDR:
       return parseDirectiveEndr(IDLoc);
-    case DK_BUNDLE_ALIGN_MODE:
-      return parseDirectiveBundleAlignMode();
-    case DK_BUNDLE_LOCK:
-      return parseDirectiveBundleLock();
-    case DK_BUNDLE_UNLOCK:
-      return parseDirectiveBundleUnlock();
     case DK_SLEB128:
       return parseDirectiveLEB128(true);
     case DK_ULEB128:
@@ -4779,56 +4764,6 @@ bool AsmParser::parseDirectivePurgeMacro(SMLoc DirectiveLoc) {
   return false;
 }
 
-/// parseDirectiveBundleAlignMode
-/// ::= {.bundle_align_mode} expression
-bool AsmParser::parseDirectiveBundleAlignMode() {
-  // Expect a single argument: an expression that evaluates to a constant
-  // in the inclusive range 0-30.
-  SMLoc ExprLoc = getLexer().getLoc();
-  int64_t AlignSizePow2;
-  if (checkForValidSection() || parseAbsoluteExpression(AlignSizePow2) ||
-      parseEOL() ||
-      check(AlignSizePow2 < 0 || AlignSizePow2 > 30, ExprLoc,
-            "invalid bundle alignment size (expected between 0 and 30)"))
-    return true;
-
-  getStreamer().emitBundleAlignMode(Align(1ULL << AlignSizePow2));
-  return false;
-}
-
-/// parseDirectiveBundleLock
-/// ::= {.bundle_lock} [align_to_end]
-bool AsmParser::parseDirectiveBundleLock() {
-  if (checkForValidSection())
-    return true;
-  bool AlignToEnd = false;
-
-  StringRef Option;
-  SMLoc Loc = getTok().getLoc();
-  const char *kInvalidOptionError =
-      "invalid option for '.bundle_lock' directive";
-
-  if (!parseOptionalToken(AsmToken::EndOfStatement)) {
-    if (check(parseIdentifier(Option), Loc, kInvalidOptionError) ||
-        check(Option != "align_to_end", Loc, kInvalidOptionError) || parseEOL())
-      return true;
-    AlignToEnd = true;
-  }
-
-  getStreamer().emitBundleLock(AlignToEnd);
-  return false;
-}
-
-/// parseDirectiveBundleLock
-/// ::= {.bundle_lock}
-bool AsmParser::parseDirectiveBundleUnlock() {
-  if (checkForValidSection() || parseEOL())
-    return true;
-
-  getStreamer().emitBundleUnlock();
-  return false;
-}
-
 /// parseDirectiveSpace
 /// ::= (.skip | .space) expression [ , expression ]
 bool AsmParser::parseDirectiveSpace(StringRef IDVal) {
@@ -5477,9 +5412,6 @@ void AsmParser::initializeDirectiveKindMap() {
   DirectiveKindMap[".irp"] = DK_IRP;
   DirectiveKindMap[".irpc"] = DK_IRPC;
   DirectiveKindMap[".endr"] = DK_ENDR;
-  DirectiveKindMap[".bundle_align_mode"] = DK_BUNDLE_ALIGN_MODE;
-  DirectiveKindMap[".bundle_lock"] = DK_BUNDLE_LOCK;
-  DirectiveKindMap[".bundle_unlock"] = DK_BUNDLE_UNLOCK;
   DirectiveKindMap[".if"] = DK_IF;
   DirectiveKindMap[".ifeq"] = DK_IFEQ;
   DirectiveKindMap[".ifge"] = DK_IFGE;
diff --git a/llvm/lib/MC/MCSection.cpp b/llvm/lib/MC/MCSection.cpp
index beb472b7c7deb..f1c81e90a0fe5 100644
--- a/llvm/lib/MC/MCSection.cpp
+++ b/llvm/lib/MC/MCSection.cpp
@@ -20,9 +20,8 @@ using namespace llvm;
 
 MCSection::MCSection(SectionVariant V, StringRef Name, bool IsText,
                      bool IsVirtual, MCSymbol *Begin)
-    : Begin(Begin), BundleGroupBeforeFirstInst(false), HasInstructions(false),
-      IsRegistered(false), IsText(IsText), IsVirtual(IsVirtual),
-      LinkerRelaxable(false), Name(Name), Variant(V) {
+    : Begin(Begin), HasInstructions(false), IsRegistered(false), IsText(IsText),
+      IsVirtual(IsVirtual), LinkerRelaxable(false), Name(Name), Variant(V) {
   // The initial subsection number is 0. Create a fragment list.
   CurFragList = &Subsections.emplace_back(0u, FragList{}).second;
 }
@@ -35,25 +34,6 @@ MCSymbol *MCSection::getEndSymbol(MCContext &Ctx) {
 
 bool MCSection::hasEnded() const { return End && End->isInSection(); }
 
-void MCSection::setBundleLockState(BundleLockStateType NewState) {
-  if (NewState == NotBundleLocked) {
-    if (BundleLockNestingDepth == 0) {
-      report_fatal_error("Mismatched bundle_lock/unlock directives");
-    }
-    if (--BundleLockNestingDepth == 0) {
-      BundleLockState = NotBundleLocked;
-    }
-    return;
-  }
-
-  // If any of the directives is an align_to_end directive, the whole nested
-  // group is align_to_end. So don't downgrade from align_to_end to just locked.
-  if (BundleLockState != BundleLockedAlignToEnd) {
-    BundleLockState = NewState;
-  }
-  ++BundleLockNestingDepth;
-}
-
 StringRef MCSection::getVirtualSectionKind() const { return "virtual"; }
 
 #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 6d2fb41760044..d814ab8880500 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -1333,10 +1333,7 @@ void MCStreamer::emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
                                    unsigned MaxBytesToEmit) {}
 void MCStreamer::emitValueToOffset(const MCExpr *Offset, unsigned char Value,
                                    SMLoc Loc) {}
-void MCStreamer::emitBundleAlignMode(Align Alignment) {}
-void MCStreamer::emitBundleLock(bool AlignToEnd) {}
 void MCStreamer::finishImpl() {}
-void MCStreamer::emitBundleUnlock() {}
 
 bool MCStreamer::popSection() {
   if (SectionStack.size() <= 1)
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
index 3410726c8e553..1c2296c0d5141 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
@@ -112,10 +112,8 @@ class MipsNaClELFStreamer : public MipsELFStreamer {
   void sandboxIndirectJump(const MCInst &MI, const MCSubtargetInfo &STI) {
     MCRegister AddrReg = MI.getOperand(0).getReg();
 
-    emitBundleLock(false);
     emitMask(AddrReg, IndirectBranchMaskReg, STI);
     MipsELFStreamer::emitInstruction(MI, STI);
-    emitBundleUnlock();
   }
 
   // Sandbox memory access or SP change.  Insert mask operation before and/or
@@ -123,7 +121,6 @@ class MipsNaClELFStreamer : public MipsELFStreamer {
   void sandboxLoadStoreStackChange(const MCInst &MI, unsigned AddrIdx,
                                    const MCSubtargetInfo &STI, bool MaskBefore,
                                    bool MaskAfter) {
-    emitBundleLock(false);
     if (MaskBefore) {
       // Sandbox memory access.
       MCRegister BaseReg = MI.getOperand(AddrIdx).getReg();
@@ -136,7 +133,6 @@ class MipsNaClELFStreamer : public MipsELFStreamer {
       assert((Mips::SP == SPReg) && "Unexpected stack-pointer register.");
       emitMask(SPReg, LoadStoreStackMaskReg, STI);
     }
-    emitBundleUnlock();
   }
 
 public:
@@ -180,7 +176,6 @@ class MipsNaClELFStreamer : public MipsELFStreamer {
         report_fatal_error("Dangerous instruction in branch delay slot!");
 
       // Start the sandboxing sequence by emitting call.
-      emitBundleLock(true);
       if (IsIndirectCall) {
         MCRegister TargetReg = Inst.getOperand(1).getReg();
         emitMask(TargetReg, IndirectBranchMaskReg, STI);
@@ -192,7 +187,6 @@ class MipsNaClELFStreamer : public MipsELFStreamer {
     if (PendingCall) {
       // Finish the sandboxing sequence by emitting branch delay.
       MipsELFStreamer::emitInstruction(Inst, STI);
-      emitBundleUnlock();
       PendingCall = false;
       return;
     }
@@ -265,9 +259,6 @@ createMipsNaClELFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> TAB,
   MipsNaClELFStreamer *S = new MipsNaClELFStreamer(
       Context, std::move(TAB), std::move(OW), std::move(Emitter));
 
-  // Set bundle-alignment as required by the NaCl ABI for the target.
-  S->emitBundleAlignMode(MIPS_NACL_BUNDLE_ALIGN);
-
   return S;
 }
 
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
index ff2df3d5b192a..30d1b96455b1a 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
@@ -468,10 +468,6 @@ bool X86AsmBackend::canPadBranches(MCObjectStreamer &OS) const {
   if (!OS.getCurrentSectionOnly()->isText())
     return false;
 
-  // To be Done: Currently don't deal with Bundle cases.
-  if (OS.getAssembler().isBundlingEnabled())
-    return false;
-
   // Branches only need to be aligned in 32-bit or 64-bit mode.
   if (!(STI.hasFeature(X86::Is64Bit) || STI.hasFeature(X86::Is32Bit)))
     return false;
diff --git a/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s b/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s
deleted file mode 100644
index ca78f2acc2894..0000000000000
--- a/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s
+++ /dev/null
@@ -1,48 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - \
-# RUN:   | llvm-objdump --no-show-raw-insn --triple=armv7 -d - | FileCheck %s
-
-# On ARM each instruction is 4 bytes long so padding for individual
-# instructions should not be inserted. However, for bundle-locked groups
-# it can be.
-
-  .syntax unified
-  .text
-  .bundle_align_mode 4
-
-  bx lr
-  and r1, r1, r2
-  and r1, r1, r2
-  .bundle_lock
-  bx r9
-  bx r8
-  .bundle_unlock
-# CHECK:      c:  nop
-# CHECK-NEXT: 10: bx
-# CHECK-NEXT: 14: bx
-
-  # pow2 here
-  .align 4 
-  bx lr
-  .bundle_lock
-  bx r9
-  bx r9
-  bx r9
-  bx r8
-  .bundle_unlock
-# CHECK:      20: bx
-# CHECK-NEXT: 24: nop
-# CHECK-NEXT: 28: nop
-# CHECK-NEXT: 2c: nop
-# CHECK-NEXT: 30: bx
-
-  .align 4
-foo:
-  b foo
-  .long 3892240112
-  .long 3892240112
-  .long 3892240112
-  .long 3892240112
-  .long 3892240112
-  .long 3892240112
-# CHECK:  40: b
-
diff --git a/llvm/test/MC/ARM/AlignedBundling/illegal-subtarget-change.s b/llvm/test/MC/ARM/AlignedBundling/illegal-subtarget-change.s
deleted file mode 100644
index e831ac5c2af06..0000000000000
--- a/llvm/test/MC/ARM/AlignedBundling/illegal-subtarget-change.s
+++ /dev/null
@@ -1,16 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - 2>&1 | FileCheck %s
-
-        # We cannot switch subtargets mid-bundle
-        .syntax unified
-        .text
-        .bundle_align_mode 4
-        .arch armv4t
-        bx lr
-        .bundle_lock
-        bx lr
-        .arch armv7a
-        movt r0, #0xffff
-        movw r0, #0xffff
-        .bundle_unlock
-        bx lr
-# CHECK: LLVM ERROR: A Bundle can only have one Subtarget.
diff --git a/llvm/test/MC/ARM/AlignedBundling/lit.local.cfg b/llvm/test/MC/ARM/AlignedBundling/lit.local.cfg
deleted file mode 100644
index 42bf50dcc13c3..0000000000000
--- a/llvm/test/MC/ARM/AlignedBundling/lit.local.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-if not "X86" in config.root.targets:
-    config.unsupported = True
diff --git a/llvm/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s b/llvm/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s
deleted file mode 100644
index c01c8c178afeb..0000000000000
--- a/llvm/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s
+++ /dev/null
@@ -1,41 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - \
-# RUN:   | llvm-objdump --no-show-raw-insn --triple=armv7 -d - | FileCheck %s
-
-	.syntax unified
-	.text
-  .bundle_align_mode 4
-
-  bx lr
-  and r1, r1, r2
-  and r1, r1, r2
-  .bundle_lock align_to_end
-  bx r9
-  .bundle_unlock
-# No padding required here because bx just happens to be in the
-# right offset.
-# CHECK:      8:  and
-# CHECK-NEXT: c:  bx
-
-  bx lr
-  and r1, r1, r2
-  .bundle_lock align_to_end
-  bx r9
-  .bundle_unlock
-# A 4-byte padding is needed here
-# CHECK:      18: nop
-# CHECK-NEXT: 1c: bx
-
-  bx lr
-  and r1, r1, r2
-  .bundle_lock align_to_end
-  bx r9
-  bx r9
-  bx r9
-  .bundle_unlock
-# A 12-byte padding is needed here to push the group to the end of the next
-# bundle
-# CHECK:      28: nop
-# CHECK-NEXT: 2c: nop
-# CHECK-NEXT: 30: nop
-# CHECK-NEXT: 34: bx
-
diff --git a/llvm/test/MC/ARM/AlignedBundling/subtarget-change.s b/llvm/test/MC/ARM/AlignedBundling/subtarget-change.s
deleted file mode 100644
index 5672560376d46..0000000000000
--- a/llvm/test/MC/ARM/AlignedBundling/subtarget-change.s
+++ /dev/null
@@ -1,33 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple armv7-linux-gnueabi %s -o - \
-# RUN:   | llvm-objdump --no-print-imm-hex --no-show-raw-insn --triple=armv7 -d - | FileCheck %s
-
-        # We can switch subtargets with .arch outside of a bundle
-        .syntax unified
-        .text
-        .bundle_align_mode 4
-        .arch armv4t
-        bx lr
-        .bundle_lock
-        and r1, r1, r1
-        and r1, r1, r1
-        .bundle_unlock
-        bx lr
-
-        # We can switch subtargets at the start of a bundle
-        bx lr
-        .bundle_lock align_to_end
-        .arch armv7a
-        movt r0, #0xffff
-        movw r0, #0xffff
-        .bundle_unlock
-        bx lr
-
-# CHECK:      0: bx    lr
-# CHECK-NEXT: 4: and   r1, r1, r1
-# CHECK-NEXT: 8: and   r1, r1, r1
-# CHECK-NEXT: c: bx    lr
-# CHECK-NEXT: 10: bx    lr
-# CHECK-NEXT: 14: nop
-# CHECK-NEXT: 18: movt  r0, #65535
-# CHECK-NEXT: 1c: movw  r0, #65535
-# CHECK-NEXT: 20: bx    lr
diff --git a/llvm/test/MC/X86/AlignedBundling/align-mode-argument-error.s b/llvm/test/MC/X86/AlignedBundling/align-mode-argument-error.s
deleted file mode 100644
index 37c74c86f754e..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/align-mode-argument-error.s
+++ /dev/null
@@ -1,8 +0,0 @@
-# RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-
-# Missing .bundle_align_mode argument
-# CHECK: error: unknown token
-
-  .bundle_align_mode
-  imull $17, %ebx, %ebp
-
diff --git a/llvm/test/MC/X86/AlignedBundling/asm-printing-bundle-directives.s b/llvm/test/MC/X86/AlignedBundling/asm-printing-bundle-directives.s
deleted file mode 100644
index 387e0fe59bf29..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/asm-printing-bundle-directives.s
+++ /dev/null
@@ -1,22 +0,0 @@
-# RUN: llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-
-# Just a simple test for the assembly emitter - making sure it emits back the
-# bundling directives.
-
-  .text
-foo:
-  .bundle_align_mode 4
-# CHECK:      .bundle_align_mode 4
-  pushq   %rbp
-  .bundle_lock
-# CHECK: .bundle_lock
-  cmpl    %r14d, %ebp
-  jle     .L_ELSE
-  .bundle_unlock
-# CHECK: .bundle_unlock
-  .bundle_lock align_to_end
-# CHECK: .bundle_lock align_to_end
-  add     %rbx, %rdx
-  .bundle_unlock
-
-
diff --git a/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-align-to-end.s b/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-align-to-end.s
deleted file mode 100644
index 6dabafc394e99..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-align-to-end.s
+++ /dev/null
@@ -1,2899 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - \
-# RUN:   | llvm-objdump --triple=i386 -d --no-show-raw-insn - | FileCheck %s
-
-# !!! This test is auto-generated from utils/testgen/mc-bundling-x86-gen.py !!!
-#     It tests that bundle-aligned grouping works correctly in MC. Read the
-#     source of the script for more details.
-
-  .text
-  .bundle_align_mode 4
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 0: nop
-# CHECK: f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 21: nop
-# CHECK: 2f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 42: nop
-# CHECK: 4f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 63: nop
-# CHECK: 6f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 84: nop
-# CHECK: 8f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a5: nop
-# CHECK: af: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c6: nop
-# CHECK: cf: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e7: nop
-# CHECK: ef: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 108: nop
-# CHECK: 10f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 129: nop
-# CHECK: 12f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14a: nop
-# CHECK: 14f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16b: nop
-# CHECK: 16f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18c: nop
-# CHECK: 18f: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ad: nop
-# CHECK: 1af: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ce: nop
-# CHECK: 1cf: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ef: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 200: nop
-# CHECK: 20e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 221: nop
-# CHECK: 22e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 242: nop
-# CHECK: 24e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 263: nop
-# CHECK: 26e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 284: nop
-# CHECK: 28e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 2a5: nop
-# CHECK: 2ae: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 2c6: nop
-# CHECK: 2ce: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 2e7: nop
-# CHECK: 2ee: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 308: nop
-# CHECK: 30e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 329: nop
-# CHECK: 32e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 34a: nop
-# CHECK: 34e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 36b: nop
-# CHECK: 36e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 38c: nop
-# CHECK: 38e: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 3ad: nop
-# CHECK: 3ae: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 3ce: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 3ef: nop
-# CHECK: 3f0: nop
-# CHECK: 3fe: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 400: nop
-# CHECK: 40d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 421: nop
-# CHECK: 42d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 442: nop
-# CHECK: 44d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 463: nop
-# CHECK: 46d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 484: nop
-# CHECK: 48d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 4a5: nop
-# CHECK: 4ad: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 4c6: nop
-# CHECK: 4cd: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 4e7: nop
-# CHECK: 4ed: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 508: nop
-# CHECK: 50d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 529: nop
-# CHECK: 52d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 54a: nop
-# CHECK: 54d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 56b: nop
-# CHECK: 56d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 58c: nop
-# CHECK: 58d: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 5ad: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 5ce: nop
-# CHECK: 5d0: nop
-# CHECK: 5dd: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 5ef: nop
-# CHECK: 5f0: nop
-# CHECK: 5fd: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 600: nop
-# CHECK: 60c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 621: nop
-# CHECK: 62c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 642: nop
-# CHECK: 64c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 663: nop
-# CHECK: 66c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 684: nop
-# CHECK: 68c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 6a5: nop
-# CHECK: 6ac: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 6c6: nop
-# CHECK: 6cc: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 6e7: nop
-# CHECK: 6ec: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 708: nop
-# CHECK: 70c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 729: nop
-# CHECK: 72c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 74a: nop
-# CHECK: 74c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 76b: nop
-# CHECK: 76c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 78c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 7ad: nop
-# CHECK: 7b0: nop
-# CHECK: 7bc: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 7ce: nop
-# CHECK: 7d0: nop
-# CHECK: 7dc: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 7ef: nop
-# CHECK: 7f0: nop
-# CHECK: 7fc: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 800: nop
-# CHECK: 80b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 821: nop
-# CHECK: 82b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 842: nop
-# CHECK: 84b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 863: nop
-# CHECK: 86b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 884: nop
-# CHECK: 88b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 8a5: nop
-# CHECK: 8ab: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 8c6: nop
-# CHECK: 8cb: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 8e7: nop
-# CHECK: 8eb: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 908: nop
-# CHECK: 90b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 929: nop
-# CHECK: 92b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 94a: nop
-# CHECK: 94b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 96b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 98c: nop
-# CHECK: 990: nop
-# CHECK: 99b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 9ad: nop
-# CHECK: 9b0: nop
-# CHECK: 9bb: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 9ce: nop
-# CHECK: 9d0: nop
-# CHECK: 9db: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 9ef: nop
-# CHECK: 9f0: nop
-# CHECK: 9fb: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a00: nop
-# CHECK: a0a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a21: nop
-# CHECK: a2a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a42: nop
-# CHECK: a4a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a63: nop
-# CHECK: a6a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a84: nop
-# CHECK: a8a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: aa5: nop
-# CHECK: aaa: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ac6: nop
-# CHECK: aca: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ae7: nop
-# CHECK: aea: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b08: nop
-# CHECK: b0a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b29: nop
-# CHECK: b2a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b4a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b6b: nop
-# CHECK: b70: nop
-# CHECK: b7a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b8c: nop
-# CHECK: b90: nop
-# CHECK: b9a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: bad: nop
-# CHECK: bb0: nop
-# CHECK: bba: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: bce: nop
-# CHECK: bd0: nop
-# CHECK: bda: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: bef: nop
-# CHECK: bf0: nop
-# CHECK: bfa: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c00: nop
-# CHECK: c09: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c21: nop
-# CHECK: c29: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c42: nop
-# CHECK: c49: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c63: nop
-# CHECK: c69: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c84: nop
-# CHECK: c89: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ca5: nop
-# CHECK: ca9: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: cc6: nop
-# CHECK: cc9: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ce7: nop
-# CHECK: ce9: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d08: nop
-# CHECK: d09: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d29: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d4a: nop
-# CHECK: d50: nop
-# CHECK: d59: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d6b: nop
-# CHECK: d70: nop
-# CHECK: d79: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d8c: nop
-# CHECK: d90: nop
-# CHECK: d99: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: dad: nop
-# CHECK: db0: nop
-# CHECK: db9: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: dce: nop
-# CHECK: dd0: nop
-# CHECK: dd9: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: def: nop
-# CHECK: df0: nop
-# CHECK: df9: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e00: nop
-# CHECK: e08: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e21: nop
-# CHECK: e28: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e42: nop
-# CHECK: e48: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e63: nop
-# CHECK: e68: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e84: nop
-# CHECK: e88: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ea5: nop
-# CHECK: ea8: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ec6: nop
-# CHECK: ec8: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ee7: nop
-# CHECK: ee8: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f08: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f29: nop
-# CHECK: f30: nop
-# CHECK: f38: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f4a: nop
-# CHECK: f50: nop
-# CHECK: f58: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f6b: nop
-# CHECK: f70: nop
-# CHECK: f78: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f8c: nop
-# CHECK: f90: nop
-# CHECK: f98: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: fad: nop
-# CHECK: fb0: nop
-# CHECK: fb8: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: fce: nop
-# CHECK: fd0: nop
-# CHECK: fd8: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: fef: nop
-# CHECK: ff0: nop
-# CHECK: ff8: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1000: nop
-# CHECK: 1007: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1021: nop
-# CHECK: 1027: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1042: nop
-# CHECK: 1047: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1063: nop
-# CHECK: 1067: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1084: nop
-# CHECK: 1087: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 10a5: nop
-# CHECK: 10a7: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 10c6: nop
-# CHECK: 10c7: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 10e7: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1108: nop
-# CHECK: 1110: nop
-# CHECK: 1117: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1129: nop
-# CHECK: 1130: nop
-# CHECK: 1137: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 114a: nop
-# CHECK: 1150: nop
-# CHECK: 1157: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 116b: nop
-# CHECK: 1170: nop
-# CHECK: 1177: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 118c: nop
-# CHECK: 1190: nop
-# CHECK: 1197: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 11ad: nop
-# CHECK: 11b0: nop
-# CHECK: 11b7: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 11ce: nop
-# CHECK: 11d0: nop
-# CHECK: 11d7: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 11ef: nop
-# CHECK: 11f0: nop
-# CHECK: 11f7: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1200: nop
-# CHECK: 1206: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1221: nop
-# CHECK: 1226: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1242: nop
-# CHECK: 1246: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1263: nop
-# CHECK: 1266: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1284: nop
-# CHECK: 1286: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 12a5: nop
-# CHECK: 12a6: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 12c6: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 12e7: nop
-# CHECK: 12f0: nop
-# CHECK: 12f6: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1308: nop
-# CHECK: 1310: nop
-# CHECK: 1316: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1329: nop
-# CHECK: 1330: nop
-# CHECK: 1336: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 134a: nop
-# CHECK: 1350: nop
-# CHECK: 1356: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 136b: nop
-# CHECK: 1370: nop
-# CHECK: 1376: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 138c: nop
-# CHECK: 1390: nop
-# CHECK: 1396: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 13ad: nop
-# CHECK: 13b0: nop
-# CHECK: 13b6: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 13ce: nop
-# CHECK: 13d0: nop
-# CHECK: 13d6: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 13ef: nop
-# CHECK: 13f0: nop
-# CHECK: 13f6: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1400: nop
-# CHECK: 1405: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1421: nop
-# CHECK: 1425: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1442: nop
-# CHECK: 1445: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1463: nop
-# CHECK: 1465: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1484: nop
-# CHECK: 1485: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14a5: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14c6: nop
-# CHECK: 14d0: nop
-# CHECK: 14d5: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14e7: nop
-# CHECK: 14f0: nop
-# CHECK: 14f5: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1508: nop
-# CHECK: 1510: nop
-# CHECK: 1515: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1529: nop
-# CHECK: 1530: nop
-# CHECK: 1535: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 154a: nop
-# CHECK: 1550: nop
-# CHECK: 1555: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 156b: nop
-# CHECK: 1570: nop
-# CHECK: 1575: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 158c: nop
-# CHECK: 1590: nop
-# CHECK: 1595: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 15ad: nop
-# CHECK: 15b0: nop
-# CHECK: 15b5: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 15ce: nop
-# CHECK: 15d0: nop
-# CHECK: 15d5: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 15ef: nop
-# CHECK: 15f0: nop
-# CHECK: 15f5: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1600: nop
-# CHECK: 1604: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1621: nop
-# CHECK: 1624: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1642: nop
-# CHECK: 1644: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1663: nop
-# CHECK: 1664: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1684: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16a5: nop
-# CHECK: 16b0: nop
-# CHECK: 16b4: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16c6: nop
-# CHECK: 16d0: nop
-# CHECK: 16d4: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16e7: nop
-# CHECK: 16f0: nop
-# CHECK: 16f4: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1708: nop
-# CHECK: 1710: nop
-# CHECK: 1714: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1729: nop
-# CHECK: 1730: nop
-# CHECK: 1734: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 174a: nop
-# CHECK: 1750: nop
-# CHECK: 1754: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 176b: nop
-# CHECK: 1770: nop
-# CHECK: 1774: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 178c: nop
-# CHECK: 1790: nop
-# CHECK: 1794: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 17ad: nop
-# CHECK: 17b0: nop
-# CHECK: 17b4: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 17ce: nop
-# CHECK: 17d0: nop
-# CHECK: 17d4: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 17ef: nop
-# CHECK: 17f0: nop
-# CHECK: 17f4: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1800: nop
-# CHECK: 1803: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1821: nop
-# CHECK: 1823: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1842: nop
-# CHECK: 1843: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1863: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1884: nop
-# CHECK: 1890: nop
-# CHECK: 1893: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18a5: nop
-# CHECK: 18b0: nop
-# CHECK: 18b3: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18c6: nop
-# CHECK: 18d0: nop
-# CHECK: 18d3: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18e7: nop
-# CHECK: 18f0: nop
-# CHECK: 18f3: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1908: nop
-# CHECK: 1910: nop
-# CHECK: 1913: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1929: nop
-# CHECK: 1930: nop
-# CHECK: 1933: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 194a: nop
-# CHECK: 1950: nop
-# CHECK: 1953: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 196b: nop
-# CHECK: 1970: nop
-# CHECK: 1973: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 198c: nop
-# CHECK: 1990: nop
-# CHECK: 1993: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 19ad: nop
-# CHECK: 19b0: nop
-# CHECK: 19b3: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 19ce: nop
-# CHECK: 19d0: nop
-# CHECK: 19d3: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 19ef: nop
-# CHECK: 19f0: nop
-# CHECK: 19f3: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a00: nop
-# CHECK: 1a02: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a21: nop
-# CHECK: 1a22: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a42: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a63: nop
-# CHECK: 1a70: nop
-# CHECK: 1a72: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a84: nop
-# CHECK: 1a90: nop
-# CHECK: 1a92: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1aa5: nop
-# CHECK: 1ab0: nop
-# CHECK: 1ab2: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ac6: nop
-# CHECK: 1ad0: nop
-# CHECK: 1ad2: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ae7: nop
-# CHECK: 1af0: nop
-# CHECK: 1af2: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b08: nop
-# CHECK: 1b10: nop
-# CHECK: 1b12: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b29: nop
-# CHECK: 1b30: nop
-# CHECK: 1b32: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b4a: nop
-# CHECK: 1b50: nop
-# CHECK: 1b52: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b6b: nop
-# CHECK: 1b70: nop
-# CHECK: 1b72: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b8c: nop
-# CHECK: 1b90: nop
-# CHECK: 1b92: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1bad: nop
-# CHECK: 1bb0: nop
-# CHECK: 1bb2: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1bce: nop
-# CHECK: 1bd0: nop
-# CHECK: 1bd2: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1bef: nop
-# CHECK: 1bf0: nop
-# CHECK: 1bf2: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c00: nop
-# CHECK: 1c01: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c21: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c42: nop
-# CHECK: 1c50: nop
-# CHECK: 1c51: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c63: nop
-# CHECK: 1c70: nop
-# CHECK: 1c71: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c84: nop
-# CHECK: 1c90: nop
-# CHECK: 1c91: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ca5: nop
-# CHECK: 1cb0: nop
-# CHECK: 1cb1: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1cc6: nop
-# CHECK: 1cd0: nop
-# CHECK: 1cd1: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ce7: nop
-# CHECK: 1cf0: nop
-# CHECK: 1cf1: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d08: nop
-# CHECK: 1d10: nop
-# CHECK: 1d11: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d29: nop
-# CHECK: 1d30: nop
-# CHECK: 1d31: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d4a: nop
-# CHECK: 1d50: nop
-# CHECK: 1d51: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d6b: nop
-# CHECK: 1d70: nop
-# CHECK: 1d71: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d8c: nop
-# CHECK: 1d90: nop
-# CHECK: 1d91: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1dad: nop
-# CHECK: 1db0: nop
-# CHECK: 1db1: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1dce: nop
-# CHECK: 1dd0: nop
-# CHECK: 1dd1: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1def: nop
-# CHECK: 1df0: nop
-# CHECK: 1df1: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_0:
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e00: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e21: nop
-# CHECK: 1e30: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e42: nop
-# CHECK: 1e50: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e63: nop
-# CHECK: 1e70: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e84: nop
-# CHECK: 1e90: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ea5: nop
-# CHECK: 1eb0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ec6: nop
-# CHECK: 1ed0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ee7: nop
-# CHECK: 1ef0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f08: nop
-# CHECK: 1f10: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f29: nop
-# CHECK: 1f30: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f4a: nop
-# CHECK: 1f50: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f6b: nop
-# CHECK: 1f70: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f8c: nop
-# CHECK: 1f90: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1fad: nop
-# CHECK: 1fb0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1fce: nop
-# CHECK: 1fd0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock align_to_end
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1fef: nop
-# CHECK: 1ff0: incl
-
diff --git a/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-padding.s b/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-padding.s
deleted file mode 100644
index d486ec5fca00e..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-padding.s
+++ /dev/null
@@ -1,2674 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - \
-# RUN:   | llvm-objdump --triple=i386 -d --no-show-raw-insn - | FileCheck %s
-
-# !!! This test is auto-generated from utils/testgen/mc-bundling-x86-gen.py !!!
-#     It tests that bundle-aligned grouping works correctly in MC. Read the
-#     source of the script for more details.
-
-  .text
-  .bundle_align_mode 4
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_0:
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 0: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 21: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 42: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 63: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 84: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a5: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c6: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e7: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 108: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 129: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14a: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16b: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18c: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ad: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ce: incl
-
-  .align 32, 0x90
-INSTRLEN_1_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 1
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ef: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_0:
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 200: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 221: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 242: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 263: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 284: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 2a5: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 2c6: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 2e7: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 308: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 329: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 34a: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 36b: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 38c: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 3ad: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 3ce: incl
-
-  .align 32, 0x90
-INSTRLEN_2_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 2
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 3ef: nop
-# CHECK: 3f0: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_0:
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 400: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 421: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 442: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 463: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 484: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 4a5: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 4c6: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 4e7: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 508: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 529: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 54a: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 56b: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 58c: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 5ad: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 5ce: nop
-# CHECK: 5d0: incl
-
-  .align 32, 0x90
-INSTRLEN_3_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 3
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 5ef: nop
-# CHECK: 5f0: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_0:
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 600: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 621: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 642: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 663: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 684: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 6a5: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 6c6: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 6e7: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 708: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 729: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 74a: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 76b: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 78c: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 7ad: nop
-# CHECK: 7b0: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 7ce: nop
-# CHECK: 7d0: incl
-
-  .align 32, 0x90
-INSTRLEN_4_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 4
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 7ef: nop
-# CHECK: 7f0: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_0:
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 800: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 821: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 842: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 863: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 884: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 8a5: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 8c6: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 8e7: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 908: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 929: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 94a: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 96b: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 98c: nop
-# CHECK: 990: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 9ad: nop
-# CHECK: 9b0: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 9ce: nop
-# CHECK: 9d0: incl
-
-  .align 32, 0x90
-INSTRLEN_5_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 5
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 9ef: nop
-# CHECK: 9f0: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_0:
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a00: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a21: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a42: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a63: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: a84: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: aa5: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ac6: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ae7: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b08: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b29: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b4a: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b6b: nop
-# CHECK: b70: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: b8c: nop
-# CHECK: b90: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: bad: nop
-# CHECK: bb0: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: bce: nop
-# CHECK: bd0: incl
-
-  .align 32, 0x90
-INSTRLEN_6_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 6
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: bef: nop
-# CHECK: bf0: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_0:
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c00: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c21: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c42: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c63: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: c84: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ca5: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: cc6: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ce7: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d08: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d29: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d4a: nop
-# CHECK: d50: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d6b: nop
-# CHECK: d70: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: d8c: nop
-# CHECK: d90: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: dad: nop
-# CHECK: db0: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: dce: nop
-# CHECK: dd0: incl
-
-  .align 32, 0x90
-INSTRLEN_7_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 7
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: def: nop
-# CHECK: df0: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_0:
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e00: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e21: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e42: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e63: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: e84: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ea5: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ec6: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: ee7: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f08: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f29: nop
-# CHECK: f30: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f4a: nop
-# CHECK: f50: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f6b: nop
-# CHECK: f70: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: f8c: nop
-# CHECK: f90: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: fad: nop
-# CHECK: fb0: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: fce: nop
-# CHECK: fd0: incl
-
-  .align 32, 0x90
-INSTRLEN_8_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 8
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: fef: nop
-# CHECK: ff0: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_0:
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1000: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1021: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1042: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1063: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1084: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 10a5: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 10c6: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 10e7: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1108: nop
-# CHECK: 1110: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1129: nop
-# CHECK: 1130: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 114a: nop
-# CHECK: 1150: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 116b: nop
-# CHECK: 1170: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 118c: nop
-# CHECK: 1190: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 11ad: nop
-# CHECK: 11b0: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 11ce: nop
-# CHECK: 11d0: incl
-
-  .align 32, 0x90
-INSTRLEN_9_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 9
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 11ef: nop
-# CHECK: 11f0: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_0:
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1200: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1221: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1242: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1263: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1284: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 12a5: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 12c6: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 12e7: nop
-# CHECK: 12f0: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1308: nop
-# CHECK: 1310: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1329: nop
-# CHECK: 1330: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 134a: nop
-# CHECK: 1350: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 136b: nop
-# CHECK: 1370: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 138c: nop
-# CHECK: 1390: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 13ad: nop
-# CHECK: 13b0: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 13ce: nop
-# CHECK: 13d0: incl
-
-  .align 32, 0x90
-INSTRLEN_10_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 10
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 13ef: nop
-# CHECK: 13f0: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_0:
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1400: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1421: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1442: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1463: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1484: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14a5: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14c6: nop
-# CHECK: 14d0: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 14e7: nop
-# CHECK: 14f0: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1508: nop
-# CHECK: 1510: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1529: nop
-# CHECK: 1530: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 154a: nop
-# CHECK: 1550: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 156b: nop
-# CHECK: 1570: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 158c: nop
-# CHECK: 1590: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 15ad: nop
-# CHECK: 15b0: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 15ce: nop
-# CHECK: 15d0: incl
-
-  .align 32, 0x90
-INSTRLEN_11_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 11
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 15ef: nop
-# CHECK: 15f0: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_0:
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1600: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1621: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1642: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1663: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1684: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16a5: nop
-# CHECK: 16b0: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16c6: nop
-# CHECK: 16d0: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 16e7: nop
-# CHECK: 16f0: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1708: nop
-# CHECK: 1710: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1729: nop
-# CHECK: 1730: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 174a: nop
-# CHECK: 1750: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 176b: nop
-# CHECK: 1770: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 178c: nop
-# CHECK: 1790: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 17ad: nop
-# CHECK: 17b0: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 17ce: nop
-# CHECK: 17d0: incl
-
-  .align 32, 0x90
-INSTRLEN_12_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 12
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 17ef: nop
-# CHECK: 17f0: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_0:
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1800: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1821: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1842: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1863: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1884: nop
-# CHECK: 1890: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18a5: nop
-# CHECK: 18b0: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18c6: nop
-# CHECK: 18d0: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 18e7: nop
-# CHECK: 18f0: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1908: nop
-# CHECK: 1910: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1929: nop
-# CHECK: 1930: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 194a: nop
-# CHECK: 1950: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 196b: nop
-# CHECK: 1970: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 198c: nop
-# CHECK: 1990: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 19ad: nop
-# CHECK: 19b0: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 19ce: nop
-# CHECK: 19d0: incl
-
-  .align 32, 0x90
-INSTRLEN_13_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 13
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 19ef: nop
-# CHECK: 19f0: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_0:
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a00: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a21: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a42: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a63: nop
-# CHECK: 1a70: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1a84: nop
-# CHECK: 1a90: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1aa5: nop
-# CHECK: 1ab0: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ac6: nop
-# CHECK: 1ad0: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ae7: nop
-# CHECK: 1af0: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b08: nop
-# CHECK: 1b10: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b29: nop
-# CHECK: 1b30: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b4a: nop
-# CHECK: 1b50: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b6b: nop
-# CHECK: 1b70: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1b8c: nop
-# CHECK: 1b90: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1bad: nop
-# CHECK: 1bb0: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1bce: nop
-# CHECK: 1bd0: incl
-
-  .align 32, 0x90
-INSTRLEN_14_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 14
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1bef: nop
-# CHECK: 1bf0: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_0:
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c00: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c21: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c42: nop
-# CHECK: 1c50: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c63: nop
-# CHECK: 1c70: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1c84: nop
-# CHECK: 1c90: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ca5: nop
-# CHECK: 1cb0: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1cc6: nop
-# CHECK: 1cd0: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ce7: nop
-# CHECK: 1cf0: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d08: nop
-# CHECK: 1d10: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d29: nop
-# CHECK: 1d30: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d4a: nop
-# CHECK: 1d50: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d6b: nop
-# CHECK: 1d70: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1d8c: nop
-# CHECK: 1d90: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1dad: nop
-# CHECK: 1db0: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1dce: nop
-# CHECK: 1dd0: incl
-
-  .align 32, 0x90
-INSTRLEN_15_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 15
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1def: nop
-# CHECK: 1df0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_0:
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e00: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_1:
-  .fill 1, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e21: nop
-# CHECK: 1e30: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_2:
-  .fill 2, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e42: nop
-# CHECK: 1e50: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_3:
-  .fill 3, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e63: nop
-# CHECK: 1e70: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_4:
-  .fill 4, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1e84: nop
-# CHECK: 1e90: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_5:
-  .fill 5, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ea5: nop
-# CHECK: 1eb0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_6:
-  .fill 6, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ec6: nop
-# CHECK: 1ed0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_7:
-  .fill 7, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1ee7: nop
-# CHECK: 1ef0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_8:
-  .fill 8, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f08: nop
-# CHECK: 1f10: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_9:
-  .fill 9, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f29: nop
-# CHECK: 1f30: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_10:
-  .fill 10, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f4a: nop
-# CHECK: 1f50: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_11:
-  .fill 11, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f6b: nop
-# CHECK: 1f70: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_12:
-  .fill 12, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1f8c: nop
-# CHECK: 1f90: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_13:
-  .fill 13, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1fad: nop
-# CHECK: 1fb0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_14:
-  .fill 14, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1fce: nop
-# CHECK: 1fd0: incl
-
-  .align 32, 0x90
-INSTRLEN_16_OFFSET_15:
-  .fill 15, 1, 0x90
-  .bundle_lock
-  .rept 16
-  inc %eax
-  .endr
-  .bundle_unlock
-# CHECK: 1fef: nop
-# CHECK: 1ff0: incl
-
diff --git a/llvm/test/MC/X86/AlignedBundling/bundle-group-too-large-error.s b/llvm/test/MC/X86/AlignedBundling/bundle-group-too-large-error.s
deleted file mode 100644
index 697b8bf6ab6c0..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/bundle-group-too-large-error.s
+++ /dev/null
@@ -1,18 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mc-relax-all %s -o - 2>&1 | FileCheck %s
-
-# CHECK: ERROR: Fragment can't be larger than a bundle size
-
-  .text
-foo:
-  .bundle_align_mode 4
-  pushq   %rbp
-
-  .bundle_lock
-  pushq   %r14
-  callq   bar
-  callq   bar
-  callq   bar
-  callq   bar
-  .bundle_unlock
-
diff --git a/llvm/test/MC/X86/AlignedBundling/bundle-lock-option-error.s b/llvm/test/MC/X86/AlignedBundling/bundle-lock-option-error.s
deleted file mode 100644
index b849d2b333007..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/bundle-lock-option-error.s
+++ /dev/null
@@ -1,11 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-
-# Missing .bundle_align_mode argument
-# CHECK: error: invalid option
-
-  .bundle_align_mode 4
-  .bundle_lock 5
-  imull $17, %ebx, %ebp
-  .bundle_unlock
-
-
diff --git a/llvm/test/MC/X86/AlignedBundling/bundle-subtarget-change-error.s b/llvm/test/MC/X86/AlignedBundling/bundle-subtarget-change-error.s
deleted file mode 100644
index c02d0d6b19b4e..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/bundle-subtarget-change-error.s
+++ /dev/null
@@ -1,16 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - 2>&1 | FileCheck %s
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - 2>&1 | FileCheck %s
-
-# Switching mode will change subtarget, which we can't do within a bundle
-  .text
-  .code64
-  .bundle_align_mode 4
-foo:
-  pushq   %rbp
-  .bundle_lock
-  addl    %ebp, %eax
-  .code32
-  movb  $0x0, (%si)
-  .bundle_unlock
-
-CHECK:  LLVM ERROR: A Bundle can only have one Subtarget.
diff --git a/llvm/test/MC/X86/AlignedBundling/different-sections.s b/llvm/test/MC/X86/AlignedBundling/different-sections.s
deleted file mode 100644
index bc4f20132dbe7..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/different-sections.s
+++ /dev/null
@@ -1,27 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-
-# Test two different executable sections with bundling.
-
-  .bundle_align_mode 3
-  .section text1, "x"
-# CHECK: section text1
-  imull $17, %ebx, %ebp
-  imull $17, %ebx, %ebp
-
-  imull $17, %ebx, %ebp
-# CHECK:      6: nop
-# CHECK-NEXT: 8: imull
-
-  .section text2, "x"
-# CHECK: section text2
-  imull $17, %ebx, %ebp
-  imull $17, %ebx, %ebp
-
-  imull $17, %ebx, %ebp
-# CHECK:      6: nop
-# CHECK-NEXT: 8: imull
-
-
diff --git a/llvm/test/MC/X86/AlignedBundling/labeloffset.s b/llvm/test/MC/X86/AlignedBundling/labeloffset.s
deleted file mode 100644
index 2850aba718430..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/labeloffset.s
+++ /dev/null
@@ -1,85 +0,0 @@
-# RUN: llvm-mc -triple=i686-linux -filetype=obj %s -o - | \
-# RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn -r - | FileCheck %s
-# RUN: llvm-mc -triple=i686-nacl -filetype=obj %s -o - | \
-# RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn -r - | FileCheck %s
-# RUN: llvm-mc -triple=i686-nacl -filetype=obj -mc-relax-all %s -o - | \
-# RUN: llvm-objdump --no-print-imm-hex -d --no-show-raw-insn -r - | FileCheck %s
-
-        .bundle_align_mode 5
-        .text
-        .globl  main
-        .align  32, 0x90
-        .type   main, at function
-main:                                   # @main
-# CHECK-LABEL: <main>:
-# Call + pop sequence for determining the PIC base.
-        .bundle_lock align_to_end
-        calll   .L0$pb
-        .bundle_unlock
-.L0$pb:
-        popl    %eax
-# CHECK: 20: popl
-# 26 bytes of instructions between the pop and the use of the pic base symbol.
-        movl    $3, 2(%ebx, %ebx)
-        movl    $3, 2(%ebx, %ebx)
-        movl    $3, 2(%ebx, %ebx)
-        hlt
-        hlt
-# CHECK: nop
-.Ltmp0:
-        addl    (.Ltmp0-.L0$pb), %eax
-# The addl has bundle padding to push it from 0x3b to 0x40.
-# The difference between the labels should be 0x20 (0x40-0x20) not 0x1b
-# (0x3b-0x20)
-# CHECK: 40: addl 32, %eax
-        popl    %ecx
-        jmp     *%ecx
-
-
-# Also make sure it works with a non-relaxable instruction (cmp vs add)
-# and for 2 adjacent labels that both point to the correct instruction
-        .section .text.bar, "ax"
-        .globl  bar
-        .align  32, 0x90
-        .type   bar, at function
-bar:
-# CHECK-LABEL: bar:
-        .bundle_lock align_to_end
-        calll   .L1$pb
-        .bundle_unlock
-.L1$pb:
-        popl %eax
-# CHECK: 20: popl
-# 26 bytes of instructions between the pop and the use of the pic base symbol.
-        movl    $3, 2(%ebx, %ebx)
-        movl    $3, 2(%ebx, %ebx)
-        movl    $3, 2(%ebx, %ebx)
-        hlt
-        hlt
-# CHECK: nop
-.Ltmp1:
-.Ltmp2:
-        cmpl    %eax, .Ltmp1
-# CHECK: 40: cmpl %eax, 64
-        cmpl     %eax, (.Ltmp2-.L1$pb)
-# CHECK: 46: cmpl %eax, 32
-        popl    %ecx
-        jmp *%ecx
-
-
-# Switch sections in the middle of a function
-        .section .text.foo, "ax"
-        .globl  foo
-        .align  32, 0x90
-        .type   foo, at function
-# CHECK-LABEL: foo:
-foo:
-        inc %eax
-tmp3:
-        .rodata
-        .type   obj, at object
-        .comm   obj,4,4
-        .section .text.foo
-        inc %eax
-# CHECK: <tmp3>:
-# CHECK-NEXT: 1: incl
diff --git a/llvm/test/MC/X86/AlignedBundling/lit.local.cfg b/llvm/test/MC/X86/AlignedBundling/lit.local.cfg
deleted file mode 100644
index 42bf50dcc13c3..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/lit.local.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-if not "X86" in config.root.targets:
-    config.unsupported = True
diff --git a/llvm/test/MC/X86/AlignedBundling/lock-without-bundle-mode-error.s b/llvm/test/MC/X86/AlignedBundling/lock-without-bundle-mode-error.s
deleted file mode 100644
index 65ee2d5b9f385..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/lock-without-bundle-mode-error.s
+++ /dev/null
@@ -1,10 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-
-# .bundle_lock can't come without a .bundle_align_mode before it
-
-# CHECK: ERROR: .bundle_lock forbidden when bundling is disabled
-
-  imull $17, %ebx, %ebp
-  .bundle_lock
-
-
diff --git a/llvm/test/MC/X86/AlignedBundling/long-nop-pad.s b/llvm/test/MC/X86/AlignedBundling/long-nop-pad.s
deleted file mode 100644
index 439915dfd0b5b..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/long-nop-pad.s
+++ /dev/null
@@ -1,31 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-
-# Test that long nops are generated for padding where possible.
-
-  .text
-foo:
-  .bundle_align_mode 5
-
-# This callq instruction is 5 bytes long
-  .bundle_lock align_to_end
-  callq   bar
-  .bundle_unlock
-# To align this group to a bundle end, we need a two 10-byte NOPs and a 7-byte NOP.
-# CHECK:        0:  nop
-# CHECK-NEXT:   a:  nop
-# CHECK-NEXT:   14: nop
-# CHECK:   1b: callq
-
-# This push instruction is 1 byte long
-  .bundle_lock align_to_end
-  push %rax
-  .bundle_unlock
-# To align this group to a bundle end, we need three 10-byte NOPs, and a 1-byte.
-# CHECK:        20:  nop
-# CHECK-NEXT:   2a:  nop
-# CHECK-NEXT:   34:  nop
-# CHECK-NEXT:   3e:  nop
-# CHECK-NEXT:   3f: pushq
diff --git a/llvm/test/MC/X86/AlignedBundling/misaligned-bundle-group.s b/llvm/test/MC/X86/AlignedBundling/misaligned-bundle-group.s
deleted file mode 100644
index 92bd9ec016bd5..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/misaligned-bundle-group.s
+++ /dev/null
@@ -1,19 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - \
-# RUN:   | FileCheck -check-prefix=CHECK -check-prefix=CHECK-OPT %s
-# RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - \
-# RUN:   | FileCheck --check-prefixes=CHECK,CHECK-OPT %s
-
-        .text
-foo:
-        .bundle_align_mode 5
-        push    %ebp # 1 byte
-        .align  16
-        .bundle_lock align_to_end
-# CHECK:            1:  nopw %cs:(%eax,%eax)
-# CHECK:            10: nopw %cs:(%eax,%eax)
-# CHECK-OPT:        1b: calll 0x1c
-        calll   bar # 5 bytes
-        .bundle_unlock
-        ret         # 1 byte
diff --git a/llvm/test/MC/X86/AlignedBundling/misaligned-bundle.s b/llvm/test/MC/X86/AlignedBundling/misaligned-bundle.s
deleted file mode 100644
index 0bf5cfd802be9..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/misaligned-bundle.s
+++ /dev/null
@@ -1,26 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump --no-print-imm-hex -d --no-show-raw-insn - \
-# RUN:   | FileCheck -check-prefix=CHECK -check-prefix=CHECK-OPT %s
-# RUN: llvm-mc -filetype=obj -triple i686-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump --no-print-imm-hex -d --no-show-raw-insn - \
-# RUN:   | FileCheck --check-prefixes=CHECK,CHECK-OPT %s
-
-        .text
-foo:
-        .bundle_align_mode 5
-        push    %ebp          # 1 byte
-        .align  16
-# CHECK:            1:  nopw %cs:(%eax,%eax)
-# CHECK-OPT:        10: movl $1, (%esp)
-        movl $0x1, (%esp)     # 7 bytes
-        movl $0x1, (%esp)     # 7 bytes
-# CHECK-OPT:        1e: nop
-        movl $0x2, 0x1(%esp)  # 8 bytes
-        movl $0x2, 0x1(%esp)  # 8 bytes
-        movl $0x2, 0x1(%esp)  # 8 bytes
-        movl $0x2, (%esp)     # 7 bytes
-# CHECK-OPT:        3f: nop
-# CHECK-OPT:        40: movl $3, (%esp)
-        movl $0x3, (%esp)     # 7 bytes
-        movl $0x3, (%esp)     # 7 bytes
-        ret
diff --git a/llvm/test/MC/X86/AlignedBundling/nesting.s b/llvm/test/MC/X86/AlignedBundling/nesting.s
deleted file mode 100644
index e107a413521b3..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/nesting.s
+++ /dev/null
@@ -1,73 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-
-# Will be bundle-aligning to 16 byte boundaries
-  .bundle_align_mode 4
-  .text
-# CHECK-LABEL: <foo>:
-.type   foo, at function
-foo:
-# Test that bundle alignment mode can be set more than once.
-  .bundle_align_mode 4
-# Each of these callq instructions is 5 bytes long
-  callq bar
-  callq bar
-  .bundle_lock
-  .bundle_lock
-  callq bar
-  callq bar     
-  .bundle_unlock
-  .bundle_unlock
-# CHECK:      10: callq {{.*}} <bar>
-# CHECK-NEXT: 15: callq {{.*}} <bar>
-
-  .p2align 4
-# CHECK-LABEL: <bar>:
-.type   bar, at function
-bar:
-  callq foo
-  callq foo
-# Check that the callqs get bundled together, and that the whole group is
-# align_to_end
-  .bundle_lock 
-  callq bar
-  .bundle_lock align_to_end
-  callq bar
-  .bundle_unlock
-  .bundle_unlock
-# CHECK:      36: callq {{.*}} <bar>
-# CHECK-NEXT: 3b: callq {{.*}} <bar>
-
-# CHECK-LABEL: <baz>:
-.type   baz, at function
-baz:
-  callq foo
-  callq foo
-# Check that the callqs get bundled together, and that the whole group is
-# align_to_end (with the outer directive marked align_to_end)
-  .bundle_lock align_to_end
-  callq bar
-  .bundle_lock
-  callq bar
-  .bundle_unlock
-  .bundle_unlock
-# CHECK:      56: callq {{.*}} <bar>
-# CHECK-NEXT: 5b: callq {{.*}} <bar>
-
-# CHECK-LABEL: quux
-.type   quux, at function
-quux:
-  callq bar
-  callq bar
-  .bundle_lock
-  .bundle_lock
-  callq bar
-  .bundle_unlock
-  callq bar     
-  .bundle_unlock
-# Check that the calls are bundled together when the second one is after the
-# inner nest is closed.
-# CHECK:      70: callq {{.*}} <bar>
-# CHECK-NEXT: 75: callq {{.*}} <bar>
diff --git a/llvm/test/MC/X86/AlignedBundling/pad-align-to-bundle-end.s b/llvm/test/MC/X86/AlignedBundling/pad-align-to-bundle-end.s
deleted file mode 100644
index d725724f8fd44..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/pad-align-to-bundle-end.s
+++ /dev/null
@@ -1,35 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-
-# Test some variations of padding to the end of a bundle.
-
-  .text
-foo:
-  .bundle_align_mode 4
-
-# Each of these callq instructions is 5 bytes long
-  callq   bar
-  callq   bar
-  .bundle_lock align_to_end
-  callq   bar
-  .bundle_unlock
-# To align this group to a bundle end, we need a 1-byte NOP.
-# CHECK:        a:  nop
-# CHECK-NEXT:   b: callq
-
-  callq   bar
-  callq   bar
-  .bundle_lock align_to_end
-  callq   bar
-  callq   bar
-  .bundle_unlock
-# Here we have to pad until the end of the *next* boundary because
-# otherwise the group crosses a boundary.
-# CHECK:      1a: nop
-# The nop sequence may be implemented as one instruction or many, but if
-# it's one instruction, that instruction cannot itself cross the boundary.
-# CHECK:      20: nop
-# CHECK-NEXT: 26: callq
-# CHECK-NEXT: 2b: callq
diff --git a/llvm/test/MC/X86/AlignedBundling/pad-bundle-groups.s b/llvm/test/MC/X86/AlignedBundling/pad-bundle-groups.s
deleted file mode 100644
index 9e07b5994864b..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/pad-bundle-groups.s
+++ /dev/null
@@ -1,49 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-
-# Test some variations of padding for bundle-locked groups.
-
-  .text
-foo:
-  .bundle_align_mode 4
-
-# Each of these callq instructions is 5 bytes long
-  callq   bar
-  callq   bar
-
-  .bundle_lock
-  callq   bar
-  callq   bar
-  .bundle_unlock
-# We'll need a 6-byte NOP before this group
-# CHECK:        a:  nop
-# CHECK-NEXT:   10: callq
-# CHECK-NEXT:   15: callq
-
-  .bundle_lock
-  callq   bar
-  callq   bar
-  .bundle_unlock
-# Same here
-# CHECK:        1a:  nop
-# CHECK-NEXT:   20: callq
-# CHECK-NEXT:   25: callq
-
-  .align 16, 0x90
-  callq   bar
-  .bundle_lock
-  callq   bar
-  callq   bar
-  callq   bar
-  .bundle_unlock
-# And here we'll need a 10-byte NOP + 1-byte NOP
-# CHECK:        30: callq
-# CHECK:        35: nop
-# CHECK:        3f: nop
-# CHECK-NEXT:   40: callq
-# CHECK-NEXT:   45: callq
-
-
-
diff --git a/llvm/test/MC/X86/AlignedBundling/relax-at-bundle-end.s b/llvm/test/MC/X86/AlignedBundling/relax-at-bundle-end.s
deleted file mode 100644
index 2c510f796e19f..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/relax-at-bundle-end.s
+++ /dev/null
@@ -1,18 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck %s
-
-# Test that an instruction near a bundle end gets properly padded
-# after it is relaxed.
-.text
-foo:
-        .bundle_align_mode 5
-        .rept 29
-        push %rax
-        .endr
-# CHECK: 1c: push
-# CHECK: 1d: nop
-# CHECK: 20: jne
-        jne 0x100
-
diff --git a/llvm/test/MC/X86/AlignedBundling/relax-in-bundle-group.s b/llvm/test/MC/X86/AlignedBundling/relax-in-bundle-group.s
deleted file mode 100644
index 2419a02f9ab74..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/relax-in-bundle-group.s
+++ /dev/null
@@ -1,44 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d - | FileCheck %s
-
-# Test that instructions inside bundle-locked groups are relaxed even if their
-# fixup is short enough not to warrant relaxation on its own.
-
-  .text
-foo:
-  .bundle_align_mode 4
-  pushq   %rbp
-
-  movl    %edi, %ebx
-  callq   bar
-  movl    %eax, %r14d
-  imull   $17, %ebx, %ebp
-  movl    %ebx, %edi
-  callq   bar
-  cmpl    %r14d, %ebp
-  .bundle_lock
-
-  jle     .L_ELSE
-# This group would've started at 0x18 and is too long, so a chunky NOP padding
-# is inserted to push it to 0x20.
-# CHECK: 18: {{[a-f0-9 ]+}} nopl
-
-# The long encoding for JLE should be used here even though its target is close
-# CHECK-NEXT: 20: 0f 8e
-
-  addl    %ebp, %eax
-
-  jmp     .L_RET
-# Same for the JMP
-# CHECK: 28: e9
-
-  .bundle_unlock
-
-.L_ELSE:
-  imull   %ebx, %eax
-.L_RET:
-
-  popq    %rbx
-
diff --git a/llvm/test/MC/X86/AlignedBundling/rodata-section.s b/llvm/test/MC/X86/AlignedBundling/rodata-section.s
deleted file mode 100644
index 6c2b41a6f8034..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/rodata-section.s
+++ /dev/null
@@ -1,30 +0,0 @@
-# RUN: llvm-mc -triple=i686-nacl -filetype=obj %s -o - \
-# RUN:    | llvm-objdump --no-print-imm-hex -d --no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -triple=i686-nacl -filetype=obj -mc-relax-all %s -o - \
-# RUN:    | llvm-objdump --no-print-imm-hex -d --no-show-raw-insn - | FileCheck %s
-
-  .bundle_align_mode 5
-  .text
-  .align	32, 0x90
-# CHECK: 0: movl $14, 8(%esp)
-  movl	$.str2, 8(%esp)
-# CHECK: 8: movl $7, 4(%esp)
-  movl	$.str1, 4(%esp)
-# CHECK: 10: movl $0, (%esp)
-  movl	$.str, (%esp)
-
-  .type	.str, at object
-  .section	.rodata,"a", at progbits
-.str:
-  .asciz	"hello1"
-  .size	.str, 7
-
-  .type	.str1, at object
-.str1:
-  .asciz	"hello2"
-  .size	.str1, 7
-
-  .type	.str2, at object
-.str2:
-  .asciz	"hello3"
-  .size	.str2, 7
diff --git a/llvm/test/MC/X86/AlignedBundling/section-alignment.s b/llvm/test/MC/X86/AlignedBundling/section-alignment.s
deleted file mode 100644
index d5277d194576e..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/section-alignment.s
+++ /dev/null
@@ -1,23 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - \
-# RUN:   | llvm-readobj --sections - | FileCheck %s
-
-# Test that bundle-aligned sections with instructions are aligned
-
-  .bundle_align_mode 5
-# CHECK: Sections
-# Check that the empty .text section has the default alignment
-# CHECK-LABEL: Name: .text
-# CHECK-NOT: Name
-# CHECK: AddressAlignment: 4
-
-  .section text1, "x"
-  imull $17, %ebx, %ebp
-# CHECK-LABEL: Name: text1
-# CHECK-NOT: Name
-# CHECK: AddressAlignment: 32
-
-  .section text2, "x"
-  imull $17, %ebx, %ebp
-# CHECK-LABEL: Name: text2
-# CHECK-NOT: Name
-# CHECK: AddressAlignment: 32
diff --git a/llvm/test/MC/X86/AlignedBundling/single-inst-bundling.s b/llvm/test/MC/X86/AlignedBundling/single-inst-bundling.s
deleted file mode 100644
index 1bcd010240ae3..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/single-inst-bundling.s
+++ /dev/null
@@ -1,52 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck --check-prefix=CHECK --check-prefix=CHECK-OPT %s
-# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -mcpu=pentiumpro -mc-relax-all %s -o - \
-# RUN:   | llvm-objdump -d --no-show-raw-insn - | FileCheck --check-prefix=CHECK --check-prefix=CHECK-RELAX %s
-
-# Test simple NOP insertion for single instructions.
-
-  .text
-foo:
-  # Will be bundle-aligning to 16 byte boundaries
-  .bundle_align_mode 4
-  pushq   %rbp
-  pushq   %r14
-  pushq   %rbx
-
-  movl    %edi, %ebx
-  callq   bar
-  movl    %eax, %r14d
-
-  imull   $17, %ebx, %ebp
-# This imull is 3 bytes long and should have started at 0xe, so two bytes
-# of nop padding are inserted instead and it starts at 0x10
-# CHECK:          nop
-# CHECK-NEXT:     10: imull
-
-  movl    %ebx, %edi
-  callq   bar
-  cmpl    %r14d, %ebp
-# CHECK-RELAX:   nopl
-  jle     .L_ELSE
-# Due to the padding that's inserted before the addl, the jump target
-# becomes farther by one byte.
-# CHECK-OPT:     jle 0x24
-# CHECK-RELAX:   jle 0x2d
-
-  addl    %ebp, %eax
-# CHECK-OPT:     nop
-# CHECK-OPT-NEXT:20: addl
-# CHECK-RELAX:   26: addl
-
-  jmp     .L_RET
-.L_ELSE:
-  imull   %ebx, %eax
-.L_RET:
-  ret
-
-# Just verifying that data fills don't drive bundling crazy
-  .data
-  .byte 40
-  .byte 98
-
-
diff --git a/llvm/test/MC/X86/AlignedBundling/switch-section-locked-error.s b/llvm/test/MC/X86/AlignedBundling/switch-section-locked-error.s
deleted file mode 100644
index 6ea3c36beb1cc..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/switch-section-locked-error.s
+++ /dev/null
@@ -1,16 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-
-# This test invokes .bundle_lock and then switches to a different section
-# w/o the appropriate unlock.
-
-# CHECK: ERROR: Unterminated .bundle_lock
-
-  .bundle_align_mode 3
-  .section text1, "x"
-  imull $17, %ebx, %ebp
-  .bundle_lock
-  imull $17, %ebx, %ebp
-
-  .section text2, "x"
-  imull $17, %ebx, %ebp
-
diff --git a/llvm/test/MC/X86/AlignedBundling/unlock-without-lock-error.s b/llvm/test/MC/X86/AlignedBundling/unlock-without-lock-error.s
deleted file mode 100644
index 811ef95a451d4..0000000000000
--- a/llvm/test/MC/X86/AlignedBundling/unlock-without-lock-error.s
+++ /dev/null
@@ -1,11 +0,0 @@
-# RUN: not --crash llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
-
-# .bundle_unlock can't come without a .bundle_lock before it
-
-# CHECK: ERROR: .bundle_unlock without matching lock
-
-  .bundle_align_mode 3
-  imull $17, %ebx, %ebp
-  .bundle_unlock
-
-
diff --git a/llvm/test/MC/X86/align-branch-bundle.s b/llvm/test/MC/X86/align-branch-bundle.s
deleted file mode 100644
index aba90f02a8a69..0000000000000
--- a/llvm/test/MC/X86/align-branch-bundle.s
+++ /dev/null
@@ -1,21 +0,0 @@
-# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown --x86-align-branch-boundary=16 --x86-align-branch=fused+jcc --mc-relax-all %s | llvm-objdump --no-print-imm-hex -d --no-show-raw-insn - | FileCheck %s
-
-# Check using option --x86-align-branch-boundary=16 --x86-align-branch=fused+jcc --mc-relax-all with bundle won't make code crazy
-
-# CHECK:            0:       pushq    %rbp
-# CHECK-NEXT:       1:       testq    $2, %rdx
-# CHECK-NEXT:       8:       jne
-# CHECK-NEXT:       e:       nop
-# CHECK-NEXT:      10:       jle
-
-    .text
-    .p2align 4
-foo:
-  push %rbp
-  # Will be bundle-aligning to 8 byte boundaries
-  .bundle_align_mode 3
-  test $2, %rdx
-  jne   foo
-# This jle is 6 bytes long and should have started at 0xe, so two bytes
-# of nop padding are inserted instead and it starts at 0x10
-  jle   foo



More information about the llvm-commits mailing list