<div dir="ltr">I suspect this change introduced a bug in compact unwind info on AArch64:<div><a href="https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.clang%2FToTiOS%2F250%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout">https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.clang%2FToTiOS%2F250%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout</a><br></div><div><br></div><div><div>FAILED: ios_clang_arm64/obj/third_party/opus/opus/pitch.o </div><div>...</div><div>Assertion failed: (StackSize == 0 && "We already have the CFA offset!"), function generateCompactUnwindEncoding, file /b/c/b/ToTiOS/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp, line 487.</div><div>0  clang                    0x00000001035d7fb8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40</div><div>1  clang                    0x00000001035d86b6 llvm::sys::PrintStackTraceOnErrorSignal(llvm::StringRef, bool) + 838</div><div>2  libsystem_platform.dylib 0x00007fffeb995bba _sigtramp + 26</div><div>3  clang                    0x0000000103294e79 llvm::MCCVLineEntry::Make(llvm::MCObjectStreamer*) + 25</div><div>4  libsystem_c.dylib        0x00007fffeb81c420 abort + 129</div><div>5  libsystem_c.dylib        0x00007fffeb7e3893 basename_r + 0</div><div>6  clang                    0x0000000101e22067 llvm::createAArch64beAsmBackend(llvm::Target const&, llvm::MCRegisterInfo const&, llvm::Triple const&, llvm::StringRef, llvm::MCTargetOptions const&) + 8631</div><div>7  clang                    0x00000001032bf4ef llvm::MCStreamer::generateCompactUnwindEncodings(llvm::MCAsmBackend*) + 79</div><div>8  clang                    0x00000001032a1196 llvm::MCDwarfFrameEmitter::Emit(llvm::MCObjectStreamer&, llvm::MCAsmBackend*, bool) + 38</div><div>9  clang                    0x00000001032b806e llvm::MCObjectStreamer::EmitFrames(llvm::MCAsmBackend*) + 62</div><div>10 clang                    0x00000001032b12f5 llvm::createMachOStreamer(llvm::MCContext&, std::__1::unique_ptr<llvm::MCAsmBackend, std::__1::default_delete<llvm::MCAsmBackend> >&&, llvm::raw_pwrite_stream&, std::__1::unique_ptr<llvm::MCCodeEmitter, std::__1::default_delete<llvm::MCCodeEmitter> >&&, bool, bool, bool) + 5749</div><div>11 clang                    0x00000001032c37f2 llvm::MCStreamer::Finish() + 306</div><div>12 clang                    0x0000000103d6e271 llvm::AsmPrinter::doFinalization(llvm::Module&) + 3489</div><div>13 clang                    0x0000000102ffa740 llvm::FPPassManager::doFinalization(llvm::Module&) + 80</div><div>14 clang                    0x0000000102ffac8d llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1277</div><div>15 clang                    0x000000010380cd33 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream> >) + 15571</div><div>16 clang                    0x0000000103a44ed5 clang::EmitObjAction::EmitObjAction(llvm::LLVMContext*) + 2341</div><div>17 clang                    0x0000000103d10ccc clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 44</div><div>18 clang                    0x00000001044cdfb5 clang::ParseAST(clang::Sema&, bool, bool) + 469</div><div>19 clang                    0x0000000103ccdfdc clang::FrontendAction::Execute() + 76</div><div>20 clang                    0x0000000103c86e41 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1217</div><div>21 clang                    0x0000000103d340fa clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 4970</div><div>22 clang                    0x0000000101c86a57 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1399</div><div>23 clang                    0x0000000101c850df main + 11951</div><div>24 libdyld.dylib            0x00007fffeb788255 start + 1</div><div><br></div></div><div>I'll try to get a reproducer.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 7, 2017 at 6:40 AM, Petar Jovanovic via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: petarj<br>
Date: Tue Nov  7 06:40:27 2017<br>
New Revision: 317579<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=317579&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=317579&view=rev</a><br>
Log:<br>
Reland "Correct dwarf unwind information in function epilogue for X86"<br>
<br>
Reland r317100 with minor fix regarding ComputeCommonTailLength function in<br>
BranchFolding.cpp. Skipping top CFI instructions block needs to executed on<br>
several more return points in ComputeCommonTailLength().<br>
<br>
Original r317100 message:<br>
<br>
"Correct dwarf unwind information in function epilogue for X86"<br>
<br>
This patch aims to provide correct dwarf unwind information in function<br>
epilogue for X86.<br>
<br>
It consists of two parts. The first part inserts CFI instructions that set<br>
appropriate cfa offset and cfa register in emitEpilogue() in<br>
X86FrameLowering. This part is X86 specific.<br>
<br>
The second part is platform independent and ensures that:<br>
<br>
- CFI instructions do not affect code generation<br>
- Unwind information remains correct when a function is modified by<br>
  different passes. This is done in a late pass by analyzing information<br>
  about cfa offset and cfa register in BBs and inserting additional CFI<br>
  directives where necessary.<br>
<br>
Changed CFI instructions so that they:<br>
<br>
- are duplicable<br>
- are not counted as instructions when tail duplicating or tail merging<br>
- can be compared as equal<br>
<br>
Added CFIInstrInserter pass:<br>
<br>
- analyzes each basic block to determine cfa offset and register valid at<br>
  its entry and exit<br>
- verifies that outgoing cfa offset and register of predecessor blocks match<br>
  incoming values of their successors<br>
- inserts additional CFI directives at basic block beginning to correct the<br>
  rule for calculating CFA<br>
<br>
Having CFI instructions in function epilogue can cause incorrect CFA<br>
calculation rule for some basic blocks. This can happen if, due to basic<br>
block reordering, or the existence of multiple epilogue blocks, some of the<br>
blocks have wrong cfa offset and register values set by the epilogue block<br>
above them.<br>
<br>
CFIInstrInserter is currently run only on X86, but can be used by any target<br>
that implements support for adding CFI instructions in epilogue.<br>
<br>
Patch by Violeta Vukobrat.<br>
<br>
Added:<br>
    llvm/trunk/lib/CodeGen/<wbr>CFIInstrInserter.cpp<br>
    llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-fp.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-no-fp.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-fp.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-no-fp.ll<br>
Modified:<br>
    llvm/trunk/include/llvm/<wbr>CodeGen/Passes.h<br>
    llvm/trunk/include/llvm/<wbr>CodeGen/TargetFrameLowering.h<br>
    llvm/trunk/include/llvm/<wbr>InitializePasses.h<br>
    llvm/trunk/include/llvm/<wbr>Target/Target.td<br>
    llvm/trunk/lib/CodeGen/<wbr>BranchFolding.cpp<br>
    llvm/trunk/lib/CodeGen/<wbr>CMakeLists.txt<br>
    llvm/trunk/lib/CodeGen/<wbr>CodeGen.cpp<br>
    llvm/trunk/lib/CodeGen/<wbr>MachineInstr.cpp<br>
    llvm/trunk/lib/CodeGen/<wbr>TailDuplicator.cpp<br>
    llvm/trunk/lib/CodeGen/<wbr>TargetFrameLoweringImpl.cpp<br>
    llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.cpp<br>
    llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.h<br>
    llvm/trunk/lib/Target/X86/<wbr>X86TargetMachine.cpp<br>
    llvm/trunk/test/CodeGen/X86/<wbr>2009-03-16-PHIElimInLPad.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>2011-10-19-widen_vselect.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/add-scalar.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/brcond.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/callingconv.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/frameIndex.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>O0-pipeline.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>TruncAssertZext.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512-mask-op.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-Mask.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-NoMask.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512-schedule.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512-select.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512-vbroadcast.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-fast-isel.<wbr>ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-upgrade.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-intrinsics-fast-isel.<wbr>ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vbroadcast.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vec-masked-cmp.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-256.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-512.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>bitcast-int-to-vector-bool-<wbr>zext.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-256.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-512.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>bool-vector.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>cmp.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>emutls-pie.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>emutls.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-int-float-<wbr>conversion.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-store.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic-2.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>haddsub-2.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>hipe-cc64.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>illegal-bitfield-loadstore.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>imul.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse1.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse2.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse3.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse4.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>legalize-shift-64.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>live-out-reg-info.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>load-combine.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>masked_gather_scatter.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>memset-nonzero.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>merge-consecutive-loads-128.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>movtopush.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>mul-constant-result.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>mul-i256.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>mul128.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr21792.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr29061.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr29112.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr30430.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32241.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32256.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32282.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32284.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32329.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32345.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr32451.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr34088.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr34653.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>pr9743.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-debug.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-obj.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>push-cfi.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>return-ext.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>rtm.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>select-mmx.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>setcc-lowering.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>shrink_vmul.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>statepoint-call-lowering.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>statepoint-gctransition-call-<wbr>lowering.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>statepoint-invoke.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>vector-sext.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-avx512.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-v1.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>wide-integer-cmp.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>x86-framelowering-trap.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>x86-interleaved-access.ll<br>
    llvm/trunk/test/CodeGen/X86/<wbr>x86-no_caller_saved_registers-<wbr>preserve.ll<br>
<br>
Modified: llvm/trunk/include/llvm/<wbr>CodeGen/Passes.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/Passes.h?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/CodeGen/Passes.h?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/<wbr>CodeGen/Passes.h (original)<br>
+++ llvm/trunk/include/llvm/<wbr>CodeGen/Passes.h Tue Nov  7 06:40:27 2017<br>
@@ -420,6 +420,9 @@ namespace llvm {<br>
   // This pass expands memcmp() to load/stores.<br>
   FunctionPass *createExpandMemCmpPass();<br>
<br>
+  /// Creates CFI Instruction Inserter pass. \see CFIInstrInserter.cpp<br>
+  FunctionPass *createCFIInstrInserter();<br>
+<br>
 } // End llvm namespace<br>
<br>
 #endif<br>
<br>
Modified: llvm/trunk/include/llvm/<wbr>CodeGen/TargetFrameLowering.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/TargetFrameLowering.h?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/CodeGen/<wbr>TargetFrameLowering.h?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/<wbr>CodeGen/TargetFrameLowering.h (original)<br>
+++ llvm/trunk/include/llvm/<wbr>CodeGen/TargetFrameLowering.h Tue Nov  7 06:40:27 2017<br>
@@ -341,6 +341,14 @@ public:<br>
           return false;<br>
     return true;<br>
   }<br>
+<br>
+  /// Return initial CFA offset value i.e. the one valid at the beginning of the<br>
+  /// function (before any stack operations).<br>
+  virtual int getInitialCFAOffset(const MachineFunction &MF) const;<br>
+<br>
+  /// Return initial CFA register value i.e. the one valid at the beginning of<br>
+  /// the function (before any stack operations).<br>
+  virtual unsigned getInitialCFARegister(const MachineFunction &MF) const;<br>
 };<br>
<br>
 } // End llvm namespace<br>
<br>
Modified: llvm/trunk/include/llvm/<wbr>InitializePasses.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/InitializePasses.h?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/InitializePasses.h?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/<wbr>InitializePasses.h (original)<br>
+++ llvm/trunk/include/llvm/<wbr>InitializePasses.h Tue Nov  7 06:40:27 2017<br>
@@ -86,6 +86,7 @@ void initializeCFGOnlyViewerLegacyP<wbr>assPa<br>
 void initializeCFGPrinterLegacyPass<wbr>Pass(PassRegistry&);<br>
 void initializeCFGSimplifyPassPass(<wbr>PassRegistry&);<br>
 void initializeCFGViewerLegacyPassP<wbr>ass(PassRegistry&);<br>
+void initializeCFIInstrInserterPass<wbr>(PassRegistry&);<br>
 void initializeCFLAndersAAWrapperPa<wbr>ssPass(PassRegistry&);<br>
 void initializeCFLSteensAAWrapperPa<wbr>ssPass(PassRegistry&);<br>
 void initializeCallGraphDOTPrinterP<wbr>ass(PassRegistry&);<br>
<br>
Modified: llvm/trunk/include/llvm/<wbr>Target/Target.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/Target.td?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/Target/Target.td?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/include/llvm/<wbr>Target/Target.td (original)<br>
+++ llvm/trunk/include/llvm/<wbr>Target/Target.td Tue Nov  7 06:40:27 2017<br>
@@ -902,7 +902,7 @@ def CFI_INSTRUCTION : Instruction {<br>
   let InOperandList = (ins i32imm:$id);<br>
   let AsmString = "";<br>
   let hasCtrlDep = 1;<br>
-  let isNotDuplicable = 1;<br>
+  let isNotDuplicable = 0;<br>
 }<br>
 def EH_LABEL : Instruction {<br>
   let OutOperandList = (outs);<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<wbr>BranchFolding.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/BranchFolding.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/BranchFolding.cpp?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>BranchFolding.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>BranchFolding.cpp Tue Nov  7 06:40:27 2017<br>
@@ -296,6 +296,11 @@ static unsigned HashEndOfMBB(const Machi<br>
   return HashMachineInstr(*I);<br>
 }<br>
<br>
+///  Whether MI should be counted as an instruction when calculating common tail.<br>
+static bool countsAsInstruction(const MachineInstr &MI) {<br>
+  return !(MI.isDebugValue() || MI.isCFIInstruction());<br>
+}<br>
+<br>
 /// ComputeCommonTailLength - Given two machine basic blocks, compute the number<br>
 /// of instructions they actually have in common together at their end.  Return<br>
 /// iterators for the first shared instruction in each block.<br>
@@ -310,26 +315,27 @@ static unsigned ComputeCommonTailLength(<br>
   while (I1 != MBB1->begin() && I2 != MBB2->begin()) {<br>
     --I1; --I2;<br>
     // Skip debugging pseudos; necessary to avoid changing the code.<br>
-    while (I1->isDebugValue()) {<br>
+    while (!countsAsInstruction(*I1)) {<br>
       if (I1==MBB1->begin()) {<br>
-        while (I2->isDebugValue()) {<br>
-          if (I2==MBB2->begin())<br>
+        while (!countsAsInstruction(*I2)) {<br>
+          if (I2==MBB2->begin()) {<br>
             // I1==DBG at begin; I2==DBG at begin<br>
-            return TailLen;<br>
+            goto SkipTopCFIAndReturn;<br>
+          }<br>
           --I2;<br>
         }<br>
         ++I2;<br>
         // I1==DBG at begin; I2==non-DBG, or first of DBGs not at begin<br>
-        return TailLen;<br>
+        goto SkipTopCFIAndReturn;<br>
       }<br>
       --I1;<br>
     }<br>
     // I1==first (untested) non-DBG preceding known match<br>
-    while (I2->isDebugValue()) {<br>
+    while (!countsAsInstruction(*I2)) {<br>
       if (I2==MBB2->begin()) {<br>
         ++I1;<br>
         // I1==non-DBG, or first of DBGs not at begin; I2==DBG at begin<br>
-        return TailLen;<br>
+        goto SkipTopCFIAndReturn;<br>
       }<br>
       --I2;<br>
     }<br>
@@ -368,6 +374,37 @@ static unsigned ComputeCommonTailLength(<br>
     }<br>
     ++I1;<br>
   }<br>
+<br>
+SkipTopCFIAndReturn:<br>
+  // Ensure that I1 and I2 do not point to a CFI_INSTRUCTION. This can happen if<br>
+  // I1 and I2 are non-identical when compared and then one or both of them ends<br>
+  // up pointing to a CFI instruction after being incremented. For example:<br>
+  /*<br>
+    BB1:<br>
+    ...<br>
+    INSTRUCTION_A<br>
+    ADD32ri8  <- last common instruction<br>
+    ...<br>
+    BB2:<br>
+    ...<br>
+    INSTRUCTION_B<br>
+    CFI_INSTRUCTION<br>
+    ADD32ri8  <- last common instruction<br>
+    ...<br>
+  */<br>
+  // When INSTRUCTION_A and INSTRUCTION_B are compared as not equal, after<br>
+  // incrementing the iterators, I1 will point to ADD, however I2 will point to<br>
+  // the CFI instruction. Later on, this leads to BB2 being 'hacked off' at the<br>
+  // wrong place (in ReplaceTailWithBranchTo()) which results in losing this CFI<br>
+  // instruction.<br>
+  while (I1 != MBB1->end() && I1->isCFIInstruction()) {<br>
+    ++I1;<br>
+  }<br>
+<br>
+  while (I2 != MBB2->end() && I2->isCFIInstruction()) {<br>
+    ++I2;<br>
+  }<br>
+<br>
   return TailLen;<br>
 }<br>
<br>
@@ -454,7 +491,7 @@ static unsigned EstimateRuntime(MachineB<br>
                                 MachineBasicBlock::iterator E) {<br>
   unsigned Time = 0;<br>
   for (; I != E; ++I) {<br>
-    if (I->isDebugValue())<br>
+    if (!countsAsInstruction(*I))<br>
       continue;<br>
     if (I->isCall())<br>
       Time += 10;<br>
@@ -814,12 +851,12 @@ mergeOperations(<wbr>MachineBasicBlock::itera<br>
     assert(MBBI != MBBIE && "Reached BB end within common tail length!");<br>
     (void)MBBIE;<br>
<br>
-    if (MBBI->isDebugValue()) {<br>
+    if (!countsAsInstruction(*MBBI)) {<br>
       ++MBBI;<br>
       continue;<br>
     }<br>
<br>
-    while ((MBBICommon != MBBIECommon) && MBBICommon->isDebugValue())<br>
+    while ((MBBICommon != MBBIECommon) && !countsAsInstruction(*<wbr>MBBICommon))<br>
       ++MBBICommon;<br>
<br>
     assert(MBBICommon != MBBIECommon &&<br>
@@ -859,7 +896,7 @@ void BranchFolder::<wbr>mergeCommonTails(unsi<br>
   }<br>
<br>
   for (auto &MI : *MBB) {<br>
-    if (MI.isDebugValue())<br>
+    if (!countsAsInstruction(MI))<br>
       continue;<br>
     DebugLoc DL = MI.getDebugLoc();<br>
     for (unsigned int i = 0 ; i < NextCommonInsts.size() ; i++) {<br>
@@ -869,7 +906,7 @@ void BranchFolder::<wbr>mergeCommonTails(unsi<br>
       auto &Pos = NextCommonInsts[i];<br>
       assert(Pos != SameTails[i].getBlock()->end() &&<br>
           "Reached BB end within common tail");<br>
-      while (Pos->isDebugValue()) {<br>
+      while (!countsAsInstruction(*Pos)) {<br>
         ++Pos;<br>
         assert(Pos != SameTails[i].getBlock()->end() &&<br>
             "Reached BB end within common tail");<br>
<br>
Added: llvm/trunk/lib/CodeGen/<wbr>CFIInstrInserter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CFIInstrInserter.cpp?rev=317579&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/CFIInstrInserter.cpp?<wbr>rev=317579&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>CFIInstrInserter.cpp (added)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>CFIInstrInserter.cpp Tue Nov  7 06:40:27 2017<br>
@@ -0,0 +1,319 @@<br>
+//===------ CFIInstrInserter.cpp - Insert additional CFI instructions -----===//<br>
+//<br>
+//                     The LLVM Compiler Infrastructure<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===------------------------<wbr>------------------------------<wbr>----------------===//<br>
+//<br>
+/// \file This pass verifies incoming and outgoing CFA information of basic<br>
+/// blocks. CFA information is information about offset and register set by CFI<br>
+/// directives, valid at the start and end of a basic block. This pass checks<br>
+/// that outgoing information of predecessors matches incoming information of<br>
+/// their successors. Then it checks if blocks have correct CFA calculation rule<br>
+/// set and inserts additional CFI instruction at their beginnings if they<br>
+/// don't. CFI instructions are inserted if basic blocks have incorrect offset<br>
+/// or register set by previous blocks, as a result of a non-linear layout of<br>
+/// blocks in a function.<br>
+//===------------------------<wbr>------------------------------<wbr>----------------===//<br>
+<br>
+#include "llvm/CodeGen/<wbr>MachineFunctionPass.h"<br>
+#include "llvm/CodeGen/<wbr>MachineInstrBuilder.h"<br>
+#include "llvm/CodeGen/<wbr>MachineModuleInfo.h"<br>
+#include "llvm/CodeGen/Passes.h"<br>
+#include "llvm/CodeGen/<wbr>TargetFrameLowering.h"<br>
+#include "llvm/Target/TargetInstrInfo.<wbr>h"<br>
+#include "llvm/Target/TargetMachine.h"<br>
+#include "llvm/Target/<wbr>TargetSubtargetInfo.h"<br>
+using namespace llvm;<br>
+<br>
+namespace {<br>
+class CFIInstrInserter : public MachineFunctionPass {<br>
+ public:<br>
+  static char ID;<br>
+<br>
+  CFIInstrInserter() : MachineFunctionPass(ID) {<br>
+    initializeCFIInstrInserterPass<wbr>(*PassRegistry::<wbr>getPassRegistry());<br>
+  }<br>
+<br>
+  void getAnalysisUsage(AnalysisUsage &AU) const override {<br>
+    AU.setPreservesAll();<br>
+    MachineFunctionPass::<wbr>getAnalysisUsage(AU);<br>
+  }<br>
+<br>
+  bool runOnMachineFunction(<wbr>MachineFunction &MF) override {<br>
+<br>
+    if (!MF.getMMI().hasDebugInfo() &&<br>
+        !MF.getFunction()-><wbr>needsUnwindTableEntry())<br>
+      return false;<br>
+<br>
+    MBBVector.resize(MF.<wbr>getNumBlockIDs());<br>
+    calculateCFAInfo(MF);<br>
+#ifndef NDEBUG<br>
+    unsigned ErrorNum = verify(MF);<br>
+    if (ErrorNum)<br>
+      report_fatal_error("Found " + Twine(ErrorNum) +<br>
+                         " in/out CFI information errors.");<br>
+#endif<br>
+    bool insertedCFI = insertCFIInstrs(MF);<br>
+    MBBVector.clear();<br>
+    return insertedCFI;<br>
+  }<br>
+<br>
+ private:<br>
+  struct MBBCFAInfo {<br>
+    MachineBasicBlock *MBB;<br>
+    /// Value of cfa offset valid at basic block entry.<br>
+    int IncomingCFAOffset = -1;<br>
+    /// Value of cfa offset valid at basic block exit.<br>
+    int OutgoingCFAOffset = -1;<br>
+    /// Value of cfa register valid at basic block entry.<br>
+    unsigned IncomingCFARegister = 0;<br>
+    /// Value of cfa register valid at basic block exit.<br>
+    unsigned OutgoingCFARegister = 0;<br>
+    /// If in/out cfa offset and register values for this block have already<br>
+    /// been set or not.<br>
+    bool Processed = false;<br>
+  };<br>
+<br>
+  /// Contains cfa offset and register values valid at entry and exit of basic<br>
+  /// blocks.<br>
+  SmallVector<struct MBBCFAInfo, 4> MBBVector;<br>
+<br>
+  /// Calculate cfa offset and register values valid at entry and exit for all<br>
+  /// basic blocks in a function.<br>
+  void calculateCFAInfo(<wbr>MachineFunction &MF);<br>
+  /// Calculate cfa offset and register values valid at basic block exit by<br>
+  /// checking the block for CFI instructions. Block's incoming CFA info remains<br>
+  /// the same.<br>
+  void calculateOutgoingCFAInfo(<wbr>struct MBBCFAInfo &MBBInfo);<br>
+  /// Update in/out cfa offset and register values for successors of the basic<br>
+  /// block.<br>
+  void updateSuccCFAInfo(struct MBBCFAInfo &MBBInfo);<br>
+<br>
+  /// Check if incoming CFA information of a basic block matches outgoing CFA<br>
+  /// information of the previous block. If it doesn't, insert CFI instruction<br>
+  /// at the beginning of the block that corrects the CFA calculation rule for<br>
+  /// that block.<br>
+  bool insertCFIInstrs(<wbr>MachineFunction &MF);<br>
+  /// Return the cfa offset value that should be set at the beginning of a MBB<br>
+  /// if needed. The negated value is needed when creating CFI instructions that<br>
+  /// set absolute offset.<br>
+  int getCorrectCFAOffset(<wbr>MachineBasicBlock *MBB) {<br>
+    return -MBBVector[MBB->getNumber()].<wbr>IncomingCFAOffset;<br>
+  }<br>
+<br>
+  void report(const char *msg, MachineBasicBlock &MBB);<br>
+  /// Go through each MBB in a function and check that outgoing offset and<br>
+  /// register of its predecessors match incoming offset and register of that<br>
+  /// MBB, as well as that incoming offset and register of its successors match<br>
+  /// outgoing offset and register of the MBB.<br>
+  unsigned verify(MachineFunction &MF);<br>
+};<br>
+}<br>
+<br>
+char CFIInstrInserter::ID = 0;<br>
+INITIALIZE_PASS(<wbr>CFIInstrInserter, "cfi-instr-inserter",<br>
+                "Check CFA info and insert CFI instructions if needed", false,<br>
+                false)<br>
+FunctionPass *llvm::createCFIInstrInserter(<wbr>) { return new CFIInstrInserter(); }<br>
+<br>
+void CFIInstrInserter::<wbr>calculateCFAInfo(<wbr>MachineFunction &MF) {<br>
+  // Initial CFA offset value i.e. the one valid at the beginning of the<br>
+  // function.<br>
+  int InitialOffset =<br>
+      MF.getSubtarget().<wbr>getFrameLowering()-><wbr>getInitialCFAOffset(MF);<br>
+  // Initial CFA register value i.e. the one valid at the beginning of the<br>
+  // function.<br>
+  unsigned InitialRegister =<br>
+      MF.getSubtarget().<wbr>getFrameLowering()-><wbr>getInitialCFARegister(MF);<br>
+<br>
+  // Initialize MBBMap.<br>
+  for (MachineBasicBlock &MBB : MF) {<br>
+    struct MBBCFAInfo MBBInfo;<br>
+    MBBInfo.MBB = &MBB;<br>
+    MBBInfo.IncomingCFAOffset = InitialOffset;<br>
+    MBBInfo.OutgoingCFAOffset = InitialOffset;<br>
+    MBBInfo.IncomingCFARegister = InitialRegister;<br>
+    MBBInfo.OutgoingCFARegister = InitialRegister;<br>
+    MBBVector[MBB.getNumber()] = MBBInfo;<br>
+  }<br>
+<br>
+  // Set in/out cfa info for all blocks in the function. This traversal is based<br>
+  // on the assumption that the first block in the function is the entry block<br>
+  // i.e. that it has initial cfa offset and register values as incoming CFA<br>
+  // information.<br>
+  for (MachineBasicBlock &MBB : MF) {<br>
+    if (MBBVector[MBB.getNumber()].<wbr>Processed) continue;<br>
+    calculateOutgoingCFAInfo(<wbr>MBBVector[MBB.getNumber()]);<br>
+    updateSuccCFAInfo(MBBVector[<wbr>MBB.getNumber()]);<br>
+  }<br>
+}<br>
+<br>
+void CFIInstrInserter::<wbr>calculateOutgoingCFAInfo(<wbr>struct MBBCFAInfo &MBBInfo) {<br>
+  // Outgoing cfa offset set by the block.<br>
+  int SetOffset = MBBInfo.IncomingCFAOffset;<br>
+  // Outgoing cfa register set by the block.<br>
+  unsigned SetRegister = MBBInfo.IncomingCFARegister;<br>
+  const std::vector<MCCFIInstruction> &Instrs =<br>
+      MBBInfo.MBB->getParent()-><wbr>getFrameInstructions();<br>
+<br>
+  // Determine cfa offset and register set by the block.<br>
+  for (MachineInstr &MI :<br>
+       make_range(MBBInfo.MBB->instr_<wbr>begin(), MBBInfo.MBB->instr_end())) {<br>
+    if (MI.isCFIInstruction()) {<br>
+      unsigned CFIIndex = MI.getOperand(0).getCFIIndex()<wbr>;<br>
+      const MCCFIInstruction &CFI = Instrs[CFIIndex];<br>
+      if (CFI.getOperation() == MCCFIInstruction::<wbr>OpDefCfaRegister) {<br>
+        SetRegister = CFI.getRegister();<br>
+      } else if (CFI.getOperation() == MCCFIInstruction::<wbr>OpDefCfaOffset) {<br>
+        SetOffset = CFI.getOffset();<br>
+      } else if (CFI.getOperation() == MCCFIInstruction::<wbr>OpAdjustCfaOffset) {<br>
+        SetOffset += CFI.getOffset();<br>
+      } else if (CFI.getOperation() == MCCFIInstruction::OpDefCfa) {<br>
+        SetRegister = CFI.getRegister();<br>
+        SetOffset = CFI.getOffset();<br>
+      }<br>
+    }<br>
+  }<br>
+<br>
+  MBBInfo.Processed = true;<br>
+<br>
+  // Update outgoing CFA info.<br>
+  MBBInfo.OutgoingCFAOffset = SetOffset;<br>
+  MBBInfo.OutgoingCFARegister = SetRegister;<br>
+}<br>
+<br>
+void CFIInstrInserter::<wbr>updateSuccCFAInfo(struct MBBCFAInfo &MBBInfo) {<br>
+<br>
+  for (MachineBasicBlock *Succ : MBBInfo.MBB->successors()) {<br>
+    struct MBBCFAInfo &SuccInfo = MBBVector[Succ->getNumber()];<br>
+    if (SuccInfo.Processed) continue;<br>
+    SuccInfo.IncomingCFAOffset = MBBInfo.OutgoingCFAOffset;<br>
+    SuccInfo.IncomingCFARegister = MBBInfo.OutgoingCFARegister;<br>
+    calculateOutgoingCFAInfo(<wbr>SuccInfo);<br>
+    updateSuccCFAInfo(SuccInfo);<br>
+  }<br>
+}<br>
+<br>
+bool CFIInstrInserter::<wbr>insertCFIInstrs(<wbr>MachineFunction &MF) {<br>
+<br>
+  const struct MBBCFAInfo *PrevMBBInfo = &MBBVector[MF.front().<wbr>getNumber()];<br>
+  const TargetInstrInfo *TII = MF.getSubtarget().<wbr>getInstrInfo();<br>
+  bool InsertedCFIInstr = false;<br>
+<br>
+  for (MachineBasicBlock &MBB : MF) {<br>
+    // Skip the first MBB in a function<br>
+    if (MBB.getNumber() == MF.front().getNumber()) continue;<br>
+<br>
+    const struct MBBCFAInfo& MBBInfo = MBBVector[MBB.getNumber()];<br>
+    auto MBBI = MBBInfo.MBB->begin();<br>
+    DebugLoc DL = MBBInfo.MBB->findDebugLoc(<wbr>MBBI);<br>
+<br>
+    if (PrevMBBInfo-><wbr>OutgoingCFAOffset != MBBInfo.IncomingCFAOffset) {<br>
+      // If both outgoing offset and register of a previous block don't match<br>
+      // incoming offset and register of this block, add a def_cfa instruction<br>
+      // with the correct offset and register for this block.<br>
+      if (PrevMBBInfo-><wbr>OutgoingCFARegister != MBBInfo.IncomingCFARegister) {<br>
+        unsigned CFIIndex = MF.addFrameInst(<wbr>MCCFIInstruction::<wbr>createDefCfa(<br>
+            nullptr, MBBInfo.IncomingCFARegister, getCorrectCFAOffset(&MBB)));<br>
+        BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_<wbr>INSTRUCTION))<br>
+            .addCFIIndex(CFIIndex);<br>
+        // If outgoing offset of a previous block doesn't match incoming offset<br>
+        // of this block, add a def_cfa_offset instruction with the correct<br>
+        // offset for this block.<br>
+      } else {<br>
+        unsigned CFIIndex =<br>
+            MF.addFrameInst(<wbr>MCCFIInstruction::<wbr>createDefCfaOffset(<br>
+                nullptr, getCorrectCFAOffset(&MBB)));<br>
+        BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_<wbr>INSTRUCTION))<br>
+            .addCFIIndex(CFIIndex);<br>
+      }<br>
+      InsertedCFIInstr = true;<br>
+      // If outgoing register of a previous block doesn't match incoming<br>
+      // register of this block, add a def_cfa_register instruction with the<br>
+      // correct register for this block.<br>
+    } else if (PrevMBBInfo-><wbr>OutgoingCFARegister != MBBInfo.IncomingCFARegister) {<br>
+      unsigned CFIIndex =<br>
+          MF.addFrameInst(<wbr>MCCFIInstruction::<wbr>createDefCfaRegister(<br>
+              nullptr, MBBInfo.IncomingCFARegister));<br>
+      BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_<wbr>INSTRUCTION))<br>
+          .addCFIIndex(CFIIndex);<br>
+      InsertedCFIInstr = true;<br>
+    }<br>
+    PrevMBBInfo = &MBBInfo;<br>
+  }<br>
+  return InsertedCFIInstr;<br>
+}<br>
+<br>
+void CFIInstrInserter::report(const char *msg, MachineBasicBlock &MBB) {<br>
+  errs() << '\n';<br>
+  errs() << "*** " << msg << " ***\n"<br>
+         << "- function:    " << MBB.getParent()->getName() << "\n";<br>
+  errs() << "- basic block: BB#" << MBB.getNumber() << ' ' << MBB.getName()<br>
+         << " (" << (const void *)&MBB << ')';<br>
+  errs() << '\n';<br>
+}<br>
+<br>
+unsigned CFIInstrInserter::verify(<wbr>MachineFunction &MF) {<br>
+  unsigned ErrorNum = 0;<br>
+  for (MachineBasicBlock &CurrMBB : MF) {<br>
+    const struct MBBCFAInfo& CurrMBBInfo = MBBVector[CurrMBB.getNumber()]<wbr>;<br>
+    for (MachineBasicBlock *Pred : CurrMBB.predecessors()) {<br>
+      const struct MBBCFAInfo& PredMBBInfo = MBBVector[Pred->getNumber()];<br>
+      // Check that outgoing offset values of predecessors match the incoming<br>
+      // offset value of CurrMBB<br>
+      if (PredMBBInfo.OutgoingCFAOffset != CurrMBBInfo.IncomingCFAOffset) {<br>
+        report("The outgoing offset of a predecessor is inconsistent.",<br>
+               CurrMBB);<br>
+        errs() << "Predecessor BB#" << Pred->getNumber()<br>
+               << " has outgoing offset (" << PredMBBInfo.OutgoingCFAOffset<br>
+               << "), while BB#" << CurrMBB.getNumber()<br>
+               << " has incoming offset (" << CurrMBBInfo.IncomingCFAOffset<br>
+               << ").\n";<br>
+        ErrorNum++;<br>
+      }<br>
+      // Check that outgoing register values of predecessors match the incoming<br>
+      // register value of CurrMBB<br>
+      if (PredMBBInfo.<wbr>OutgoingCFARegister != CurrMBBInfo.<wbr>IncomingCFARegister) {<br>
+        report("The outgoing register of a predecessor is inconsistent.",<br>
+               CurrMBB);<br>
+        errs() << "Predecessor BB#" << Pred->getNumber()<br>
+               << " has outgoing register (" << PredMBBInfo.<wbr>OutgoingCFARegister<br>
+               << "), while BB#" << CurrMBB.getNumber()<br>
+               << " has incoming register (" << CurrMBBInfo.<wbr>IncomingCFARegister<br>
+               << ").\n";<br>
+        ErrorNum++;<br>
+      }<br>
+    }<br>
+<br>
+    for (MachineBasicBlock *Succ : CurrMBB.successors()) {<br>
+      const struct MBBCFAInfo& SuccMBBInfo = MBBVector[Succ->getNumber()];<br>
+      // Check that incoming offset values of successors match the outgoing<br>
+      // offset value of CurrMBB<br>
+      if (SuccMBBInfo.IncomingCFAOffset != CurrMBBInfo.OutgoingCFAOffset) {<br>
+        report("The incoming offset of a successor is inconsistent.", CurrMBB);<br>
+        errs() << "Successor BB#" << Succ->getNumber()<br>
+               << " has incoming offset (" << SuccMBBInfo.IncomingCFAOffset<br>
+               << "), while BB#" << CurrMBB.getNumber()<br>
+               << " has outgoing offset (" << CurrMBBInfo.OutgoingCFAOffset<br>
+               << ").\n";<br>
+        ErrorNum++;<br>
+      }<br>
+      // Check that incoming register values of successors match the outgoing<br>
+      // register value of CurrMBB<br>
+      if (SuccMBBInfo.<wbr>IncomingCFARegister != CurrMBBInfo.<wbr>OutgoingCFARegister) {<br>
+        report("The incoming register of a successor is inconsistent.",<br>
+               CurrMBB);<br>
+        errs() << "Successor BB#" << Succ->getNumber()<br>
+               << " has incoming register (" << SuccMBBInfo.<wbr>IncomingCFARegister<br>
+               << "), while BB#" << CurrMBB.getNumber()<br>
+               << " has outgoing register (" << CurrMBBInfo.<wbr>OutgoingCFARegister<br>
+               << ").\n";<br>
+        ErrorNum++;<br>
+      }<br>
+    }<br>
+  }<br>
+  return ErrorNum;<br>
+}<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<wbr>CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CMakeLists.txt?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/CMakeLists.txt?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>CMakeLists.txt (original)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>CMakeLists.txt Tue Nov  7 06:40:27 2017<br>
@@ -9,6 +9,7 @@ add_llvm_library(LLVMCodeGen<br>
   BuiltinGCs.cpp<br>
   CalcSpillWeights.cpp<br>
   CallingConvLower.cpp<br>
+  CFIInstrInserter.cpp<br>
   CodeGen.cpp<br>
   CodeGenPrepare.cpp<br>
   CountingFunctionInserter.cpp<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<wbr>CodeGen.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGen.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/CodeGen.cpp?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>CodeGen.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>CodeGen.cpp Tue Nov  7 06:40:27 2017<br>
@@ -23,6 +23,7 @@ void llvm::initializeCodeGen(<wbr>PassRegistr<br>
   initializeAtomicExpandPass(<wbr>Registry);<br>
   initializeBranchFolderPassPass<wbr>(Registry);<br>
   initializeBranchRelaxationPass<wbr>(Registry);<br>
+  initializeCFIInstrInserterPass<wbr>(Registry);<br>
   initializeCodeGenPreparePass(<wbr>Registry);<br>
   initializeCountingFunctionInse<wbr>rterPass(Registry);<br>
   initializeDeadMachineInstructi<wbr>onElimPass(Registry);<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<wbr>MachineInstr.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstr.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/MachineInstr.cpp?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>MachineInstr.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>MachineInstr.cpp Tue Nov  7 06:40:27 2017<br>
@@ -320,8 +320,45 @@ bool MachineOperand::isIdenticalTo(<wbr>const<br>
   }<br>
   case MachineOperand::MO_MCSymbol:<br>
     return getMCSymbol() == Other.getMCSymbol();<br>
-  case MachineOperand::MO_CFIIndex:<br>
-    return getCFIIndex() == Other.getCFIIndex();<br>
+  case MachineOperand::MO_CFIIndex: {<br>
+    const MachineFunction *MF = getParent()->getParent()-><wbr>getParent();<br>
+    const MachineFunction *OtherMF =<br>
+        Other.getParent()->getParent()<wbr>->getParent();<br>
+    MCCFIInstruction Inst = MF->getFrameInstructions()[<wbr>getCFIIndex()];<br>
+    MCCFIInstruction OtherInst =<br>
+        OtherMF->getFrameInstructions(<wbr>)[Other.getCFIIndex()];<br>
+    MCCFIInstruction::OpType op = Inst.getOperation();<br>
+    if (op != OtherInst.getOperation()) return false;<br>
+    switch (op) {<br>
+    case MCCFIInstruction::OpDefCfa:<br>
+    case MCCFIInstruction::OpOffset:<br>
+    case MCCFIInstruction::OpRelOffset:<br>
+      if (Inst.getRegister() != OtherInst.getRegister()) return false;<br>
+      if (Inst.getOffset() != OtherInst.getOffset()) return false;<br>
+      break;<br>
+    case MCCFIInstruction::OpRestore:<br>
+    case MCCFIInstruction::OpUndefined:<br>
+    case MCCFIInstruction::OpSameValue:<br>
+    case MCCFIInstruction::<wbr>OpDefCfaRegister:<br>
+      if (Inst.getRegister() != OtherInst.getRegister()) return false;<br>
+      break;<br>
+    case MCCFIInstruction::OpRegister:<br>
+      if (Inst.getRegister() != OtherInst.getRegister()) return false;<br>
+      if (Inst.getRegister2() != OtherInst.getRegister2()) return false;<br>
+      break;<br>
+    case MCCFIInstruction::<wbr>OpDefCfaOffset:<br>
+    case MCCFIInstruction::<wbr>OpAdjustCfaOffset:<br>
+    case MCCFIInstruction::<wbr>OpGnuArgsSize:<br>
+      if (Inst.getOffset() != OtherInst.getOffset()) return false;<br>
+      break;<br>
+    case MCCFIInstruction::<wbr>OpRememberState:<br>
+    case MCCFIInstruction::<wbr>OpRestoreState:<br>
+    case MCCFIInstruction::OpEscape:<br>
+    case MCCFIInstruction::<wbr>OpWindowSave:<br>
+      break;<br>
+    }<br>
+    return true;<br>
+  }<br>
   case MachineOperand::MO_Metadata:<br>
     return getMetadata() == Other.getMetadata();<br>
   case MachineOperand::MO_<wbr>IntrinsicID:<br>
@@ -370,8 +407,13 @@ hash_code llvm::hash_value(const Machine<br>
     return hash_combine(MO.getType(), MO.getTargetFlags(), MO.getMetadata());<br>
   case MachineOperand::MO_MCSymbol:<br>
     return hash_combine(MO.getType(), MO.getTargetFlags(), MO.getMCSymbol());<br>
-  case MachineOperand::MO_CFIIndex:<br>
-    return hash_combine(MO.getType(), MO.getTargetFlags(), MO.getCFIIndex());<br>
+  case MachineOperand::MO_CFIIndex: {<br>
+    const MachineFunction *MF = MO.getParent()->getParent()-><wbr>getParent();<br>
+    MCCFIInstruction Inst = MF->getFrameInstructions()[MO.<wbr>getCFIIndex()];<br>
+    return hash_combine(MO.getType(), MO.getTargetFlags(), Inst.getOperation(),<br>
+                        Inst.getRegister(), Inst.getRegister2(),<br>
+                        Inst.getOffset());<br>
+  }<br>
   case MachineOperand::MO_<wbr>IntrinsicID:<br>
     return hash_combine(MO.getType(), MO.getTargetFlags(), MO.getIntrinsicID());<br>
   case MachineOperand::MO_Predicate:<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<wbr>TailDuplicator.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TailDuplicator.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/TailDuplicator.cpp?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>TailDuplicator.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>TailDuplicator.cpp Tue Nov  7 06:40:27 2017<br>
@@ -603,8 +603,8 @@ bool TailDuplicator::<wbr>shouldTailDuplicate<br>
     if (PreRegAlloc && MI.isCall())<br>
       return false;<br>
<br>
-    if (!MI.isPHI() && !MI.isDebugValue())<br>
-      InstrCount += 1;<br>
+    if (!MI.isPHI() && !MI.isMetaInstruction())<br>
+        InstrCount += 1;<br>
<br>
     if (InstrCount > MaxDuplicateCount)<br>
       return false;<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<wbr>TargetFrameLoweringImpl.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetFrameLoweringImpl.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/<wbr>TargetFrameLoweringImpl.cpp?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/CodeGen/<wbr>TargetFrameLoweringImpl.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<wbr>TargetFrameLoweringImpl.cpp Tue Nov  7 06:40:27 2017<br>
@@ -104,3 +104,12 @@ unsigned TargetFrameLowering::<wbr>getStackAl<br>
<br>
   return 0;<br>
 }<br>
+<br>
+int TargetFrameLowering::<wbr>getInitialCFAOffset(const MachineFunction &MF) const {<br>
+  llvm_unreachable("<wbr>getInitialCFAOffset() not implemented!");<br>
+}<br>
+<br>
+unsigned TargetFrameLowering::<wbr>getInitialCFARegister(const MachineFunction &MF)<br>
+    const {<br>
+  llvm_unreachable("<wbr>getInitialCFARegister() not implemented!");<br>
+}<br>
\ No newline at end of file<br>
<br>
Modified: llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Target/<wbr>X86/X86FrameLowering.cpp?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.cpp Tue Nov  7 06:40:27 2017<br>
@@ -1562,6 +1562,11 @@ void X86FrameLowering::<wbr>emitEpilogue(Mach<br>
   bool HasFP = hasFP(MF);<br>
   uint64_t NumBytes = 0;<br>
<br>
+  bool NeedsDwarfCFI =<br>
+      (!MF.getTarget().<wbr>getTargetTriple().isOSDarwin() &&<br>
+       !MF.getTarget().<wbr>getTargetTriple().isOSWindows(<wbr>)) &&<br>
+      (MF.getMMI().hasDebugInfo() || MF.getFunction()-><wbr>needsUnwindTableEntry());<br>
+<br>
   if (IsFunclet) {<br>
     assert(HasFP && "EH funclets without FP not yet implemented");<br>
     NumBytes = getWinEHFuncletFrameSize(MF);<br>
@@ -1584,6 +1589,13 @@ void X86FrameLowering::<wbr>emitEpilogue(Mach<br>
     BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::POP64r : X86::POP32r),<br>
             MachineFramePtr)<br>
         .setMIFlag(MachineInstr::<wbr>FrameDestroy);<br>
+    if (NeedsDwarfCFI) {<br>
+      unsigned DwarfStackPtr =<br>
+          TRI->getDwarfRegNum(Is64Bit ? X86::RSP : X86::ESP, true);<br>
+      BuildCFI(MBB, MBBI, DL, MCCFIInstruction::<wbr>createDefCfa(<br>
+                                  nullptr, DwarfStackPtr, -SlotSize));<br>
+      --MBBI;<br>
+    }<br>
   }<br>
<br>
   MachineBasicBlock::iterator FirstCSPop = MBBI;<br>
@@ -1647,6 +1659,11 @@ void X86FrameLowering::<wbr>emitEpilogue(Mach<br>
   } else if (NumBytes) {<br>
     // Adjust stack pointer back: ESP += numbytes.<br>
     emitSPUpdate(MBB, MBBI, NumBytes, /*InEpilogue=*/true);<br>
+    if (!hasFP(MF) && NeedsDwarfCFI) {<br>
+      // Define the current CFA rule to use the provided offset.<br>
+      BuildCFI(MBB, MBBI, DL, MCCFIInstruction::<wbr>createDefCfaOffset(<br>
+                                  nullptr, -CSSize - SlotSize));<br>
+    }<br>
     --MBBI;<br>
   }<br>
<br>
@@ -1659,6 +1676,23 @@ void X86FrameLowering::<wbr>emitEpilogue(Mach<br>
   if (NeedsWin64CFI && MF.hasWinCFI())<br>
     BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_Epilogue));<br>
<br>
+  if (!hasFP(MF) && NeedsDwarfCFI) {<br>
+    MBBI = FirstCSPop;<br>
+    int64_t Offset = -CSSize - SlotSize;<br>
+    // Mark callee-saved pop instruction.<br>
+    // Define the current CFA rule to use the provided offset.<br>
+    while (MBBI != MBB.end()) {<br>
+      MachineBasicBlock::iterator PI = MBBI;<br>
+      unsigned Opc = PI->getOpcode();<br>
+      ++MBBI;<br>
+      if (Opc == X86::POP32r || Opc == X86::POP64r) {<br>
+        Offset += SlotSize;<br>
+        BuildCFI(MBB, MBBI, DL,<br>
+                 MCCFIInstruction::<wbr>createDefCfaOffset(nullptr, Offset));<br>
+      }<br>
+    }<br>
+  }<br>
+<br>
   if (Terminator == MBB.end() || !isTailCallOpcode(Terminator-><wbr>getOpcode())) {<br>
     // Add the return addr area delta back since we are not tail calling.<br>
     int Offset = -1 * X86FI->getTCReturnAddrDelta();<br>
@@ -2840,6 +2874,15 @@ MachineBasicBlock::iterator X86FrameLowe<br>
   return MBBI;<br>
 }<br>
<br>
+int X86FrameLowering::<wbr>getInitialCFAOffset(const MachineFunction &MF) const {<br>
+  return TRI->getSlotSize();<br>
+}<br>
+<br>
+unsigned X86FrameLowering::<wbr>getInitialCFARegister(const MachineFunction &MF)<br>
+    const {<br>
+  return TRI->getDwarfRegNum(StackPtr, true);<br>
+}<br>
+<br>
 namespace {<br>
 // Struct used by orderFrameObjects to help sort the stack objects.<br>
 struct X86FrameSortingObject {<br>
<br>
Modified: llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.h?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Target/<wbr>X86/X86FrameLowering.h?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.h (original)<br>
+++ llvm/trunk/lib/Target/X86/<wbr>X86FrameLowering.h Tue Nov  7 06:40:27 2017<br>
@@ -168,6 +168,10 @@ public:<br>
                               MachineBasicBlock::iterator MBBI,<br>
                               const DebugLoc &DL, bool RestoreSP = false) const;<br>
<br>
+  int getInitialCFAOffset(const MachineFunction &MF) const override;<br>
+<br>
+  unsigned getInitialCFARegister(const MachineFunction &MF) const override;<br>
+<br>
 private:<br>
   uint64_t calculateMaxStackAlign(const MachineFunction &MF) const;<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/X86/<wbr>X86TargetMachine.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Target/<wbr>X86/X86TargetMachine.cpp?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Target/X86/<wbr>X86TargetMachine.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/<wbr>X86TargetMachine.cpp Tue Nov  7 06:40:27 2017<br>
@@ -436,4 +436,11 @@ void X86PassConfig::addPreEmitPass(<wbr>) {<br>
     addPass(createX86FixupLEAs());<br>
     addPass(<wbr>createX86EvexToVexInsts());<br>
   }<br>
+<br>
+  // Verify basic block incoming and outgoing cfa offset and register values and<br>
+  // correct CFA calculation rule where needed by inserting appropriate CFI<br>
+  // instructions.<br>
+  const Triple &TT = TM->getTargetTriple();<br>
+  if (!TT.isOSDarwin() && !TT.isOSWindows())<br>
+    addPass(<wbr>createCFIInstrInserter());<br>
 }<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>2009-03-16-PHIElimInLPad.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/2009-03-16-<wbr>PHIElimInLPad.ll?rev=317579&<wbr>r1=317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>2009-03-16-PHIElimInLPad.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>2009-03-16-PHIElimInLPad.ll Tue Nov  7 06:40:27 2017<br>
@@ -23,6 +23,7 @@ lpad:         ; preds = %cont, %entry<br>
 }<br>
<br>
 ; CHECK: lpad<br>
+; CHECK-NEXT: .cfi_def_cfa_offset 16<br>
 ; CHECK-NEXT: Ltmp<br>
<br>
 declare i32 @__gxx_personality_v0(...)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>2011-10-19-widen_vselect.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2011-10-19-widen_vselect.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/2011-10-19-widen_<wbr>vselect.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>2011-10-19-widen_vselect.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>2011-10-19-widen_vselect.ll Tue Nov  7 06:40:27 2017<br>
@@ -88,6 +88,7 @@ define void @full_test() {<br>
 ; X32-NEXT:    movss %xmm4, {{[0-9]+}}(%esp)<br>
 ; X32-NEXT:    movss %xmm0, {{[0-9]+}}(%esp)<br>
 ; X32-NEXT:    addl $60, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: full_test:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/add-scalar.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/add-scalar.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/GlobalISel/add-<wbr>scalar.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/add-scalar.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/add-scalar.ll Tue Nov  7 06:40:27 2017<br>
@@ -20,6 +20,7 @@ define i64 @test_add_i64(i64 %arg1, i64<br>
 ; X32-NEXT:    addl 8(%ebp), %eax<br>
 ; X32-NEXT:    adcl 12(%ebp), %edx<br>
 ; X32-NEXT:    popl %ebp<br>
+; X32-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; X32-NEXT:    retl<br>
   %ret = add i64 %arg1, %arg2<br>
   ret i64 %ret<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/brcond.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/brcond.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/GlobalISel/brcond.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/brcond.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/brcond.ll Tue Nov  7 06:40:27 2017<br>
@@ -36,6 +36,7 @@ define i32 @test_1(i32 %a, i32 %b, i32 %<br>
 ; X32-NEXT:    movl %eax, (%esp)<br>
 ; X32-NEXT:    movl (%esp), %eax<br>
 ; X32-NEXT:    popl %ecx<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 entry:<br>
   %retval = alloca i32, align 4<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/callingconv.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/callingconv.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/GlobalISel/<wbr>callingconv.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/callingconv.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/callingconv.ll Tue Nov  7 06:40:27 2017<br>
@@ -117,6 +117,7 @@ define <8 x i32> @test_v8i32_args(<8 x i<br>
 ; X32-NEXT:    movups 16(%esp), %xmm1<br>
 ; X32-NEXT:    movaps %xmm2, %xmm0<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_v8i32_args:<br>
@@ -135,6 +136,7 @@ define void @test_trivial_call() {<br>
 ; X32-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X32-NEXT:    calll trivial_callee<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_trivial_call:<br>
@@ -143,6 +145,7 @@ define void @test_trivial_call() {<br>
 ; X64-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X64-NEXT:    callq trivial_callee<br>
 ; X64-NEXT:    popq %rax<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   call void @trivial_callee()<br>
   ret void<br>
@@ -160,6 +163,7 @@ define void @test_simple_arg_call(i32 %i<br>
 ; X32-NEXT:    movl %eax, 4(%esp)<br>
 ; X32-NEXT:    calll simple_arg_callee<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_simple_arg_call:<br>
@@ -171,6 +175,7 @@ define void @test_simple_arg_call(i32 %i<br>
 ; X64-NEXT:    movl %eax, %esi<br>
 ; X64-NEXT:    callq simple_arg_callee<br>
 ; X64-NEXT:    popq %rax<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   call void @simple_arg_callee(i32 %in1, i32 %in0)<br>
   ret void<br>
@@ -193,6 +198,7 @@ define void @test_simple_arg8_call(i32 %<br>
 ; X32-NEXT:    movl %eax, 28(%esp)<br>
 ; X32-NEXT:    calll simple_arg8_callee<br>
 ; X32-NEXT:    addl $44, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_simple_arg8_call:<br>
@@ -208,6 +214,7 @@ define void @test_simple_arg8_call(i32 %<br>
 ; X64-NEXT:    movl %edi, %r9d<br>
 ; X64-NEXT:    callq simple_arg8_callee<br>
 ; X64-NEXT:    addq $24, %rsp<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   call void @simple_arg8_callee(i32 %in0, i32 %in0, i32 %in0, i32 %in0,i32 %in0, i32 %in0, i32 %in0, i32 %in0)<br>
   ret void<br>
@@ -224,6 +231,7 @@ define i32 @test_simple_return_callee()<br>
 ; X32-NEXT:    calll simple_return_callee<br>
 ; X32-NEXT:    addl %eax, %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_simple_return_callee:<br>
@@ -234,6 +242,7 @@ define i32 @test_simple_return_callee()<br>
 ; X64-NEXT:    callq simple_return_callee<br>
 ; X64-NEXT:    addl %eax, %eax<br>
 ; X64-NEXT:    popq %rcx<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   %call = call i32 @simple_return_callee(i32 5)<br>
   %r = add i32 %call, %call<br>
@@ -254,6 +263,7 @@ define <8 x i32> @test_split_return_call<br>
 ; X32-NEXT:    paddd (%esp), %xmm0 # 16-byte Folded Reload<br>
 ; X32-NEXT:    paddd 16(%esp), %xmm1 # 16-byte Folded Reload<br>
 ; X32-NEXT:    addl $44, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_split_return_callee:<br>
@@ -268,6 +278,7 @@ define <8 x i32> @test_split_return_call<br>
 ; X64-NEXT:    paddd (%rsp), %xmm0 # 16-byte Folded Reload<br>
 ; X64-NEXT:    paddd 16(%rsp), %xmm1 # 16-byte Folded Reload<br>
 ; X64-NEXT:    addq $40, %rsp<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   %call = call <8 x i32> @split_return_callee(<8 x i32> %arg2)<br>
   %r = add <8 x i32> %arg1, %call<br>
@@ -281,6 +292,7 @@ define void @test_indirect_call(void()*<br>
 ; X32-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X32-NEXT:    calll *16(%esp)<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_indirect_call:<br>
@@ -289,6 +301,7 @@ define void @test_indirect_call(void()*<br>
 ; X64-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X64-NEXT:    callq *%rdi<br>
 ; X64-NEXT:    popq %rax<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   call void %func()<br>
   ret void<br>
@@ -317,8 +330,11 @@ define void @test_abi_exts_call(i8* %add<br>
 ; X32-NEXT:    movl %esi, (%esp)<br>
 ; X32-NEXT:    calll take_char<br>
 ; X32-NEXT:    addl $4, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 12<br>
 ; X32-NEXT:    popl %esi<br>
+; X32-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X32-NEXT:    popl %ebx<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_abi_exts_call:<br>
@@ -335,6 +351,7 @@ define void @test_abi_exts_call(i8* %add<br>
 ; X64-NEXT:    movl %ebx, %edi<br>
 ; X64-NEXT:    callq take_char<br>
 ; X64-NEXT:    popq %rbx<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
   %val = load i8, i8* %addr<br>
   call void @take_char(i8 %val)<br>
@@ -357,6 +374,7 @@ define void @test_variadic_call_1(i8** %<br>
 ; X32-NEXT:    movl %ecx, 4(%esp)<br>
 ; X32-NEXT:    calll variadic_callee<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_variadic_call_1:<br>
@@ -368,6 +386,7 @@ define void @test_variadic_call_1(i8** %<br>
 ; X64-NEXT:    movb $0, %al<br>
 ; X64-NEXT:    callq variadic_callee<br>
 ; X64-NEXT:    popq %rax<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
<br>
   %addr = load i8*, i8** %addr_ptr<br>
@@ -393,6 +412,7 @@ define void @test_variadic_call_2(i8** %<br>
 ; X32-NEXT:    movl %ecx, 4(%eax)<br>
 ; X32-NEXT:    calll variadic_callee<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_variadic_call_2:<br>
@@ -405,6 +425,7 @@ define void @test_variadic_call_2(i8** %<br>
 ; X64-NEXT:    movq %rcx, %xmm0<br>
 ; X64-NEXT:    callq variadic_callee<br>
 ; X64-NEXT:    popq %rax<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
<br>
   %addr = load i8*, i8** %addr_ptr<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/frameIndex.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/frameIndex.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/GlobalISel/<wbr>frameIndex.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/frameIndex.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>GlobalISel/frameIndex.ll Tue Nov  7 06:40:27 2017<br>
@@ -18,6 +18,7 @@ define i32* @allocai32() {<br>
 ; X32-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X32-NEXT:    movl %esp, %eax<br>
 ; X32-NEXT:    popl %ecx<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X32ABI-LABEL: allocai32:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>O0-pipeline.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/O0-pipeline.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/O0-pipeline.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>O0-pipeline.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>O0-pipeline.ll Tue Nov  7 06:40:27 2017<br>
@@ -49,6 +49,7 @@<br>
 ; CHECK-NEXT:       X86 pseudo instruction expansion pass<br>
 ; CHECK-NEXT:       Analyze Machine Code For Garbage Collection<br>
 ; CHECK-NEXT:       X86 vzeroupper inserter<br>
+; CHECK-NEXT:       Check CFA info and insert CFI instructions if needed<br>
 ; CHECK-NEXT:       Contiguously Lay Out Funclets<br>
 ; CHECK-NEXT:       StackMap Liveness Analysis<br>
 ; CHECK-NEXT:       Live DEBUG_VALUE analysis<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>TruncAssertZext.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/TruncAssertZext.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/TruncAssertZext.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>TruncAssertZext.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>TruncAssertZext.ll Tue Nov  7 06:40:27 2017<br>
@@ -25,6 +25,7 @@ define i64 @main() {<br>
 ; CHECK-NEXT:    subq %rcx, %rax<br>
 ; CHECK-NEXT:    shrq $32, %rax<br>
 ; CHECK-NEXT:    popq %rcx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   %b = call i64 @foo()<br>
   %or = and i64 %b, 18446744069414584575 ; this is 0xffffffff000000ff<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512-mask-op.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-mask-op.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512-mask-op.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512-mask-op.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512-mask-op.ll Tue Nov  7 06:40:27 2017<br>
@@ -699,11 +699,13 @@ define <16 x i8> @test8(<16 x i32>%a, <1<br>
 ; AVX512BW-NEXT:    jg LBB17_1<br>
 ; AVX512BW-NEXT:  ## BB#2:<br>
 ; AVX512BW-NEXT:    vpcmpltud %zmm2, %zmm1, %k0<br>
-; AVX512BW-NEXT:    jmp LBB17_3<br>
+; AVX512BW-NEXT:    vpmovm2b   %k0, %zmm0<br>
+; AVX512BW-NEXT:    ## kill: %XMM0<def> %XMM0<kill> %ZMM0<kill><br>
+; AVX512BW-NEXT:    vzeroupper<br>
+; AVX512BW-NEXT:    retq<br>
 ; AVX512BW-NEXT:  LBB17_1:<br>
-; AVX512BW-NEXT:    vpcmpgtd %zmm2, %zmm0, %k0<br>
-; AVX512BW-NEXT:  LBB17_3:<br>
-; AVX512BW-NEXT:    vpmovm2b %k0, %zmm0<br>
+; AVX512BW-NEXT:    vpcmpgtd   %zmm2, %zmm0, %k0<br>
+; AVX512BW-NEXT:    vpmovm2b   %k0, %zmm0<br>
 ; AVX512BW-NEXT:    ## kill: %XMM0<def> %XMM0<kill> %ZMM0<kill><br>
 ; AVX512BW-NEXT:    vzeroupper<br>
 ; AVX512BW-NEXT:    retq<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-Mask.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-regcall-Mask.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512-regcall-<wbr>Mask.ll?rev=317579&r1=317578&<wbr>r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-Mask.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-Mask.ll Tue Nov  7 06:40:27 2017<br>
@@ -209,12 +209,18 @@ define i64 @caller_argv64i1() #0 {<br>
 ; LINUXOSX64-NEXT:    pushq %rax<br>
 ; LINUXOSX64-NEXT:    .cfi_adjust_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    callq test_argv64i1<br>
-; LINUXOSX64-NEXT:    addq $24, %rsp<br>
+; LINUXOSX64-NEXT:    addq $16, %rsp<br>
 ; LINUXOSX64-NEXT:    .cfi_adjust_cfa_offset -16<br>
+; LINUXOSX64-NEXT:    addq     $8, %rsp<br>
+; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 40<br>
 ; LINUXOSX64-NEXT:    popq %r12<br>
+; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 32<br>
 ; LINUXOSX64-NEXT:    popq %r13<br>
+; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 24<br>
 ; LINUXOSX64-NEXT:    popq %r14<br>
+; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %r15<br>
+; LINUXOSX64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %v0 = bitcast i64 4294967298 to <64 x i1><br>
@@ -287,6 +293,7 @@ define <64 x i1> @caller_retv64i1() #0 {<br>
 ; LINUXOSX64-NEXT:    kmovq %rax, %k0<br>
 ; LINUXOSX64-NEXT:    vpmovm2b %k0, %zmm0<br>
 ; LINUXOSX64-NEXT:    popq %rax<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %call = call x86_regcallcc <64 x i1> @test_retv64i1()<br>
@@ -397,7 +404,9 @@ define x86_regcallcc i32 @test_argv32i1(<br>
 ; LINUXOSX64-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm14 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm15 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    addq $128, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    vzeroupper<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
@@ -451,6 +460,7 @@ define i32 @caller_argv32i1() #0 {<br>
 ; LINUXOSX64-NEXT:    movl $1, %edx<br>
 ; LINUXOSX64-NEXT:    callq test_argv32i1<br>
 ; LINUXOSX64-NEXT:    popq %rcx<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %v0 = bitcast i32 1 to <32 x i1><br>
@@ -513,6 +523,7 @@ define i32 @caller_retv32i1() #0 {<br>
 ; LINUXOSX64-NEXT:    callq test_retv32i1<br>
 ; LINUXOSX64-NEXT:    incl %eax<br>
 ; LINUXOSX64-NEXT:    popq %rcx<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %call = call x86_regcallcc <32 x i1> @test_retv32i1()<br>
@@ -626,7 +637,9 @@ define x86_regcallcc i16 @test_argv16i1(<br>
 ; LINUXOSX64-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm14 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm15 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    addq $128, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %res = call i16 @test_argv16i1helper(<16 x i1> %x0, <16 x i1> %x1, <16 x i1> %x2)<br>
   ret i16 %res<br>
@@ -678,6 +691,7 @@ define i16 @caller_argv16i1() #0 {<br>
 ; LINUXOSX64-NEXT:    movl $1, %edx<br>
 ; LINUXOSX64-NEXT:    callq test_argv16i1<br>
 ; LINUXOSX64-NEXT:    popq %rcx<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %v0 = bitcast i16 1 to <16 x i1><br>
@@ -746,6 +760,7 @@ define i16 @caller_retv16i1() #0 {<br>
 ; LINUXOSX64-NEXT:    incl %eax<br>
 ; LINUXOSX64-NEXT:    # kill: %AX<def> %AX<kill> %EAX<kill><br>
 ; LINUXOSX64-NEXT:    popq %rcx<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %call = call x86_regcallcc <16 x i1> @test_retv16i1()<br>
@@ -859,7 +874,9 @@ define x86_regcallcc i8 @test_argv8i1(<8<br>
 ; LINUXOSX64-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm14 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm15 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    addq $128, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %res = call i8 @test_argv8i1helper(<8 x i1> %x0, <8 x i1> %x1, <8 x i1> %x2)<br>
   ret i8 %res<br>
@@ -911,6 +928,7 @@ define i8 @caller_argv8i1() #0 {<br>
 ; LINUXOSX64-NEXT:    movl $1, %edx<br>
 ; LINUXOSX64-NEXT:    callq test_argv8i1<br>
 ; LINUXOSX64-NEXT:    popq %rcx<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %v0 = bitcast i8 1 to <8 x i1><br>
@@ -984,9 +1002,11 @@ define <8 x i1> @caller_retv8i1() #0 {<br>
 ; LINUXOSX64-NEXT:    vpmovm2w %k0, %zmm0<br>
 ; LINUXOSX64-NEXT:    # kill: %XMM0<def> %XMM0<kill> %ZMM0<kill><br>
 ; LINUXOSX64-NEXT:    popq %rax<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    vzeroupper<br>
 ; LINUXOSX64-NEXT:    retq<br>
 entry:<br>
   %call = call x86_regcallcc <8 x i1> @test_retv8i1()<br>
   ret <8 x i1> %call<br>
 }<br>
+<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-NoMask.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512-regcall-<wbr>NoMask.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-NoMask.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512-regcall-NoMask.ll Tue Nov  7 06:40:27 2017<br>
@@ -63,6 +63,7 @@ define x86_regcallcc i1 @test_CallargRet<br>
 ; LINUXOSX64-NEXT:    callq test_argReti1<br>
 ; LINUXOSX64-NEXT:    incb %al<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = add i1 %a, 1<br>
   %c = call x86_regcallcc i1 @test_argReti1(i1 %b)<br>
@@ -130,6 +131,7 @@ define x86_regcallcc i8 @test_CallargRet<br>
 ; LINUXOSX64-NEXT:    callq test_argReti8<br>
 ; LINUXOSX64-NEXT:    incb %al<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = add i8 %a, 1<br>
   %c = call x86_regcallcc i8 @test_argReti8(i8 %b)<br>
@@ -200,6 +202,7 @@ define x86_regcallcc i16 @test_CallargRe<br>
 ; LINUXOSX64-NEXT:    incl %eax<br>
 ; LINUXOSX64-NEXT:    # kill: %AX<def> %AX<kill> %EAX<kill><br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = add i16 %a, 1<br>
   %c = call x86_regcallcc i16 @test_argReti16(i16 %b)<br>
@@ -261,6 +264,7 @@ define x86_regcallcc i32 @test_CallargRe<br>
 ; LINUXOSX64-NEXT:    callq test_argReti32<br>
 ; LINUXOSX64-NEXT:    incl %eax<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = add i32 %a, 1<br>
   %c = call x86_regcallcc i32 @test_argReti32(i32 %b)<br>
@@ -327,6 +331,7 @@ define x86_regcallcc i64 @test_CallargRe<br>
 ; LINUXOSX64-NEXT:    callq test_argReti64<br>
 ; LINUXOSX64-NEXT:    incq %rax<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = add i64 %a, 1<br>
   %c = call x86_regcallcc i64 @test_argReti64(i64 %b)<br>
@@ -406,7 +411,9 @@ define x86_regcallcc float @test_Callarg<br>
 ; LINUXOSX64-NEXT:    vaddss %xmm8, %xmm0, %xmm0<br>
 ; LINUXOSX64-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    addq $16, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = fadd float 1.0, %a<br>
   %c = call x86_regcallcc float @test_argRetFloat(float %b)<br>
@@ -486,7 +493,9 @@ define x86_regcallcc double @test_Callar<br>
 ; LINUXOSX64-NEXT:    vaddsd %xmm8, %xmm0, %xmm0<br>
 ; LINUXOSX64-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    addq $16, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = fadd double 1.0, %a<br>
   %c = call x86_regcallcc double @test_argRetDouble(double %b)<br>
@@ -548,6 +557,7 @@ define x86_regcallcc x86_fp80 @test_Call<br>
 ; LINUXOSX64-NEXT:    callq test_argRetf80<br>
 ; LINUXOSX64-NEXT:    fadd %st(0), %st(0)<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = fadd x86_fp80 %a, %a<br>
   %c = call x86_regcallcc x86_fp80 @test_argRetf80(x86_fp80 %b)<br>
@@ -611,6 +621,7 @@ define x86_regcallcc [4 x i32]* @test_Ca<br>
 ; LINUXOSX64-NEXT:    callq test_argRetPointer<br>
 ; LINUXOSX64-NEXT:    incl %eax<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = ptrtoint [4 x i32]* %a to i32<br>
   %c = add i32 %b, 1<br>
@@ -694,7 +705,9 @@ define x86_regcallcc <4 x i32> @test_Cal<br>
 ; LINUXOSX64-NEXT:    vmovdqa32 %xmm8, %xmm0 {%k1}<br>
 ; LINUXOSX64-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload<br>
 ; LINUXOSX64-NEXT:    addq $16, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = call x86_regcallcc <4 x i32> @test_argRet128Vector(<4 x i32> %a, <4 x i32> %a)<br>
   %c = select <4 x i1> undef , <4 x i32> %a, <4 x i32> %b<br>
@@ -768,7 +781,9 @@ define x86_regcallcc <8 x i32> @test_Cal<br>
 ; LINUXOSX64-NEXT:    vmovdqu (%rsp), %ymm1 # 32-byte Reload<br>
 ; LINUXOSX64-NEXT:    vmovdqa32 %ymm1, %ymm0 {%k1}<br>
 ; LINUXOSX64-NEXT:    addq $48, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = call x86_regcallcc <8 x i32> @test_argRet256Vector(<8 x i32> %a, <8 x i32> %a)<br>
   %c = select <8 x i1> undef , <8 x i32> %a, <8 x i32> %b<br>
@@ -842,7 +857,9 @@ define x86_regcallcc <16 x i32> @test_Ca<br>
 ; LINUXOSX64-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload<br>
 ; LINUXOSX64-NEXT:    vmovdqa32 %zmm1, %zmm0 {%k1}<br>
 ; LINUXOSX64-NEXT:    addq $112, %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 16<br>
 ; LINUXOSX64-NEXT:    popq %rsp<br>
+; LINUXOSX64-NEXT:   .cfi_def_cfa_offset 8<br>
 ; LINUXOSX64-NEXT:    retq<br>
   %b = call x86_regcallcc <16 x i32> @test_argRet512Vector(<16 x i32> %a, <16 x i32> %a)<br>
   %c = select <16 x i1> undef , <16 x i32> %a, <16 x i32> %b<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512-schedule.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-schedule.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512-schedule.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512-schedule.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512-schedule.ll Tue Nov  7 06:40:27 2017<br>
@@ -8839,6 +8839,7 @@ define <16 x float> @broadcast_ss_spill(<br>
 ; GENERIC-NEXT:    callq func_f32<br>
 ; GENERIC-NEXT:    vbroadcastss (%rsp), %zmm0 # 16-byte Folded Reload<br>
 ; GENERIC-NEXT:    addq $24, %rsp # sched: [1:0.33]<br>
+; GENERIC-NEXT:    .cfi_def_cfa_offset 8<br>
 ; GENERIC-NEXT:    retq # sched: [1:1.00]<br>
 ;<br>
 ; SKX-LABEL: broadcast_ss_spill:<br>
@@ -8852,6 +8853,7 @@ define <16 x float> @broadcast_ss_spill(<br>
 ; SKX-NEXT:    vbroadcastss (%rsp), %zmm0 # 16-byte Folded Reload sched: [8:0.50]<br>
 ; SKX-NEXT:    # sched: [8:0.50]<br>
 ; SKX-NEXT:    addq $24, %rsp # sched: [1:0.25]<br>
+; SKX-NEXT:    .cfi_def_cfa_offset 8<br>
 ; SKX-NEXT:    retq # sched: [7:1.00]<br>
   %a  = fadd float %x, %x<br>
   call void @func_f32(float %a)<br>
@@ -8872,6 +8874,7 @@ define <8 x double> @broadcast_sd_spill(<br>
 ; GENERIC-NEXT:    callq func_f64<br>
 ; GENERIC-NEXT:    vbroadcastsd (%rsp), %zmm0 # 16-byte Folded Reload<br>
 ; GENERIC-NEXT:    addq $24, %rsp # sched: [1:0.33]<br>
+; GENERIC-NEXT:    .cfi_def_cfa_offset 8<br>
 ; GENERIC-NEXT:    retq # sched: [1:1.00]<br>
 ;<br>
 ; SKX-LABEL: broadcast_sd_spill:<br>
@@ -8885,6 +8888,7 @@ define <8 x double> @broadcast_sd_spill(<br>
 ; SKX-NEXT:    vbroadcastsd (%rsp), %zmm0 # 16-byte Folded Reload sched: [8:0.50]<br>
 ; SKX-NEXT:    # sched: [8:0.50]<br>
 ; SKX-NEXT:    addq $24, %rsp # sched: [1:0.25]<br>
+; SKX-NEXT:    .cfi_def_cfa_offset 8<br>
 ; SKX-NEXT:    retq # sched: [7:1.00]<br>
   %a  = fadd double %x, %x<br>
   call void @func_f64(double %a)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512-select.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-select.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512-select.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512-select.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512-select.ll Tue Nov  7 06:40:27 2017<br>
@@ -115,6 +115,7 @@ define <16 x double> @select04(<16 x dou<br>
 ; X86-NEXT:    vmovaps 8(%ebp), %zmm1<br>
 ; X86-NEXT:    movl %ebp, %esp<br>
 ; X86-NEXT:    popl %ebp<br>
+; X86-NEXT:            .cfi_def_cfa %esp, 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: select04:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512-vbroadcast.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-vbroadcast.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512-vbroadcast.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512-vbroadcast.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512-vbroadcast.ll Tue Nov  7 06:40:27 2017<br>
@@ -413,6 +413,7 @@ define <16 x float> @broadcast_ss_spill(<br>
 ; ALL-NEXT:    callq func_f32<br>
 ; ALL-NEXT:    vbroadcastss (%rsp), %zmm0 # 16-byte Folded Reload<br>
 ; ALL-NEXT:    addq $24, %rsp<br>
+; ALL-NEXT:   .cfi_def_cfa_offset 8<br>
 ; ALL-NEXT:    retq<br>
   %a  = fadd float %x, %x<br>
   call void @func_f32(float %a)<br>
@@ -432,6 +433,7 @@ define <8 x double> @broadcast_sd_spill(<br>
 ; ALL-NEXT:    callq func_f64<br>
 ; ALL-NEXT:    vbroadcastsd (%rsp), %zmm0 # 16-byte Folded Reload<br>
 ; ALL-NEXT:    addq $24, %rsp<br>
+; ALL-NEXT:   .cfi_def_cfa_offset 8<br>
 ; ALL-NEXT:    retq<br>
   %a  = fadd double %x, %x<br>
   call void @func_f64(double %a)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-fast-isel.<wbr>ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics-fast-isel.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512bw-<wbr>intrinsics-fast-isel.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-fast-isel.<wbr>ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-fast-isel.<wbr>ll Tue Nov  7 06:40:27 2017<br>
@@ -717,6 +717,7 @@ define <8 x i64> @test_mm512_mask_set1_e<br>
 ; X32-NEXT:    vpbroadcastb %eax, %zmm3 {%k1}<br>
 ; X32-NEXT:    vmovdqa64 %zmm3, %zmm0<br>
 ; X32-NEXT:    popl %ebx<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm512_mask_set1_epi8:<br>
@@ -1444,6 +1445,7 @@ define <8 x i64> @test_mm512_maskz_set1_<br>
 ; X32-NEXT:    korq %k0, %k1, %k1<br>
 ; X32-NEXT:    vpbroadcastb %eax, %zmm0 {%k1} {z}<br>
 ; X32-NEXT:    popl %ebx<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm512_maskz_set1_epi8:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-upgrade.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512bw-<wbr>intrinsics-upgrade.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-upgrade.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics-upgrade.ll Tue Nov  7 06:40:27 2017<br>
@@ -355,6 +355,7 @@ define i64 @test_pcmpeq_b(<64 x i8> %a,<br>
 ; AVX512F-32-NEXT:    movl (%esp), %eax<br>
 ; AVX512F-32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $12, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.mask.pcmpeq.<wbr>b.512(<64 x i8> %a, <64 x i8> %b, i64 -1)<br>
@@ -380,6 +381,7 @@ define i64 @test_mask_pcmpeq_b(<64 x i8><br>
 ; AVX512F-32-NEXT:    movl (%esp), %eax<br>
 ; AVX512F-32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $12, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.mask.pcmpeq.<wbr>b.512(<64 x i8> %a, <64 x i8> %b, i64 %mask)<br>
@@ -445,6 +447,7 @@ define i64 @test_pcmpgt_b(<64 x i8> %a,<br>
 ; AVX512F-32-NEXT:    movl (%esp), %eax<br>
 ; AVX512F-32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $12, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.mask.pcmpgt.<wbr>b.512(<64 x i8> %a, <64 x i8> %b, i64 -1)<br>
@@ -470,6 +473,7 @@ define i64 @test_mask_pcmpgt_b(<64 x i8><br>
 ; AVX512F-32-NEXT:    movl (%esp), %eax<br>
 ; AVX512F-32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $12, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.mask.pcmpgt.<wbr>b.512(<64 x i8> %a, <64 x i8> %b, i64 %mask)<br>
@@ -1702,6 +1706,7 @@ define i64 @test_cmp_b_512(<64 x i8> %a0<br>
 ; AVX512F-32-NEXT:    addl {{[0-9]+}}(%esp), %eax<br>
 ; AVX512F-32-NEXT:    adcl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $60, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res0 = call i64 @llvm.x86.avx512.mask.cmp.b.<wbr>512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 -1)<br>
@@ -2503,8 +2508,11 @@ define i64 @test_mask_cmp_b_512(<64 x i8<br>
 ; AVX512F-32-NEXT:    addl %esi, %eax<br>
 ; AVX512F-32-NEXT:    adcl %ecx, %edx<br>
 ; AVX512F-32-NEXT:    addl $60, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 12<br>
 ; AVX512F-32-NEXT:    popl %esi<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 8<br>
 ; AVX512F-32-NEXT:    popl %ebx<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res0 = call i64 @llvm.x86.avx512.mask.cmp.b.<wbr>512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 %mask)<br>
@@ -2586,6 +2594,7 @@ define i64 @test_ucmp_b_512(<64 x i8> %a<br>
 ; AVX512F-32-NEXT:    addl {{[0-9]+}}(%esp), %eax<br>
 ; AVX512F-32-NEXT:    adcl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $60, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res0 = call i64 @llvm.x86.avx512.mask.ucmp.b.<wbr>512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 -1)<br>
@@ -3387,8 +3396,11 @@ define i64 @test_mask_x86_avx512_ucmp_b_<br>
 ; AVX512F-32-NEXT:    addl %esi, %eax<br>
 ; AVX512F-32-NEXT:    adcl %ecx, %edx<br>
 ; AVX512F-32-NEXT:    addl $60, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 12<br>
 ; AVX512F-32-NEXT:    popl %esi<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 8<br>
 ; AVX512F-32-NEXT:    popl %ebx<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    vzeroupper<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res0 = call i64 @llvm.x86.avx512.mask.ucmp.b.<wbr>512(<64 x i8> %a0, <64 x i8> %a1, i32 0, i64 %mask)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512bw-<wbr>intrinsics.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512bw-intrinsics.ll Tue Nov  7 06:40:27 2017<br>
@@ -1499,6 +1499,7 @@ define i64@test_int_x86_avx512_<wbr>kunpck_qd<br>
 ; AVX512F-32-NEXT:    movl (%esp), %eax<br>
 ; AVX512F-32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $12, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.kunpck.dq(i64 %x0, i64 %x1)<br>
   ret i64 %res<br>
@@ -1522,6 +1523,7 @@ define i64@test_int_x86_avx512_<wbr>cvtb2mask<br>
 ; AVX512F-32-NEXT:    movl (%esp), %eax<br>
 ; AVX512F-32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $12, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    retl<br>
     %res = call i64 @llvm.x86.avx512.cvtb2mask.<wbr>512(<64 x i8> %x0)<br>
     ret i64 %res<br>
@@ -1712,6 +1714,7 @@ define i64@test_int_x86_avx512_<wbr>ptestm_b_<br>
 ; AVX512F-32-NEXT:    addl {{[0-9]+}}(%esp), %eax<br>
 ; AVX512F-32-NEXT:    adcxl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $20, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.ptestm.b.512(<wbr><64 x i8> %x0, <64 x i8> %x1, i64 %x2)<br>
   %res1 = call i64 @llvm.x86.avx512.ptestm.b.512(<wbr><64 x i8> %x0, <64 x i8> %x1, i64-1)<br>
@@ -1776,6 +1779,7 @@ define i64@test_int_x86_avx512_<wbr>ptestnm_b<br>
 ; AVX512F-32-NEXT:    addl {{[0-9]+}}(%esp), %eax<br>
 ; AVX512F-32-NEXT:    adcxl {{[0-9]+}}(%esp), %edx<br>
 ; AVX512F-32-NEXT:    addl $20, %esp<br>
+; AVX512F-32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; AVX512F-32-NEXT:    retl<br>
   %res = call i64 @llvm.x86.avx512.ptestnm.b.<wbr>512(<64 x i8> %x0, <64 x i8> %x1, i64 %x2)<br>
   %res1 = call i64 @llvm.x86.avx512.ptestnm.b.<wbr>512(<64 x i8> %x0, <64 x i8> %x1, i64-1)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-intrinsics-fast-isel.<wbr>ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512vl-intrinsics-fast-isel.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512vl-<wbr>intrinsics-fast-isel.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-intrinsics-fast-isel.<wbr>ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-intrinsics-fast-isel.<wbr>ll Tue Nov  7 06:40:27 2017<br>
@@ -233,6 +233,7 @@ define <2 x i64> @test_mm_mask_broadcast<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpbroadcastd %xmm1, %xmm0 {%k1}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_broadcastd_epi32:<br>
@@ -265,6 +266,7 @@ define <2 x i64> @test_mm_maskz_broadcas<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpbroadcastd %xmm0, %xmm0 {%k1} {z}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_broadcastd_<wbr>epi32:<br>
@@ -369,6 +371,7 @@ define <2 x i64> @test_mm_mask_broadcast<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpbroadcastq %xmm1, %xmm0 {%k1}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_broadcastq_epi64:<br>
@@ -398,6 +401,7 @@ define <2 x i64> @test_mm_maskz_broadcas<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpbroadcastq %xmm0, %xmm0 {%k1} {z}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_broadcastq_<wbr>epi64:<br>
@@ -441,6 +445,7 @@ define <4 x i64> @test_mm256_mask_broadc<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpbroadcastq %xmm1, %ymm0 {%k1}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_mask_broadcastq_<wbr>epi64:<br>
@@ -470,6 +475,7 @@ define <4 x i64> @test_mm256_maskz_broad<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpbroadcastq %xmm0, %ymm0 {%k1} {z}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_maskz_broadcastq_<wbr>epi64:<br>
@@ -513,6 +519,7 @@ define <2 x double> @test_mm_mask_broadc<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovddup {{.*#+}} xmm0 {%k1} = xmm1[0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_broadcastsd_pd:<br>
@@ -542,6 +549,7 @@ define <2 x double> @test_mm_maskz_broad<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovddup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_broadcastsd_pd:<br>
@@ -585,6 +593,7 @@ define <4 x double> @test_mm256_mask_bro<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vbroadcastsd %xmm1, %ymm0 {%k1}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_mask_broadcastsd_<wbr>pd:<br>
@@ -614,6 +623,7 @@ define <4 x double> @test_mm256_maskz_br<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vbroadcastsd %xmm0, %ymm0 {%k1} {z}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_maskz_broadcastsd_<wbr>pd:<br>
@@ -657,6 +667,7 @@ define <4 x float> @test_mm_mask_broadca<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vbroadcastss %xmm1, %xmm0 {%k1}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_broadcastss_ps:<br>
@@ -686,6 +697,7 @@ define <4 x float> @test_mm_maskz_broadc<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vbroadcastss %xmm0, %xmm0 {%k1} {z}<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_broadcastss_ps:<br>
@@ -781,6 +793,7 @@ define <2 x double> @test_mm_mask_movddu<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovddup {{.*#+}} xmm0 {%k1} = xmm1[0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_movddup_pd:<br>
@@ -810,6 +823,7 @@ define <2 x double> @test_mm_maskz_movdd<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovddup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_movddup_pd:<br>
@@ -853,6 +867,7 @@ define <4 x double> @test_mm256_mask_mov<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovddup {{.*#+}} ymm0 {%k1} = ymm1[0,0,2,2]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_mask_movddup_pd:<br>
@@ -882,6 +897,7 @@ define <4 x double> @test_mm256_maskz_mo<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovddup {{.*#+}} ymm0 {%k1} {z} = ymm0[0,0,2,2]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_maskz_movddup_pd:<br>
@@ -925,6 +941,7 @@ define <4 x float> @test_mm_mask_movehdu<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovshdup {{.*#+}} xmm0 {%k1} = xmm1[1,1,3,3]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_movehdup_ps:<br>
@@ -954,6 +971,7 @@ define <4 x float> @test_mm_maskz_movehd<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovshdup {{.*#+}} xmm0 {%k1} {z} = xmm0[1,1,3,3]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_movehdup_ps:<br>
@@ -1049,6 +1067,7 @@ define <4 x float> @test_mm_mask_moveldu<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovsldup {{.*#+}} xmm0 {%k1} = xmm1[0,0,2,2]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_moveldup_ps:<br>
@@ -1078,6 +1097,7 @@ define <4 x float> @test_mm_maskz_moveld<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vmovsldup {{.*#+}} xmm0 {%k1} {z} = xmm0[0,0,2,2]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_moveldup_ps:<br>
@@ -1173,6 +1193,7 @@ define <4 x i64> @test_mm256_mask_permut<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpermq {{.*#+}} ymm0 {%k1} = ymm1[1,0,0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_mask_permutex_<wbr>epi64:<br>
@@ -1202,6 +1223,7 @@ define <4 x i64> @test_mm256_maskz_permu<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpermq {{.*#+}} ymm0 {%k1} {z} = ymm0[1,0,0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_maskz_permutex_<wbr>epi64:<br>
@@ -1245,6 +1267,7 @@ define <4 x double> @test_mm256_mask_per<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpermpd {{.*#+}} ymm0 {%k1} = ymm1[1,0,0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_mask_permutex_pd:<br>
@@ -1274,6 +1297,7 @@ define <4 x double> @test_mm256_maskz_pe<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vpermpd {{.*#+}} ymm0 {%k1} {z} = ymm0[1,0,0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_maskz_permutex_pd:<br>
@@ -1317,6 +1341,7 @@ define <2 x double> @test_mm_mask_shuffl<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vunpckhpd {{.*#+}} xmm0 {%k1} = xmm1[1],xmm2[1]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_shuffle_pd:<br>
@@ -1346,6 +1371,7 @@ define <2 x double> @test_mm_maskz_shuff<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vunpckhpd {{.*#+}} xmm0 {%k1} {z} = xmm0[1],xmm1[1]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_shuffle_pd:<br>
@@ -1389,6 +1415,7 @@ define <4 x double> @test_mm256_mask_shu<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vshufpd {{.*#+}} ymm0 {%k1} = ymm1[1],ymm2[1],ymm1[2],ymm2[<wbr>2]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_mask_shuffle_pd:<br>
@@ -1418,6 +1445,7 @@ define <4 x double> @test_mm256_maskz_sh<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vshufpd {{.*#+}} ymm0 {%k1} {z} = ymm0[1],ymm1[1],ymm0[2],ymm1[<wbr>2]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm256_maskz_shuffle_pd:<br>
@@ -1461,6 +1489,7 @@ define <4 x float> @test_mm_mask_shuffle<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vshufps {{.*#+}} xmm0 {%k1} = xmm1[0,1],xmm2[0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_mask_shuffle_ps:<br>
@@ -1490,6 +1519,7 @@ define <4 x float> @test_mm_maskz_shuffl<br>
 ; X32-NEXT:    kmovw %eax, %k1<br>
 ; X32-NEXT:    vshufps {{.*#+}} xmm0 {%k1} {z} = xmm0[0,1],xmm1[0,0]<br>
 ; X32-NEXT:    popl %eax<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test_mm_maskz_shuffle_ps:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vbroadcast.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512vl-vbroadcast.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512vl-<wbr>vbroadcast.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vbroadcast.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vbroadcast.ll Tue Nov  7 06:40:27 2017<br>
@@ -12,6 +12,7 @@ define <8 x float> @_256_broadcast_ss_sp<br>
 ; CHECK-NEXT:    callq func_f32<br>
 ; CHECK-NEXT:    vbroadcastss (%rsp), %ymm0 # 16-byte Folded Reload<br>
 ; CHECK-NEXT:    addq $24, %rsp<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   %a  = fadd float %x, %x<br>
   call void @func_f32(float %a)<br>
@@ -30,6 +31,7 @@ define <4 x float> @_128_broadcast_ss_sp<br>
 ; CHECK-NEXT:    callq func_f32<br>
 ; CHECK-NEXT:    vbroadcastss (%rsp), %xmm0 # 16-byte Folded Reload<br>
 ; CHECK-NEXT:    addq $24, %rsp<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   %a  = fadd float %x, %x<br>
   call void @func_f32(float %a)<br>
@@ -49,6 +51,7 @@ define <4 x double> @_256_broadcast_sd_s<br>
 ; CHECK-NEXT:    callq func_f64<br>
 ; CHECK-NEXT:    vbroadcastsd (%rsp), %ymm0 # 16-byte Folded Reload<br>
 ; CHECK-NEXT:    addq $24, %rsp<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   %a  = fadd double %x, %x<br>
   call void @func_f64(double %a)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vec-masked-cmp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512vl-vec-masked-cmp.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/avx512vl-vec-<wbr>masked-cmp.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vec-masked-cmp.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>avx512vl-vec-masked-cmp.ll Tue Nov  7 06:40:27 2017<br>
@@ -109,6 +109,7 @@ define zeroext i32 @test_vpcmpeqb_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -227,6 +228,7 @@ define zeroext i32 @test_vpcmpeqb_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -348,6 +350,7 @@ define zeroext i32 @test_masked_vpcmpeqb<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -470,6 +473,7 @@ define zeroext i32 @test_masked_vpcmpeqb<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -597,6 +601,7 @@ define zeroext i64 @test_vpcmpeqb_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -720,6 +725,7 @@ define zeroext i64 @test_vpcmpeqb_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -846,6 +852,7 @@ define zeroext i64 @test_masked_vpcmpeqb<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -973,6 +980,7 @@ define zeroext i64 @test_masked_vpcmpeqb<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1024,6 +1032,7 @@ define zeroext i64 @test_vpcmpeqb_v32i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1071,6 +1080,7 @@ define zeroext i64 @test_vpcmpeqb_v32i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1129,6 +1139,7 @@ define zeroext i64 @test_masked_vpcmpeqb<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1188,6 +1199,7 @@ define zeroext i64 @test_masked_vpcmpeqb<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1384,6 +1396,7 @@ define zeroext i32 @test_vpcmpeqw_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1457,6 +1470,7 @@ define zeroext i32 @test_vpcmpeqw_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1533,6 +1547,7 @@ define zeroext i32 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1610,6 +1625,7 @@ define zeroext i32 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1692,6 +1708,7 @@ define zeroext i64 @test_vpcmpeqw_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1770,6 +1787,7 @@ define zeroext i64 @test_vpcmpeqw_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1851,6 +1869,7 @@ define zeroext i64 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -1933,6 +1952,7 @@ define zeroext i64 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2056,6 +2076,7 @@ define zeroext i32 @test_vpcmpeqw_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2175,6 +2196,7 @@ define zeroext i32 @test_vpcmpeqw_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2297,6 +2319,7 @@ define zeroext i32 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2420,6 +2443,7 @@ define zeroext i32 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2548,6 +2572,7 @@ define zeroext i64 @test_vpcmpeqw_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2672,6 +2697,7 @@ define zeroext i64 @test_vpcmpeqw_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2799,6 +2825,7 @@ define zeroext i64 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -2927,6 +2954,7 @@ define zeroext i64 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -3280,6 +3308,7 @@ define zeroext i64 @test_vpcmpeqw_v32i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -3544,6 +3573,7 @@ define zeroext i64 @test_vpcmpeqw_v32i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -3904,6 +3934,7 @@ define zeroext i64 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -4180,6 +4211,7 @@ define zeroext i64 @test_masked_vpcmpeqw<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5043,6 +5075,7 @@ define zeroext i32 @test_vpcmpeqd_v4i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5084,6 +5117,7 @@ define zeroext i32 @test_vpcmpeqd_v4i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5145,6 +5179,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5208,6 +5243,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5255,6 +5291,7 @@ define zeroext i32 @test_vpcmpeqd_v4i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5318,6 +5355,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5371,6 +5409,7 @@ define zeroext i64 @test_vpcmpeqd_v4i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5418,6 +5457,7 @@ define zeroext i64 @test_vpcmpeqd_v4i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5485,6 +5525,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5554,6 +5595,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5607,6 +5649,7 @@ define zeroext i64 @test_vpcmpeqd_v4i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5676,6 +5719,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -5949,6 +5993,7 @@ define zeroext i32 @test_vpcmpeqd_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6022,6 +6067,7 @@ define zeroext i32 @test_vpcmpeqd_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6098,6 +6144,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6175,6 +6222,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6252,6 +6300,7 @@ define zeroext i32 @test_vpcmpeqd_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6329,6 +6378,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6412,6 +6462,7 @@ define zeroext i64 @test_vpcmpeqd_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6490,6 +6541,7 @@ define zeroext i64 @test_vpcmpeqd_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6571,6 +6623,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6653,6 +6706,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6735,6 +6789,7 @@ define zeroext i64 @test_vpcmpeqd_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6817,6 +6872,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -6938,6 +6994,7 @@ define zeroext i32 @test_vpcmpeqd_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7054,6 +7111,7 @@ define zeroext i32 @test_vpcmpeqd_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7173,6 +7231,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7293,6 +7352,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7413,6 +7473,7 @@ define zeroext i32 @test_vpcmpeqd_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7533,6 +7594,7 @@ define zeroext i32 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7659,6 +7721,7 @@ define zeroext i64 @test_vpcmpeqd_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7780,6 +7843,7 @@ define zeroext i64 @test_vpcmpeqd_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -7904,6 +7968,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -8029,6 +8094,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -8154,6 +8220,7 @@ define zeroext i64 @test_vpcmpeqd_v16i1_<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -8279,6 +8346,7 @@ define zeroext i64 @test_masked_vpcmpeqd<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9123,6 +9191,7 @@ define zeroext i32 @test_vpcmpeqq_v2i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9164,6 +9233,7 @@ define zeroext i32 @test_vpcmpeqq_v2i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9217,6 +9287,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9272,6 +9343,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9319,6 +9391,7 @@ define zeroext i32 @test_vpcmpeqq_v2i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9374,6 +9447,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9427,6 +9501,7 @@ define zeroext i64 @test_vpcmpeqq_v2i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9474,6 +9549,7 @@ define zeroext i64 @test_vpcmpeqq_v2i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9533,6 +9609,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9594,6 +9671,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9647,6 +9725,7 @@ define zeroext i64 @test_vpcmpeqq_v2i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -9708,6 +9787,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10599,6 +10679,7 @@ define zeroext i32 @test_vpcmpeqq_v4i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10642,6 +10723,7 @@ define zeroext i32 @test_vpcmpeqq_v4i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10705,6 +10787,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10770,6 +10853,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10819,6 +10903,7 @@ define zeroext i32 @test_vpcmpeqq_v4i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10884,6 +10969,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10939,6 +11025,7 @@ define zeroext i64 @test_vpcmpeqq_v4i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -10988,6 +11075,7 @@ define zeroext i64 @test_vpcmpeqq_v4i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11057,6 +11145,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11128,6 +11217,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11183,6 +11273,7 @@ define zeroext i64 @test_vpcmpeqq_v4i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11254,6 +11345,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11501,6 +11593,7 @@ define zeroext i32 @test_vpcmpeqq_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11572,6 +11665,7 @@ define zeroext i32 @test_vpcmpeqq_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11646,6 +11740,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11721,6 +11816,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11796,6 +11892,7 @@ define zeroext i32 @test_vpcmpeqq_v8i1_v<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11871,6 +11968,7 @@ define zeroext i32 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -11952,6 +12050,7 @@ define zeroext i64 @test_vpcmpeqq_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12028,6 +12127,7 @@ define zeroext i64 @test_vpcmpeqq_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12107,6 +12207,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12187,6 +12288,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12267,6 +12369,7 @@ define zeroext i64 @test_vpcmpeqq_v8i1_v<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12347,6 +12450,7 @@ define zeroext i64 @test_masked_vpcmpeqq<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12470,6 +12574,7 @@ define zeroext i32 @test_vpcmpsgtb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12588,6 +12693,7 @@ define zeroext i32 @test_vpcmpsgtb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12709,6 +12815,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12831,6 +12938,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -12958,6 +13066,7 @@ define zeroext i64 @test_vpcmpsgtb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13081,6 +13190,7 @@ define zeroext i64 @test_vpcmpsgtb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13207,6 +13317,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13334,6 +13445,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13385,6 +13497,7 @@ define zeroext i64 @test_vpcmpsgtb_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13432,6 +13545,7 @@ define zeroext i64 @test_vpcmpsgtb_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13490,6 +13604,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13549,6 +13664,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13745,6 +13861,7 @@ define zeroext i32 @test_vpcmpsgtw_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13818,6 +13935,7 @@ define zeroext i32 @test_vpcmpsgtw_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13894,6 +14012,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -13971,6 +14090,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14053,6 +14173,7 @@ define zeroext i64 @test_vpcmpsgtw_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14131,6 +14252,7 @@ define zeroext i64 @test_vpcmpsgtw_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14212,6 +14334,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14294,6 +14417,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14417,6 +14541,7 @@ define zeroext i32 @test_vpcmpsgtw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14536,6 +14661,7 @@ define zeroext i32 @test_vpcmpsgtw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14658,6 +14784,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14781,6 +14908,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -14909,6 +15037,7 @@ define zeroext i64 @test_vpcmpsgtw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -15033,6 +15162,7 @@ define zeroext i64 @test_vpcmpsgtw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -15160,6 +15290,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -15288,6 +15419,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -15641,6 +15773,7 @@ define zeroext i64 @test_vpcmpsgtw_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -15905,6 +16038,7 @@ define zeroext i64 @test_vpcmpsgtw_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -16265,6 +16399,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -16541,6 +16676,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17404,6 +17540,7 @@ define zeroext i32 @test_vpcmpsgtd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17445,6 +17582,7 @@ define zeroext i32 @test_vpcmpsgtd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17506,6 +17644,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17569,6 +17708,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17616,6 +17756,7 @@ define zeroext i32 @test_vpcmpsgtd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17679,6 +17820,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17732,6 +17874,7 @@ define zeroext i64 @test_vpcmpsgtd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17779,6 +17922,7 @@ define zeroext i64 @test_vpcmpsgtd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17846,6 +17990,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17915,6 +18060,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -17968,6 +18114,7 @@ define zeroext i64 @test_vpcmpsgtd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18037,6 +18184,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18310,6 +18458,7 @@ define zeroext i32 @test_vpcmpsgtd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18383,6 +18532,7 @@ define zeroext i32 @test_vpcmpsgtd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18459,6 +18609,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18536,6 +18687,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18613,6 +18765,7 @@ define zeroext i32 @test_vpcmpsgtd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18690,6 +18843,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18773,6 +18927,7 @@ define zeroext i64 @test_vpcmpsgtd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18851,6 +19006,7 @@ define zeroext i64 @test_vpcmpsgtd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -18932,6 +19088,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19014,6 +19171,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19096,6 +19254,7 @@ define zeroext i64 @test_vpcmpsgtd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19178,6 +19337,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19299,6 +19459,7 @@ define zeroext i32 @test_vpcmpsgtd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19415,6 +19576,7 @@ define zeroext i32 @test_vpcmpsgtd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19534,6 +19696,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19654,6 +19817,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19774,6 +19938,7 @@ define zeroext i32 @test_vpcmpsgtd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -19894,6 +20059,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -20020,6 +20186,7 @@ define zeroext i64 @test_vpcmpsgtd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -20141,6 +20308,7 @@ define zeroext i64 @test_vpcmpsgtd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -20265,6 +20433,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -20390,6 +20559,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -20515,6 +20685,7 @@ define zeroext i64 @test_vpcmpsgtd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -20640,6 +20811,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21484,6 +21656,7 @@ define zeroext i32 @test_vpcmpsgtq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21525,6 +21698,7 @@ define zeroext i32 @test_vpcmpsgtq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21578,6 +21752,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21633,6 +21808,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21680,6 +21856,7 @@ define zeroext i32 @test_vpcmpsgtq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21735,6 +21912,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21788,6 +21966,7 @@ define zeroext i64 @test_vpcmpsgtq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21835,6 +22014,7 @@ define zeroext i64 @test_vpcmpsgtq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21894,6 +22074,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -21955,6 +22136,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -22008,6 +22190,7 @@ define zeroext i64 @test_vpcmpsgtq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -22069,6 +22252,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -22960,6 +23144,7 @@ define zeroext i32 @test_vpcmpsgtq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23003,6 +23188,7 @@ define zeroext i32 @test_vpcmpsgtq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23066,6 +23252,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23131,6 +23318,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23180,6 +23368,7 @@ define zeroext i32 @test_vpcmpsgtq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23245,6 +23434,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23300,6 +23490,7 @@ define zeroext i64 @test_vpcmpsgtq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23349,6 +23540,7 @@ define zeroext i64 @test_vpcmpsgtq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23418,6 +23610,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23489,6 +23682,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23544,6 +23738,7 @@ define zeroext i64 @test_vpcmpsgtq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23615,6 +23810,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23862,6 +24058,7 @@ define zeroext i32 @test_vpcmpsgtq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -23933,6 +24130,7 @@ define zeroext i32 @test_vpcmpsgtq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24007,6 +24205,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24082,6 +24281,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24157,6 +24357,7 @@ define zeroext i32 @test_vpcmpsgtq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24232,6 +24433,7 @@ define zeroext i32 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24313,6 +24515,7 @@ define zeroext i64 @test_vpcmpsgtq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24389,6 +24592,7 @@ define zeroext i64 @test_vpcmpsgtq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24468,6 +24672,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24548,6 +24753,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24628,6 +24834,7 @@ define zeroext i64 @test_vpcmpsgtq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24708,6 +24915,7 @@ define zeroext i64 @test_masked_vpcmpsgt<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24833,6 +25041,7 @@ define zeroext i32 @test_vpcmpsgeb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -24954,6 +25163,7 @@ define zeroext i32 @test_vpcmpsgeb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25077,6 +25287,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25202,6 +25413,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25331,6 +25543,7 @@ define zeroext i64 @test_vpcmpsgeb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25457,6 +25670,7 @@ define zeroext i64 @test_vpcmpsgeb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25585,6 +25799,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25715,6 +25930,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25768,6 +25984,7 @@ define zeroext i64 @test_vpcmpsgeb_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25818,6 +26035,7 @@ define zeroext i64 @test_vpcmpsgeb_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25878,6 +26096,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -25940,6 +26159,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26148,6 +26368,7 @@ define zeroext i32 @test_vpcmpsgew_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26224,6 +26445,7 @@ define zeroext i32 @test_vpcmpsgew_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26302,6 +26524,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26382,6 +26605,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26466,6 +26690,7 @@ define zeroext i64 @test_vpcmpsgew_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26547,6 +26772,7 @@ define zeroext i64 @test_vpcmpsgew_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26630,6 +26856,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26715,6 +26942,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26840,6 +27068,7 @@ define zeroext i32 @test_vpcmpsgew_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -26962,6 +27191,7 @@ define zeroext i32 @test_vpcmpsgew_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -27086,6 +27316,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -27212,6 +27443,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -27342,6 +27574,7 @@ define zeroext i64 @test_vpcmpsgew_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -27469,6 +27702,7 @@ define zeroext i64 @test_vpcmpsgew_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -27598,6 +27832,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -27729,6 +27964,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -28085,6 +28321,7 @@ define zeroext i64 @test_vpcmpsgew_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -28354,6 +28591,7 @@ define zeroext i64 @test_vpcmpsgew_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -28717,6 +28955,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -28998,6 +29237,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -29879,6 +30119,7 @@ define zeroext i32 @test_vpcmpsged_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -29923,6 +30164,7 @@ define zeroext i32 @test_vpcmpsged_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -29984,6 +30226,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30048,6 +30291,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30097,6 +30341,7 @@ define zeroext i32 @test_vpcmpsged_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30160,6 +30405,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30215,6 +30461,7 @@ define zeroext i64 @test_vpcmpsged_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30265,6 +30512,7 @@ define zeroext i64 @test_vpcmpsged_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30332,6 +30580,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30402,6 +30651,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30457,6 +30707,7 @@ define zeroext i64 @test_vpcmpsged_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30526,6 +30777,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30799,6 +31051,7 @@ define zeroext i32 @test_vpcmpsged_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30872,6 +31125,7 @@ define zeroext i32 @test_vpcmpsged_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -30948,6 +31202,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31025,6 +31280,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31102,6 +31358,7 @@ define zeroext i32 @test_vpcmpsged_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31179,6 +31436,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31262,6 +31520,7 @@ define zeroext i64 @test_vpcmpsged_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31340,6 +31599,7 @@ define zeroext i64 @test_vpcmpsged_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31421,6 +31681,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31503,6 +31764,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31585,6 +31847,7 @@ define zeroext i64 @test_vpcmpsged_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31667,6 +31930,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31788,6 +32052,7 @@ define zeroext i32 @test_vpcmpsged_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -31904,6 +32169,7 @@ define zeroext i32 @test_vpcmpsged_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32023,6 +32289,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32143,6 +32410,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32263,6 +32531,7 @@ define zeroext i32 @test_vpcmpsged_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32383,6 +32652,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32509,6 +32779,7 @@ define zeroext i64 @test_vpcmpsged_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32630,6 +32901,7 @@ define zeroext i64 @test_vpcmpsged_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32754,6 +33026,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -32879,6 +33152,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -33004,6 +33278,7 @@ define zeroext i64 @test_vpcmpsged_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -33129,6 +33404,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -33999,6 +34275,7 @@ define zeroext i32 @test_vpcmpsgeq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34043,6 +34320,7 @@ define zeroext i32 @test_vpcmpsgeq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34096,6 +34374,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34152,6 +34431,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34201,6 +34481,7 @@ define zeroext i32 @test_vpcmpsgeq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34256,6 +34537,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34311,6 +34593,7 @@ define zeroext i64 @test_vpcmpsgeq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34361,6 +34644,7 @@ define zeroext i64 @test_vpcmpsgeq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34420,6 +34704,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34482,6 +34767,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34537,6 +34823,7 @@ define zeroext i64 @test_vpcmpsgeq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -34598,6 +34885,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35519,6 +35807,7 @@ define zeroext i32 @test_vpcmpsgeq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35565,6 +35854,7 @@ define zeroext i32 @test_vpcmpsgeq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35630,6 +35920,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35698,6 +35989,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35749,6 +36041,7 @@ define zeroext i32 @test_vpcmpsgeq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35816,6 +36109,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35873,6 +36167,7 @@ define zeroext i64 @test_vpcmpsgeq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35925,6 +36220,7 @@ define zeroext i64 @test_vpcmpsgeq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -35996,6 +36292,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36070,6 +36367,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36127,6 +36425,7 @@ define zeroext i64 @test_vpcmpsgeq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36200,6 +36499,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36447,6 +36747,7 @@ define zeroext i32 @test_vpcmpsgeq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36518,6 +36819,7 @@ define zeroext i32 @test_vpcmpsgeq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36592,6 +36894,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36667,6 +36970,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36742,6 +37046,7 @@ define zeroext i32 @test_vpcmpsgeq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36817,6 +37122,7 @@ define zeroext i32 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36898,6 +37204,7 @@ define zeroext i64 @test_vpcmpsgeq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -36974,6 +37281,7 @@ define zeroext i64 @test_vpcmpsgeq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37053,6 +37361,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37133,6 +37442,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37213,6 +37523,7 @@ define zeroext i64 @test_vpcmpsgeq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37293,6 +37604,7 @@ define zeroext i64 @test_masked_vpcmpsge<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37419,6 +37731,7 @@ define zeroext i32 @test_vpcmpultb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37540,6 +37853,7 @@ define zeroext i32 @test_vpcmpultb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37664,6 +37978,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37789,6 +38104,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -37919,6 +38235,7 @@ define zeroext i64 @test_vpcmpultb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38045,6 +38362,7 @@ define zeroext i64 @test_vpcmpultb_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38174,6 +38492,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38304,6 +38623,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38358,6 +38678,7 @@ define zeroext i64 @test_vpcmpultb_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38408,6 +38729,7 @@ define zeroext i64 @test_vpcmpultb_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38469,6 +38791,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38531,6 +38854,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38742,6 +39066,7 @@ define zeroext i32 @test_vpcmpultw_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38818,6 +39143,7 @@ define zeroext i32 @test_vpcmpultw_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38897,6 +39223,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -38977,6 +39304,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39062,6 +39390,7 @@ define zeroext i64 @test_vpcmpultw_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39143,6 +39472,7 @@ define zeroext i64 @test_vpcmpultw_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39227,6 +39557,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39312,6 +39643,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39438,6 +39770,7 @@ define zeroext i32 @test_vpcmpultw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39560,6 +39893,7 @@ define zeroext i32 @test_vpcmpultw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39685,6 +40019,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39811,6 +40146,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -39942,6 +40278,7 @@ define zeroext i64 @test_vpcmpultw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -40069,6 +40406,7 @@ define zeroext i64 @test_vpcmpultw_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -40199,6 +40537,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -40330,6 +40669,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -40688,6 +41028,7 @@ define zeroext i64 @test_vpcmpultw_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -40957,6 +41298,7 @@ define zeroext i64 @test_vpcmpultw_v32i1<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -41322,6 +41664,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -41603,6 +41946,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42505,6 +42849,7 @@ define zeroext i32 @test_vpcmpultd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42549,6 +42894,7 @@ define zeroext i32 @test_vpcmpultd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42613,6 +42959,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42679,6 +43026,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42729,6 +43077,7 @@ define zeroext i32 @test_vpcmpultd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42795,6 +43144,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42851,6 +43201,7 @@ define zeroext i64 @test_vpcmpultd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42901,6 +43252,7 @@ define zeroext i64 @test_vpcmpultd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -42971,6 +43323,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43043,6 +43396,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43099,6 +43453,7 @@ define zeroext i64 @test_vpcmpultd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43171,6 +43526,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43444,6 +43800,7 @@ define zeroext i32 @test_vpcmpultd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43517,6 +43874,7 @@ define zeroext i32 @test_vpcmpultd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43593,6 +43951,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43670,6 +44029,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43747,6 +44107,7 @@ define zeroext i32 @test_vpcmpultd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43824,6 +44185,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43907,6 +44269,7 @@ define zeroext i64 @test_vpcmpultd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -43985,6 +44348,7 @@ define zeroext i64 @test_vpcmpultd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44066,6 +44430,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44148,6 +44513,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44230,6 +44596,7 @@ define zeroext i64 @test_vpcmpultd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44312,6 +44679,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44433,6 +44801,7 @@ define zeroext i32 @test_vpcmpultd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44549,6 +44918,7 @@ define zeroext i32 @test_vpcmpultd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44668,6 +45038,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44788,6 +45159,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -44908,6 +45280,7 @@ define zeroext i32 @test_vpcmpultd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45028,6 +45401,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45154,6 +45528,7 @@ define zeroext i64 @test_vpcmpultd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45275,6 +45650,7 @@ define zeroext i64 @test_vpcmpultd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45399,6 +45775,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45524,6 +45901,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45649,6 +46027,7 @@ define zeroext i64 @test_vpcmpultd_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -45774,6 +46153,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46675,6 +47055,7 @@ define zeroext i32 @test_vpcmpultq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46719,6 +47100,7 @@ define zeroext i32 @test_vpcmpultq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46775,6 +47157,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46833,6 +47216,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46883,6 +47267,7 @@ define zeroext i32 @test_vpcmpultq_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46941,6 +47326,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -46997,6 +47383,7 @@ define zeroext i64 @test_vpcmpultq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -47047,6 +47434,7 @@ define zeroext i64 @test_vpcmpultq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -47109,6 +47497,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -47173,6 +47562,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -47229,6 +47619,7 @@ define zeroext i64 @test_vpcmpultq_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -47293,6 +47684,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48223,6 +48615,7 @@ define zeroext i32 @test_vpcmpultq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48269,6 +48662,7 @@ define zeroext i32 @test_vpcmpultq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48335,6 +48729,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48403,6 +48798,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48455,6 +48851,7 @@ define zeroext i32 @test_vpcmpultq_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48523,6 +48920,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48581,6 +48979,7 @@ define zeroext i64 @test_vpcmpultq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48633,6 +49032,7 @@ define zeroext i64 @test_vpcmpultq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48705,6 +49105,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48779,6 +49180,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48837,6 +49239,7 @@ define zeroext i64 @test_vpcmpultq_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -48911,6 +49314,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49158,6 +49562,7 @@ define zeroext i32 @test_vpcmpultq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49229,6 +49634,7 @@ define zeroext i32 @test_vpcmpultq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49303,6 +49709,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49378,6 +49785,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49453,6 +49861,7 @@ define zeroext i32 @test_vpcmpultq_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49528,6 +49937,7 @@ define zeroext i32 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49609,6 +50019,7 @@ define zeroext i64 @test_vpcmpultq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49685,6 +50096,7 @@ define zeroext i64 @test_vpcmpultq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49764,6 +50176,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49844,6 +50257,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -49924,6 +50338,7 @@ define zeroext i64 @test_vpcmpultq_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -50004,6 +50419,7 @@ define zeroext i64 @test_masked_vpcmpult<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -50797,6 +51213,7 @@ define zeroext i32 @test_vcmpoeqps_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -50838,6 +51255,7 @@ define zeroext i32 @test_vcmpoeqps_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -50881,6 +51299,7 @@ define zeroext i32 @test_vcmpoeqps_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -50932,6 +51351,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -50983,6 +51403,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51036,6 +51457,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51089,6 +51511,7 @@ define zeroext i64 @test_vcmpoeqps_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51136,6 +51559,7 @@ define zeroext i64 @test_vcmpoeqps_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51185,6 +51609,7 @@ define zeroext i64 @test_vcmpoeqps_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51242,6 +51667,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51299,6 +51725,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51358,6 +51785,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51631,6 +52059,7 @@ define zeroext i32 @test_vcmpoeqps_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51704,6 +52133,7 @@ define zeroext i32 @test_vcmpoeqps_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51778,6 +52208,7 @@ define zeroext i32 @test_vcmpoeqps_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51855,6 +52286,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -51932,6 +52364,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52010,6 +52443,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52094,6 +52528,7 @@ define zeroext i64 @test_vcmpoeqps_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52172,6 +52607,7 @@ define zeroext i64 @test_vcmpoeqps_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52251,6 +52687,7 @@ define zeroext i64 @test_vcmpoeqps_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52333,6 +52770,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52415,6 +52853,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52498,6 +52937,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52620,6 +53060,7 @@ define zeroext i32 @test_vcmpoeqps_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52736,6 +53177,7 @@ define zeroext i32 @test_vcmpoeqps_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52853,6 +53295,7 @@ define zeroext i32 @test_vcmpoeqps_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -52973,6 +53416,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53093,6 +53537,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53214,6 +53659,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53382,6 +53828,7 @@ define zeroext i64 @test_vcmpoeqps_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53503,6 +53950,7 @@ define zeroext i64 @test_vcmpoeqps_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53625,6 +54073,7 @@ define zeroext i64 @test_vcmpoeqps_v16i1<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53750,6 +54199,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -53875,6 +54325,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -54001,6 +54452,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    popq %r14<br>
 ; NoVLX-NEXT:    popq %r15<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -54854,6 +55306,7 @@ define zeroext i32 @test_vcmpoeqpd_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -54895,6 +55348,7 @@ define zeroext i32 @test_vcmpoeqpd_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -54938,6 +55392,7 @@ define zeroext i32 @test_vcmpoeqpd_v2i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -54988,6 +55443,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55038,6 +55494,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55090,6 +55547,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55143,6 +55601,7 @@ define zeroext i64 @test_vcmpoeqpd_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55190,6 +55649,7 @@ define zeroext i64 @test_vcmpoeqpd_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55239,6 +55699,7 @@ define zeroext i64 @test_vcmpoeqpd_v2i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55295,6 +55756,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55351,6 +55813,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -55409,6 +55872,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56228,6 +56692,7 @@ define zeroext i32 @test_vcmpoeqpd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56271,6 +56736,7 @@ define zeroext i32 @test_vcmpoeqpd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56316,6 +56782,7 @@ define zeroext i32 @test_vcmpoeqpd_v4i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56369,6 +56836,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56422,6 +56890,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56477,6 +56946,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl {{[0-9]+}}(%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56532,6 +57002,7 @@ define zeroext i64 @test_vcmpoeqpd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56581,6 +57052,7 @@ define zeroext i64 @test_vcmpoeqpd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56632,6 +57104,7 @@ define zeroext i64 @test_vcmpoeqpd_v4i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56691,6 +57164,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56750,6 +57224,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -56811,6 +57286,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57114,6 +57590,7 @@ define zeroext i32 @test_vcmpoeqpd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57185,6 +57662,7 @@ define zeroext i32 @test_vcmpoeqpd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57257,6 +57735,7 @@ define zeroext i32 @test_vcmpoeqpd_v8i1_<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57332,6 +57811,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57407,6 +57887,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57483,6 +57964,7 @@ define zeroext i32 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    movl (%rsp), %eax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57615,6 +58097,7 @@ define zeroext i64 @test_vcmpoeqpd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57691,6 +58174,7 @@ define zeroext i64 @test_vcmpoeqpd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57768,6 +58252,7 @@ define zeroext i64 @test_vcmpoeqpd_v8i1_<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57848,6 +58333,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -57928,6 +58414,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
@@ -58009,6 +58496,7 @@ define zeroext i64 @test_masked_vcmpoeqp<br>
 ; NoVLX-NEXT:    orq %rcx, %rax<br>
 ; NoVLX-NEXT:    movq %rbp, %rsp<br>
 ; NoVLX-NEXT:    popq %rbp<br>
+; NoVLX-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; NoVLX-NEXT:    vzeroupper<br>
 ; NoVLX-NEXT:    retq<br>
 entry:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-256.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bitcast-and-setcc-256.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/bitcast-and-setcc-<wbr>256.ll?rev=317579&r1=317578&<wbr>r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-256.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-256.ll Tue Nov  7 06:40:27 2017<br>
@@ -439,6 +439,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8<br>
 ; AVX512F-NEXT:    movl (%rsp), %eax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-512.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bitcast-and-setcc-512.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/bitcast-and-setcc-<wbr>512.ll?rev=317579&r1=317578&<wbr>r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-512.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>bitcast-and-setcc-512.ll Tue Nov  7 06:40:27 2017<br>
@@ -594,6 +594,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x<br>
 ; AVX512F-NEXT:    movl (%rsp), %eax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
@@ -1239,6 +1240,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8<br>
 ; AVX1-NEXT:    orq %rcx, %rax<br>
 ; AVX1-NEXT:    movq %rbp, %rsp<br>
 ; AVX1-NEXT:    popq %rbp<br>
+; AVX1-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; AVX1-NEXT:    vzeroupper<br>
 ; AVX1-NEXT:    retq<br>
 ;<br>
@@ -1457,6 +1459,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8<br>
 ; AVX2-NEXT:    orq %rcx, %rax<br>
 ; AVX2-NEXT:    movq %rbp, %rsp<br>
 ; AVX2-NEXT:    popq %rbp<br>
+; AVX2-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX2-NEXT:    vzeroupper<br>
 ; AVX2-NEXT:    retq<br>
 ;<br>
@@ -1499,6 +1502,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8<br>
 ; AVX512F-NEXT:    orq %rcx, %rax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>bitcast-int-to-vector-bool-<wbr>zext.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bitcast-int-to-vector-bool-zext.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/bitcast-int-to-<wbr>vector-bool-zext.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>bitcast-int-to-vector-bool-<wbr>zext.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>bitcast-int-to-vector-bool-<wbr>zext.ll Tue Nov  7 06:40:27 2017<br>
@@ -321,11 +321,17 @@ define <16 x i8> @ext_i16_16i8(i16 %a0)<br>
 ; AVX512-NEXT:    vpinsrb $15, %r9d, %xmm0, %xmm0<br>
 ; AVX512-NEXT:    vpand {{.*}}(%rip), %xmm0, %xmm0<br>
 ; AVX512-NEXT:    popq %rbx<br>
+; AVX512-NEXT:    .cfi_def_cfa_offset 48<br>
 ; AVX512-NEXT:    popq %r12<br>
+; AVX512-NEXT:    .cfi_def_cfa_offset 40<br>
 ; AVX512-NEXT:    popq %r13<br>
+; AVX512-NEXT:    .cfi_def_cfa_offset 32<br>
 ; AVX512-NEXT:    popq %r14<br>
+; AVX512-NEXT:    .cfi_def_cfa_offset 24<br>
 ; AVX512-NEXT:    popq %r15<br>
+; AVX512-NEXT:    .cfi_def_cfa_offset 16<br>
 ; AVX512-NEXT:    popq %rbp<br>
+; AVX512-NEXT:    .cfi_def_cfa_offset 8<br>
 ; AVX512-NEXT:    retq<br>
   %1 = bitcast i16 %a0 to <16 x i1><br>
   %2 = zext <16 x i1> %1 to <16 x i8><br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-256.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bitcast-setcc-256.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/bitcast-setcc-256.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-256.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-256.ll Tue Nov  7 06:40:27 2017<br>
@@ -204,6 +204,7 @@ define i32 @v32i8(<32 x i8> %a, <32 x i8<br>
 ; AVX512F-NEXT:    movl (%rsp), %eax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-512.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bitcast-setcc-512.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/bitcast-setcc-512.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-512.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>bitcast-setcc-512.ll Tue Nov  7 06:40:27 2017<br>
@@ -203,6 +203,7 @@ define i32 @v32i16(<32 x i16> %a, <32 x<br>
 ; AVX512F-NEXT:    movl (%rsp), %eax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
@@ -769,6 +770,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8<br>
 ; AVX1-NEXT:    orq %rcx, %rax<br>
 ; AVX1-NEXT:    movq %rbp, %rsp<br>
 ; AVX1-NEXT:    popq %rbp<br>
+; AVX1-NEXT:   .cfi_def_cfa %rsp, 8<br>
 ; AVX1-NEXT:    vzeroupper<br>
 ; AVX1-NEXT:    retq<br>
 ;<br>
@@ -983,6 +985,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8<br>
 ; AVX2-NEXT:    orq %rcx, %rax<br>
 ; AVX2-NEXT:    movq %rbp, %rsp<br>
 ; AVX2-NEXT:    popq %rbp<br>
+; AVX2-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX2-NEXT:    vzeroupper<br>
 ; AVX2-NEXT:    retq<br>
 ;<br>
@@ -1021,6 +1024,7 @@ define i64 @v64i8(<64 x i8> %a, <64 x i8<br>
 ; AVX512F-NEXT:    orq %rcx, %rax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>bool-vector.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bool-vector.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/bool-vector.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>bool-vector.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>bool-vector.ll Tue Nov  7 06:40:27 2017<br>
@@ -93,6 +93,7 @@ define i32 @PR15215_good(<4 x i32> %inpu<br>
 ; X32-NEXT:    leal (%eax,%edx,4), %eax<br>
 ; X32-NEXT:    leal (%eax,%esi,8), %eax<br>
 ; X32-NEXT:    popl %esi<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X32-SSE2-LABEL: PR15215_good:<br>
@@ -115,6 +116,7 @@ define i32 @PR15215_good(<4 x i32> %inpu<br>
 ; X32-SSE2-NEXT:    leal (%eax,%edx,4), %eax<br>
 ; X32-SSE2-NEXT:    leal (%eax,%esi,8), %eax<br>
 ; X32-SSE2-NEXT:    popl %esi<br>
+; X32-SSE2-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-SSE2-NEXT:    retl<br>
 ;<br>
 ; X32-AVX2-LABEL: PR15215_good:<br>
@@ -134,6 +136,7 @@ define i32 @PR15215_good(<4 x i32> %inpu<br>
 ; X32-AVX2-NEXT:    leal (%eax,%edx,4), %eax<br>
 ; X32-AVX2-NEXT:    leal (%eax,%esi,8), %eax<br>
 ; X32-AVX2-NEXT:    popl %esi<br>
+; X32-AVX2-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-AVX2-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: PR15215_good:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>cmp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/cmp.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/cmp.ll?rev=317579&<wbr>r1=317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>cmp.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>cmp.ll Tue Nov  7 06:40:27 2017<br>
@@ -247,10 +247,13 @@ define i32 @test12() ssp uwtable {<br>
 ; CHECK-NEXT:  # BB#1: # %T<br>
 ; CHECK-NEXT:    movl $1, %eax # encoding: [0xb8,0x01,0x00,0x00,0x00]<br>
 ; CHECK-NEXT:    popq %rcx # encoding: [0x59]<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq # encoding: [0xc3]<br>
 ; CHECK-NEXT:  .LBB12_2: # %F<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 16<br>
 ; CHECK-NEXT:    movl $2, %eax # encoding: [0xb8,0x02,0x00,0x00,0x00]<br>
 ; CHECK-NEXT:    popq %rcx # encoding: [0x59]<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq # encoding: [0xc3]<br>
 entry:<br>
   %tmp1 = call zeroext i1 @test12b()<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>emutls-pie.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/emutls-pie.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/emutls-pie.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>emutls-pie.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>emutls-pie.ll Tue Nov  7 06:40:27 2017<br>
@@ -18,13 +18,16 @@ define i32 @my_get_xyz() {<br>
 ; X32-NEXT: calll my_emutls_get_address@PLT<br>
 ; X32-NEXT: movl (%eax), %eax<br>
 ; X32-NEXT: addl $8, %esp<br>
+; X32-NEXT: .cfi_def_cfa_offset 8<br>
 ; X32-NEXT: popl %ebx<br>
+; X32-NEXT: .cfi_def_cfa_offset 4<br>
 ; X32-NEXT: retl<br>
 ; X64-LABEL: my_get_xyz:<br>
 ; X64:      movq my_emutls_v_xyz@GOTPCREL(%rip)<wbr>, %rdi<br>
 ; X64-NEXT: callq my_emutls_get_address@PLT<br>
 ; X64-NEXT: movl (%rax), %eax<br>
 ; X64-NEXT: popq %rcx<br>
+; X64-NEXT: .cfi_def_cfa_offset 8<br>
 ; X64-NEXT: retq<br>
<br>
 entry:<br>
@@ -44,13 +47,16 @@ define i32 @f1() {<br>
 ; X32-NEXT: calll __emutls_get_address@PLT<br>
 ; X32-NEXT: movl (%eax), %eax<br>
 ; X32-NEXT: addl $8, %esp<br>
+; X32-NEXT: .cfi_def_cfa_offset 8<br>
 ; X32-NEXT: popl %ebx<br>
+; X32-NEXT: .cfi_def_cfa_offset 4<br>
 ; X32-NEXT: retl<br>
 ; X64-LABEL: f1:<br>
 ; X64:      leaq __emutls_v.i(%rip), %rdi<br>
 ; X64-NEXT: callq __emutls_get_address@PLT<br>
 ; X64-NEXT: movl (%rax), %eax<br>
 ; X64-NEXT: popq %rcx<br>
+; X64-NEXT: .cfi_def_cfa_offset 8<br>
 ; X64-NEXT: retq<br>
<br>
 entry:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>emutls.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/emutls.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/emutls.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>emutls.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>emutls.ll Tue Nov  7 06:40:27 2017<br>
@@ -16,12 +16,14 @@ define i32 @my_get_xyz() {<br>
 ; X32-NEXT:    calll my_emutls_get_address<br>
 ; X32-NEXT:    movl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ; X64-LABEL: my_get_xyz:<br>
 ; X64:         movl $my_emutls_v_xyz, %edi<br>
 ; X64-NEXT:    callq my_emutls_get_address<br>
 ; X64-NEXT:    movl (%rax), %eax<br>
 ; X64-NEXT:    popq %rcx<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
<br>
 entry:<br>
@@ -45,12 +47,14 @@ define i32 @f1() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ; X64-LABEL: f1:<br>
 ; X64:         movl $__emutls_v.i1, %edi<br>
 ; X64-NEXT:    callq __emutls_get_address<br>
 ; X64-NEXT:    movl (%rax), %eax<br>
 ; X64-NEXT:    popq %rcx<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
<br>
 entry:<br>
@@ -63,11 +67,13 @@ define i32* @f2() {<br>
 ; X32:         movl $__emutls_v.i1, (%esp)<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ; X64-LABEL: f2:<br>
 ; X64:         movl $__emutls_v.i1, %edi<br>
 ; X64-NEXT:    callq __emutls_get_address<br>
 ; X64-NEXT:    popq %rcx<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
<br>
 entry:<br>
@@ -92,6 +98,7 @@ define i32* @f4() {<br>
 ; X32:         movl $__emutls_v.i2, (%esp)<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -116,6 +123,7 @@ define i32* @f6() {<br>
 ; X32:         movl $__emutls_v.i3, (%esp)<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -128,6 +136,7 @@ define i32 @f7() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -140,6 +149,7 @@ define i32* @f8() {<br>
 ; X32:         movl $__emutls_v.i4, (%esp)<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -152,6 +162,7 @@ define i32 @f9() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -164,6 +175,7 @@ define i32* @f10() {<br>
 ; X32:         movl $__emutls_v.i5, (%esp)<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -176,6 +188,7 @@ define i16 @f11() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movzwl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -189,6 +202,7 @@ define i32 @f12() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movswl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -203,6 +217,7 @@ define i8 @f13() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movb (%eax), %al<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
@@ -216,6 +231,7 @@ define i32 @f14() {<br>
 ; X32-NEXT:    calll __emutls_get_address<br>
 ; X32-NEXT:    movsbl (%eax), %eax<br>
 ; X32-NEXT:    addl $12, %esp<br>
+; X32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
<br>
 entry:<br>
<br>
Added: llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-fp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/epilogue-cfi-fp.ll?rev=317579&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/epilogue-cfi-fp.<wbr>ll?rev=317579&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-fp.ll (added)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-fp.ll Tue Nov  7 06:40:27 2017<br>
@@ -0,0 +1,43 @@<br>
+; RUN: llc -O0 %s -o - | FileCheck %s<br>
+<br>
+; ModuleID = 'epilogue-cfi-fp.c'<br>
+source_filename = "epilogue-cfi-fp.c"<br>
+target datalayout = "e-m:e-p:32:32-f64:32:64-f80:<wbr>32-n8:16:32-S128"<br>
+target triple = "i686-pc-linux"<br>
+<br>
+; Function Attrs: noinline nounwind<br>
+define i32 @foo(i32 %i, i32 %j, i32 %k, i32 %l, i32 %m) #0 {<br>
+<br>
+; CHECK-LABEL:   foo:<br>
+; CHECK:         popl %ebp<br>
+; CHECK-NEXT:    .cfi_def_cfa %esp, 4<br>
+; CHECK-NEXT:    retl<br>
+<br>
+entry:<br>
+  %i.addr = alloca i32, align 4<br>
+  %j.addr = alloca i32, align 4<br>
+  %k.addr = alloca i32, align 4<br>
+  %l.addr = alloca i32, align 4<br>
+  %m.addr = alloca i32, align 4<br>
+  store i32 %i, i32* %i.addr, align 4<br>
+  store i32 %j, i32* %j.addr, align 4<br>
+  store i32 %k, i32* %k.addr, align 4<br>
+  store i32 %l, i32* %l.addr, align 4<br>
+  store i32 %m, i32* %m.addr, align 4<br>
+  ret i32 0<br>
+}<br>
+<br>
+attributes #0 = { "no-frame-pointer-elim"="true" }<br>
+<br>
+!<a href="http://llvm.dbg.cu" rel="noreferrer" target="_blank">llvm.dbg.cu</a> = !{!0}<br>
+!llvm.module.flags = !{!3, !4, !5, !6, !7}<br>
+<br>
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 5.0.0 (<a href="http://llvm.org/git/clang.git" rel="noreferrer" target="_blank">http://llvm.org/git/clang.git</a> 3f8116e6a2815b1d5f3491493938d0<wbr>c63c9f42c9) (<a href="http://llvm.org/git/llvm.git" rel="noreferrer" target="_blank">http://llvm.org/git/llvm.git</a> 4fde77f8f1a8e4482e69b6a7484bc7<wbr>d1b99b3c0a)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)<br>
+!1 = !DIFile(filename: "epilogue-cfi-fp.c", directory: "epilogue-dwarf/test")<br>
+!2 = !{}<br>
+!3 = !{i32 1, !"NumRegisterParameters", i32 0}<br>
+!4 = !{i32 2, !"Dwarf Version", i32 4}<br>
+!5 = !{i32 2, !"Debug Info Version", i32 3}<br>
+!6 = !{i32 1, !"wchar_size", i32 4}<br>
+!7 = !{i32 7, !"PIC Level", i32 2}<br>
+<br>
<br>
Added: llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-no-fp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/epilogue-cfi-no-fp.ll?rev=317579&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/epilogue-cfi-no-<wbr>fp.ll?rev=317579&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-no-fp.ll (added)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>epilogue-cfi-no-fp.ll Tue Nov  7 06:40:27 2017<br>
@@ -0,0 +1,46 @@<br>
+; RUN: llc -O0 < %s | FileCheck %s<br>
+<br>
+; ModuleID = 'epilogue-cfi-no-fp.c'<br>
+source_filename = "epilogue-cfi-no-fp.c"<br>
+target datalayout = "e-m:e-p:32:32-f64:32:64-f80:<wbr>32-n8:16:32-S128"<br>
+target triple = "i686-pc-linux"<br>
+<br>
+; Function Attrs: noinline nounwind<br>
+define i32 @foo(i32 %i, i32 %j, i32 %k, i32 %l, i32 %m) {<br>
+; CHECK-LABEL:   foo:<br>
+; CHECK:         addl  $20, %esp<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 16<br>
+; CHECK-NEXT:    popl  %esi<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 12<br>
+; CHECK-NEXT:    popl  %edi<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
+; CHECK-NEXT:    popl  %ebx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 4<br>
+; CHECK-NEXT:    retl<br>
+entry:<br>
+  %i.addr = alloca i32, align 4<br>
+  %j.addr = alloca i32, align 4<br>
+  %k.addr = alloca i32, align 4<br>
+  %l.addr = alloca i32, align 4<br>
+  %m.addr = alloca i32, align 4<br>
+  store i32 %i, i32* %i.addr, align 4<br>
+  store i32 %j, i32* %j.addr, align 4<br>
+  store i32 %k, i32* %k.addr, align 4<br>
+  store i32 %l, i32* %l.addr, align 4<br>
+  store i32 %m, i32* %m.addr, align 4<br>
+  ret i32 0<br>
+}<br>
+<br>
+!<a href="http://llvm.dbg.cu" rel="noreferrer" target="_blank">llvm.dbg.cu</a> = !{!0}<br>
+!llvm.module.flags = !{!3, !4, !5, !6, !7}<br>
+<br>
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 5.0.0 (<a href="http://llvm.org/git/clang.git" rel="noreferrer" target="_blank">http://llvm.org/git/clang.git</a> 3f8116e6a2815b1d5f3491493938d0<wbr>c63c9f42c9) (<a href="http://llvm.org/git/llvm.git" rel="noreferrer" target="_blank">http://llvm.org/git/llvm.git</a> 4fde77f8f1a8e4482e69b6a7484bc7<wbr>d1b99b3c0a)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)<br>
+!1 = !DIFile(filename: "epilogue-cfi-no-fp.c", directory: "epilogue-dwarf/test")<br>
+!2 = !{}<br>
+!3 = !{i32 1, !"NumRegisterParameters", i32 0}<br>
+!4 = !{i32 2, !"Dwarf Version", i32 4}<br>
+!5 = !{i32 2, !"Debug Info Version", i32 3}<br>
+!6 = !{i32 1, !"wchar_size", i32 4}<br>
+!7 = !{i32 7, !"PIC Level", i32 2}<br>
+<br>
+<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-int-float-<wbr>conversion.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fast-isel-int-float-conversion.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/fast-isel-int-<wbr>float-conversion.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-int-float-<wbr>conversion.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-int-float-<wbr>conversion.ll Tue Nov  7 06:40:27 2017<br>
@@ -31,6 +31,7 @@ define double @int_to_double_rr(i32 %a)<br>
 ; SSE2_X86-NEXT:    fldl (%esp)<br>
 ; SSE2_X86-NEXT:    movl %ebp, %esp<br>
 ; SSE2_X86-NEXT:    popl %ebp<br>
+; SSE2_X86-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SSE2_X86-NEXT:    retl<br>
 ;<br>
 ; AVX_X86-LABEL: int_to_double_rr:<br>
@@ -47,6 +48,7 @@ define double @int_to_double_rr(i32 %a)<br>
 ; AVX_X86-NEXT:    fldl (%esp)<br>
 ; AVX_X86-NEXT:    movl %ebp, %esp<br>
 ; AVX_X86-NEXT:    popl %ebp<br>
+; AVX_X86-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; AVX_X86-NEXT:    retl<br>
 entry:<br>
   %0 = sitofp i32 %a to double<br>
@@ -80,6 +82,7 @@ define double @int_to_double_rm(i32* %a)<br>
 ; SSE2_X86-NEXT:    fldl (%esp)<br>
 ; SSE2_X86-NEXT:    movl %ebp, %esp<br>
 ; SSE2_X86-NEXT:    popl %ebp<br>
+; SSE2_X86-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SSE2_X86-NEXT:    retl<br>
 ;<br>
 ; AVX_X86-LABEL: int_to_double_rm:<br>
@@ -97,6 +100,7 @@ define double @int_to_double_rm(i32* %a)<br>
 ; AVX_X86-NEXT:    fldl (%esp)<br>
 ; AVX_X86-NEXT:    movl %ebp, %esp<br>
 ; AVX_X86-NEXT:    popl %ebp<br>
+; AVX_X86-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; AVX_X86-NEXT:    retl<br>
 entry:<br>
   %0 = load i32, i32* %a<br>
@@ -130,6 +134,7 @@ define double @int_to_double_rm_optsize(<br>
 ; SSE2_X86-NEXT:    fldl (%esp)<br>
 ; SSE2_X86-NEXT:    movl %ebp, %esp<br>
 ; SSE2_X86-NEXT:    popl %ebp<br>
+; SSE2_X86-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SSE2_X86-NEXT:    retl<br>
 ;<br>
 ; AVX_X86-LABEL: int_to_double_rm_optsize:<br>
@@ -147,6 +152,7 @@ define double @int_to_double_rm_optsize(<br>
 ; AVX_X86-NEXT:    fldl (%esp)<br>
 ; AVX_X86-NEXT:    movl %ebp, %esp<br>
 ; AVX_X86-NEXT:    popl %ebp<br>
+; AVX_X86-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; AVX_X86-NEXT:    retl<br>
 entry:<br>
   %0 = load i32, i32* %a<br>
@@ -174,6 +180,7 @@ define float @int_to_float_rr(i32 %a) {<br>
 ; SSE2_X86-NEXT:    movss %xmm0, (%esp)<br>
 ; SSE2_X86-NEXT:    flds (%esp)<br>
 ; SSE2_X86-NEXT:    popl %eax<br>
+; SSE2_X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; SSE2_X86-NEXT:    retl<br>
 ;<br>
 ; AVX_X86-LABEL: int_to_float_rr:<br>
@@ -184,6 +191,7 @@ define float @int_to_float_rr(i32 %a) {<br>
 ; AVX_X86-NEXT:    vmovss %xmm0, (%esp)<br>
 ; AVX_X86-NEXT:    flds (%esp)<br>
 ; AVX_X86-NEXT:    popl %eax<br>
+; AVX_X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; AVX_X86-NEXT:    retl<br>
 entry:<br>
   %0 = sitofp i32 %a to float<br>
@@ -211,6 +219,7 @@ define float @int_to_float_rm(i32* %a) {<br>
 ; SSE2_X86-NEXT:    movss %xmm0, (%esp)<br>
 ; SSE2_X86-NEXT:    flds (%esp)<br>
 ; SSE2_X86-NEXT:    popl %eax<br>
+; SSE2_X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; SSE2_X86-NEXT:    retl<br>
 ;<br>
 ; AVX_X86-LABEL: int_to_float_rm:<br>
@@ -222,6 +231,7 @@ define float @int_to_float_rm(i32* %a) {<br>
 ; AVX_X86-NEXT:    vmovss %xmm0, (%esp)<br>
 ; AVX_X86-NEXT:    flds (%esp)<br>
 ; AVX_X86-NEXT:    popl %eax<br>
+; AVX_X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; AVX_X86-NEXT:    retl<br>
 entry:<br>
   %0 = load i32, i32* %a<br>
@@ -249,6 +259,7 @@ define float @int_to_float_rm_optsize(i3<br>
 ; SSE2_X86-NEXT:    movss %xmm0, (%esp)<br>
 ; SSE2_X86-NEXT:    flds (%esp)<br>
 ; SSE2_X86-NEXT:    popl %eax<br>
+; SSE2_X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; SSE2_X86-NEXT:    retl<br>
 ;<br>
 ; AVX_X86-LABEL: int_to_float_rm_optsize:<br>
@@ -260,6 +271,7 @@ define float @int_to_float_rm_optsize(i3<br>
 ; AVX_X86-NEXT:    vmovss %xmm0, (%esp)<br>
 ; AVX_X86-NEXT:    flds (%esp)<br>
 ; AVX_X86-NEXT:    popl %eax<br>
+; AVX_X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; AVX_X86-NEXT:    retl<br>
 entry:<br>
   %0 = load i32, i32* %a<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-store.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fast-isel-store.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/fast-isel-store.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-store.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>fast-isel-store.ll Tue Nov  7 06:40:27 2017<br>
@@ -375,6 +375,7 @@ define <4 x double> @test_store_4xf64(<4<br>
 ; SSE64-NEXT:    movupd %xmm0, (%eax)<br>
 ; SSE64-NEXT:    movupd %xmm1, 16(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVX32-LABEL: test_store_4xf64:<br>
@@ -413,6 +414,7 @@ define <4 x double> @test_store_4xf64_al<br>
 ; SSE64-NEXT:    movapd %xmm0, (%eax)<br>
 ; SSE64-NEXT:    movapd %xmm1, 16(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVX32-LABEL: test_store_4xf64_aligned:<br>
@@ -452,6 +454,7 @@ define <16 x i32> @test_store_16xi32(<16<br>
 ; SSE64-NEXT:    movups %xmm2, 32(%eax)<br>
 ; SSE64-NEXT:    movups %xmm3, 48(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVXONLY32-LABEL: test_store_16xi32:<br>
@@ -501,6 +504,7 @@ define <16 x i32> @test_store_16xi32_ali<br>
 ; SSE64-NEXT:    movaps %xmm2, 32(%eax)<br>
 ; SSE64-NEXT:    movaps %xmm3, 48(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVXONLY32-LABEL: test_store_16xi32_aligned:<br>
@@ -550,6 +554,7 @@ define <16 x float> @test_store_16xf32(<<br>
 ; SSE64-NEXT:    movups %xmm2, 32(%eax)<br>
 ; SSE64-NEXT:    movups %xmm3, 48(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVXONLY32-LABEL: test_store_16xf32:<br>
@@ -599,6 +604,7 @@ define <16 x float> @test_store_16xf32_a<br>
 ; SSE64-NEXT:    movaps %xmm2, 32(%eax)<br>
 ; SSE64-NEXT:    movaps %xmm3, 48(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVXONLY32-LABEL: test_store_16xf32_aligned:<br>
@@ -656,6 +662,7 @@ define <8 x double> @test_store_8xf64(<8<br>
 ; SSE64-NEXT:    movupd %xmm2, 32(%eax)<br>
 ; SSE64-NEXT:    movupd %xmm3, 48(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVXONLY32-LABEL: test_store_8xf64:<br>
@@ -682,6 +689,7 @@ define <8 x double> @test_store_8xf64(<8<br>
 ; AVXONLY64-NEXT:    vmovupd %ymm1, 32(%eax)<br>
 ; AVXONLY64-NEXT:    movl %ebp, %esp<br>
 ; AVXONLY64-NEXT:    popl %ebp<br>
+; AVXONLY64-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; AVXONLY64-NEXT:    retl<br>
 ;<br>
 ; AVX51232-LABEL: test_store_8xf64:<br>
@@ -729,6 +737,7 @@ define <8 x double> @test_store_8xf64_al<br>
 ; SSE64-NEXT:    movapd %xmm2, 32(%eax)<br>
 ; SSE64-NEXT:    movapd %xmm3, 48(%eax)<br>
 ; SSE64-NEXT:    addl $12, %esp<br>
+; SSE64-NEXT:   .cfi_def_cfa_offset 4<br>
 ; SSE64-NEXT:    retl<br>
 ;<br>
 ; AVXONLY32-LABEL: test_store_8xf64_aligned:<br>
@@ -755,6 +764,7 @@ define <8 x double> @test_store_8xf64_al<br>
 ; AVXONLY64-NEXT:    vmovapd %ymm1, 32(%eax)<br>
 ; AVXONLY64-NEXT:    movl %ebp, %esp<br>
 ; AVXONLY64-NEXT:    popl %ebp<br>
+; AVXONLY64-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; AVXONLY64-NEXT:    retl<br>
 ;<br>
 ; AVX51232-LABEL: test_store_8xf64_aligned:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic-2.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/frame-lowering-debug-intrinsic-2.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/frame-lowering-<wbr>debug-intrinsic-2.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic-2.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic-2.ll Tue Nov  7 06:40:27 2017<br>
@@ -18,11 +18,15 @@ entry:<br>
 }<br>
<br>
 ; CHECK-LABEL: noDebug<br>
-; CHECK:       addq  $24, %rsp<br>
-; CHECK:       popq  %rbx<br>
-; CHECK-NEXT:  popq  %r14<br>
-; CHECK-NEXT:  retq<br>
-<br>
+; CHECK:        addq   $16, %rsp<br>
+; CHECK-NEXT:    .cfi_adjust_cfa_offset -16<br>
+; CHECK-NEXT:  addq    $8, %rsp<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 24<br>
+; CHECK-NEXT:  popq    %rbx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 16<br>
+; CHECK-NEXT:  popq    %r14<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
+; CHECK-NEXT:  retq<br>
<br>
 define void @withDebug() !dbg !18 {<br>
 entry:<br>
@@ -42,9 +46,11 @@ entry:<br>
 ; CHECK-LABEL: withDebug<br>
 ; CHECK:       callq printf<br>
 ; CHECK:       callq printf<br>
-; CHECK-NEXT:  addq  $24, %rsp<br>
+; CHECK-NEXT: addq $16, %rsp<br>
 ; CHECK:       popq  %rbx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 16<br>
 ; CHECK-NEXT:  popq  %r14<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:  retq<br>
<br>
 declare { i64, i1 } @llvm.uadd.with.overflow.i64(<wbr>i64, i64)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/frame-lowering-debug-intrinsic.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/frame-lowering-<wbr>debug-intrinsic.ll?rev=317579&<wbr>r1=317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>frame-lowering-debug-<wbr>intrinsic.ll Tue Nov  7 06:40:27 2017<br>
@@ -9,6 +9,7 @@ define i64 @fn1NoDebug(i64 %a) {<br>
<br>
 ; CHECK-LABEL: fn1NoDebug<br>
 ; CHECK: popq %rcx<br>
+; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT: ret<br>
<br>
 define i64 @fn1WithDebug(i64 %a) !dbg !4 {<br>
@@ -19,6 +20,7 @@ define i64 @fn1WithDebug(i64 %a) !dbg !4<br>
<br>
 ; CHECK-LABEL: fn1WithDebug<br>
 ; CHECK: popq %rcx<br>
+; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT: ret<br>
<br>
 %struct.Buffer = type { i8, [63 x i8] }<br>
@@ -33,6 +35,7 @@ define void @fn2NoDebug(%struct.Buffer*<br>
 ; CHECK-NOT: sub<br>
 ; CHECK: mov<br>
 ; CHECK-NEXT: pop<br>
+; CHECK-NEXT: .cfi_def_cfa %rsp, 8<br>
 ; CHECK-NEXT: ret<br>
<br>
 define void @fn2WithDebug(%struct.Buffer* byval align 64 %p1) !dbg !8 {<br>
@@ -46,6 +49,7 @@ define void @fn2WithDebug(%struct.Buffer<br>
 ; CHECK-NOT: sub<br>
 ; CHECK: mov<br>
 ; CHECK-NEXT: pop<br>
+; CHECK-NEXT: .cfi_def_cfa %rsp, 8<br>
 ; CHECK-NEXT: ret<br>
<br>
 declare i64 @fn(i64, i64)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>haddsub-2.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-2.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/haddsub-2.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>haddsub-2.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>haddsub-2.ll Tue Nov  7 06:40:27 2017<br>
@@ -724,11 +724,17 @@ define <16 x i16> @avx2_vphadd_w_test(<1<br>
 ; SSE3-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1]<br>
 ; SSE3-NEXT:    punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm5[0]<br>
 ; SSE3-NEXT:    popq %rbx<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 48<br>
 ; SSE3-NEXT:    popq %r12<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 40<br>
 ; SSE3-NEXT:    popq %r13<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 32<br>
 ; SSE3-NEXT:    popq %r14<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 24<br>
 ; SSE3-NEXT:    popq %r15<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 16<br>
 ; SSE3-NEXT:    popq %rbp<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 8<br>
 ; SSE3-NEXT:    retq<br>
 ;<br>
 ; SSSE3-LABEL: avx2_vphadd_w_test:<br>
@@ -1351,11 +1357,17 @@ define <16 x i16> @avx2_hadd_w(<16 x i16<br>
 ; SSE3-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1]<br>
 ; SSE3-NEXT:    punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm5[0]<br>
 ; SSE3-NEXT:    popq %rbx<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 48<br>
 ; SSE3-NEXT:    popq %r12<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 40<br>
 ; SSE3-NEXT:    popq %r13<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 32<br>
 ; SSE3-NEXT:    popq %r14<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 24<br>
 ; SSE3-NEXT:    popq %r15<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 16<br>
 ; SSE3-NEXT:    popq %rbp<br>
+; SSE3-NEXT:   .cfi_def_cfa_offset 8<br>
 ; SSE3-NEXT:    retq<br>
 ;<br>
 ; SSSE3-LABEL: avx2_hadd_w:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>hipe-cc64.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/hipe-cc64.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/hipe-cc64.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>hipe-cc64.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>hipe-cc64.ll Tue Nov  7 06:40:27 2017<br>
@@ -87,6 +87,7 @@ define cc 11 { i64, i64, i64 } @tailcall<br>
   ; CHECK-NEXT: movl   $47, %ecx<br>
   ; CHECK-NEXT: movl   $63, %r8d<br>
   ; CHECK-NEXT: popq   %rax<br>
+  ; CHECK-NEXT: .cfi_def_cfa_offset 16<br>
   ; CHECK-NEXT: jmp    tailcallee<br>
   %ret = tail call cc11 { i64, i64, i64 } @tailcallee(i64 %hp, i64 %p, i64 15,<br>
      i64 31, i64 47, i64 63, i64 79) #1<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>illegal-bitfield-loadstore.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/illegal-bitfield-loadstore.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/illegal-bitfield-<wbr>loadstore.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>illegal-bitfield-loadstore.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>illegal-bitfield-loadstore.ll Tue Nov  7 06:40:27 2017<br>
@@ -81,6 +81,7 @@ define void @i24_insert_bit(i24* %a, i1<br>
 ; X86-NEXT:    orl %edx, %eax<br>
 ; X86-NEXT:    movw %ax, (%ecx)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: i24_insert_bit:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>imul.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/imul.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/imul.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>imul.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>imul.ll Tue Nov  7 06:40:27 2017<br>
@@ -307,6 +307,7 @@ define i64 @test5(i64 %a) {<br>
 ; X86-NEXT:    subl %ecx, %edx<br>
 ; X86-NEXT:    subl %esi, %edx<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 entry:<br>
        %tmp3 = mul i64 %a, -31<br>
@@ -362,6 +363,7 @@ define i64 @test7(i64 %a) {<br>
 ; X86-NEXT:    subl %ecx, %edx<br>
 ; X86-NEXT:    subl %esi, %edx<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 entry:<br>
        %tmp3 = mul i64 %a, -33<br>
@@ -390,6 +392,7 @@ define i64 @testOverflow(i64 %a) {<br>
 ; X86-NEXT:    addl %esi, %edx<br>
 ; X86-NEXT:    subl {{[0-9]+}}(%esp), %edx<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 entry:<br>
        %tmp3 = mul i64 %a, 9223372036854775807<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse1.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/lea-opt-cse1.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/lea-opt-cse1.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse1.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse1.ll Tue Nov  7 06:40:27 2017<br>
@@ -30,6 +30,7 @@ define void @test_func(%struct.SA* nocap<br>
 ; X86-NEXT:    leal 1(%edx,%ecx), %ecx<br>
 ; X86-NEXT:    movl %ecx, 16(%eax)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
  entry:<br>
    %h0 = getelementptr inbounds %struct.SA, %struct.SA* %ctx, i64 0, i32 0<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse2.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/lea-opt-cse2.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/lea-opt-cse2.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse2.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse2.ll Tue Nov  7 06:40:27 2017<br>
@@ -46,7 +46,9 @@ define void @foo(%struct.SA* nocapture %<br>
 ; X86-NEXT:    leal 1(%esi,%edx), %ecx<br>
 ; X86-NEXT:    movl %ecx, 16(%eax)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    popl %edi<br>
+; X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
  entry:<br>
    br label %loop<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse3.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/lea-opt-cse3.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/lea-opt-cse3.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse3.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse3.ll Tue Nov  7 06:40:27 2017<br>
@@ -91,6 +91,7 @@ define i32 @foo1_mult_basic_blocks(i32 %<br>
 ; X86-NEXT:    movl %ecx, %eax<br>
 ; X86-NEXT:  .LBB2_2: # %exit<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 entry:<br>
   %mul = shl i32 %b, 2<br>
@@ -143,6 +144,7 @@ define i32 @foo1_mult_basic_blocks_illeg<br>
 ; X86-NEXT:    movl %ecx, %eax<br>
 ; X86-NEXT:  .LBB3_2: # %exit<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 entry:<br>
   %mul = shl i32 %b, 1<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse4.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/lea-opt-cse4.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/lea-opt-cse4.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse4.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>lea-opt-cse4.ll Tue Nov  7 06:40:27 2017<br>
@@ -36,6 +36,7 @@ define void @foo(%struct.SA* nocapture %<br>
 ; X86-NEXT:    leal 1(%ecx,%edx), %ecx<br>
 ; X86-NEXT:    movl %ecx, 16(%eax)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
  entry:<br>
    %h0 = getelementptr inbounds %struct.SA, %struct.SA* %ctx, i64 0, i32 0<br>
@@ -110,7 +111,9 @@ define void @foo_loop(%struct.SA* nocapt<br>
 ; X86-NEXT:    addl %ecx, %edx<br>
 ; X86-NEXT:    movl %edx, 16(%eax)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    popl %edi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
  entry:<br>
    br label %loop<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>legalize-shift-64.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/legalize-shift-64.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/legalize-shift-64.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>legalize-shift-64.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>legalize-shift-64.ll Tue Nov  7 06:40:27 2017<br>
@@ -117,9 +117,13 @@ define <2 x i64> @test5(<2 x i64> %A, <2<br>
 ; CHECK-NEXT:    movl %esi, 4(%eax)<br>
 ; CHECK-NEXT:    movl %edi, (%eax)<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 16<br>
 ; CHECK-NEXT:    popl %edi<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 12<br>
 ; CHECK-NEXT:    popl %ebx<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    popl %ebp<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl $4<br>
   %shl = shl <2 x i64> %A, %B<br>
   ret <2 x i64> %shl<br>
@@ -160,6 +164,7 @@ define i32 @test6() {<br>
 ; CHECK-NEXT:  .LBB5_4: # %if.then<br>
 ; CHECK-NEXT:    movl %ebp, %esp<br>
 ; CHECK-NEXT:    popl %ebp<br>
+; CHECK-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; CHECK-NEXT:    retl<br>
   %x = alloca i32, align 4<br>
   %t = alloca i64, align 8<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>live-out-reg-info.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/live-out-reg-info.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/live-out-reg-info.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>live-out-reg-info.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>live-out-reg-info.ll Tue Nov  7 06:40:27 2017<br>
@@ -18,6 +18,7 @@ define void @foo(i32 %a) {<br>
 ; CHECK-NEXT:    callq qux<br>
 ; CHECK-NEXT:  .LBB0_2: # %false<br>
 ; CHECK-NEXT:    popq %rax<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   %t0 = lshr i32 %a, 23<br>
   br label %next<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>load-combine.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/load-combine.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/load-combine.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>load-combine.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>load-combine.ll Tue Nov  7 06:40:27 2017<br>
@@ -376,6 +376,7 @@ define i32 @load_i32_by_i8_bswap_uses(i3<br>
 ; CHECK-NEXT:    orl %ecx, %eax<br>
 ; CHECK-NEXT:    orl %edx, %eax<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 ;<br>
 ; CHECK64-LABEL: load_i32_by_i8_bswap_uses:<br>
@@ -496,6 +497,7 @@ define i32 @load_i32_by_i8_bswap_store_i<br>
 ; CHECK-NEXT:    movzbl 3(%ecx), %eax<br>
 ; CHECK-NEXT:    orl %edx, %eax<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 ;<br>
 ; CHECK64-LABEL: load_i32_by_i8_bswap_store_in_<wbr>between:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>masked_gather_scatter.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/masked_gather_scatter.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/masked_gather_<wbr>scatter.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>masked_gather_scatter.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>masked_gather_scatter.ll Tue Nov  7 06:40:27 2017<br>
@@ -1690,6 +1690,7 @@ define <16 x i64> @test_gather_16i64(<16<br>
 ; KNL_32-NEXT:    vmovdqa64 %zmm2, %zmm0<br>
 ; KNL_32-NEXT:    movl %ebp, %esp<br>
 ; KNL_32-NEXT:    popl %ebp<br>
+; KNL_32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL_32-NEXT:    retl<br>
 ;<br>
 ; SKX-LABEL: test_gather_16i64:<br>
@@ -1724,6 +1725,7 @@ define <16 x i64> @test_gather_16i64(<16<br>
 ; SKX_32-NEXT:    vmovdqa64 %zmm2, %zmm0<br>
 ; SKX_32-NEXT:    movl %ebp, %esp<br>
 ; SKX_32-NEXT:    popl %ebp<br>
+; SKX_32-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SKX_32-NEXT:    retl<br>
   %res = call <16 x i64> @llvm.masked.gather.v16i64.<wbr>v16p0i64(<16 x i64*> %ptrs, i32 4, <16 x i1> %mask, <16 x i64> %src0)<br>
   ret <16 x i64> %res<br>
@@ -1807,6 +1809,7 @@ define <16 x double> @test_gather_16f64(<br>
 ; KNL_32-NEXT:    vmovapd %zmm2, %zmm0<br>
 ; KNL_32-NEXT:    movl %ebp, %esp<br>
 ; KNL_32-NEXT:    popl %ebp<br>
+; KNL_32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL_32-NEXT:    retl<br>
 ;<br>
 ; SKX-LABEL: test_gather_16f64:<br>
@@ -1841,6 +1844,7 @@ define <16 x double> @test_gather_16f64(<br>
 ; SKX_32-NEXT:    vmovapd %zmm2, %zmm0<br>
 ; SKX_32-NEXT:    movl %ebp, %esp<br>
 ; SKX_32-NEXT:    popl %ebp<br>
+; SKX_32-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SKX_32-NEXT:    retl<br>
   %res = call <16 x double> @llvm.masked.gather.v16f64.<wbr>v16p0f64(<16 x double*> %ptrs, i32 4, <16 x i1> %mask, <16 x double> %src0)<br>
   ret <16 x double> %res<br>
@@ -1922,6 +1926,7 @@ define void @test_scatter_16i64(<16 x i6<br>
 ; KNL_32-NEXT:    vpscatterdq %zmm1, (,%ymm0) {%k2}<br>
 ; KNL_32-NEXT:    movl %ebp, %esp<br>
 ; KNL_32-NEXT:    popl %ebp<br>
+; KNL_32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL_32-NEXT:    vzeroupper<br>
 ; KNL_32-NEXT:    retl<br>
 ;<br>
@@ -1955,6 +1960,7 @@ define void @test_scatter_16i64(<16 x i6<br>
 ; SKX_32-NEXT:    vpscatterdq %zmm1, (,%ymm0) {%k2}<br>
 ; SKX_32-NEXT:    movl %ebp, %esp<br>
 ; SKX_32-NEXT:    popl %ebp<br>
+; SKX_32-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SKX_32-NEXT:    vzeroupper<br>
 ; SKX_32-NEXT:    retl<br>
   call void @llvm.masked.scatter.v16i64.<wbr>v16p0i64(<16 x i64> %src0, <16 x i64*> %ptrs, i32 4, <16 x i1> %mask)<br>
@@ -2038,6 +2044,7 @@ define void @test_scatter_16f64(<16 x do<br>
 ; KNL_32-NEXT:    vscatterdpd %zmm1, (,%ymm0) {%k2}<br>
 ; KNL_32-NEXT:    movl %ebp, %esp<br>
 ; KNL_32-NEXT:    popl %ebp<br>
+; KNL_32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL_32-NEXT:    vzeroupper<br>
 ; KNL_32-NEXT:    retl<br>
 ;<br>
@@ -2071,6 +2078,7 @@ define void @test_scatter_16f64(<16 x do<br>
 ; SKX_32-NEXT:    vscatterdpd %zmm1, (,%ymm0) {%k2}<br>
 ; SKX_32-NEXT:    movl %ebp, %esp<br>
 ; SKX_32-NEXT:    popl %ebp<br>
+; SKX_32-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SKX_32-NEXT:    vzeroupper<br>
 ; SKX_32-NEXT:    retl<br>
   call void @llvm.masked.scatter.v16f64.<wbr>v16p0f64(<16 x double> %src0, <16 x double*> %ptrs, i32 4, <16 x i1> %mask)<br>
@@ -2115,6 +2123,7 @@ define <4 x i64> @test_pr28312(<4 x i64*<br>
 ; KNL_32-NEXT:    vpaddq %ymm0, %ymm1, %ymm0<br>
 ; KNL_32-NEXT:    movl %ebp, %esp<br>
 ; KNL_32-NEXT:    popl %ebp<br>
+; KNL_32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL_32-NEXT:    retl<br>
 ;<br>
 ; SKX-LABEL: test_pr28312:<br>
@@ -2142,6 +2151,7 @@ define <4 x i64> @test_pr28312(<4 x i64*<br>
 ; SKX_32-NEXT:    vpaddq %ymm0, %ymm1, %ymm0<br>
 ; SKX_32-NEXT:    movl %ebp, %esp<br>
 ; SKX_32-NEXT:    popl %ebp<br>
+; SKX_32-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; SKX_32-NEXT:    retl<br>
   %g1 = call <4 x i64> @llvm.masked.gather.v4i64.<wbr>v4p0i64(<4 x i64*> %p1, i32 8, <4 x i1> %k, <4 x i64> undef)<br>
   %g2 = call <4 x i64> @llvm.masked.gather.v4i64.<wbr>v4p0i64(<4 x i64*> %p1, i32 8, <4 x i1> %k, <4 x i64> undef)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>memset-nonzero.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/memset-nonzero.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/memset-nonzero.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>memset-nonzero.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>memset-nonzero.ll Tue Nov  7 06:40:27 2017<br>
@@ -148,6 +148,7 @@ define void @memset_256_nonzero_bytes(i8<br>
 ; SSE-NEXT:    movl $256, %edx # imm = 0x100<br>
 ; SSE-NEXT:    callq memset<br>
 ; SSE-NEXT:    popq %rax<br>
+; SSE-NEXT:    .cfi_def_cfa_offset 8<br>
 ; SSE-NEXT:    retq<br>
 ;<br>
 ; SSE2FAST-LABEL: memset_256_nonzero_bytes:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>merge-consecutive-loads-128.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/merge-consecutive-loads-128.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/merge-consecutive-<wbr>loads-128.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>merge-consecutive-loads-128.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>merge-consecutive-loads-128.ll Tue Nov  7 06:40:27 2017<br>
@@ -72,7 +72,9 @@ define <2 x i64> @merge_2i64_i64_12(i64*<br>
 ; X32-SSE1-NEXT:    movl %esi, 4(%eax)<br>
 ; X32-SSE1-NEXT:    movl %edx, (%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_2i64_i64_12:<br>
@@ -384,6 +386,7 @@ define <4 x i32> @merge_4i32_i32_23u5(i3<br>
 ; X32-SSE1-NEXT:    movl %edx, (%eax)<br>
 ; X32-SSE1-NEXT:    movl %ecx, 12(%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_4i32_i32_23u5:<br>
@@ -435,7 +438,9 @@ define <4 x i32> @merge_4i32_i32_23u5_in<br>
 ; X32-SSE1-NEXT:    movl %edx, (%eax)<br>
 ; X32-SSE1-NEXT:    movl %ecx, 12(%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_4i32_i32_23u5_inc2:<br>
@@ -490,7 +495,9 @@ define <4 x i32> @merge_4i32_i32_23u5_in<br>
 ; X32-SSE1-NEXT:    movl %edx, (%eax)<br>
 ; X32-SSE1-NEXT:    movl %ecx, 12(%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_4i32_i32_23u5_inc3:<br>
@@ -649,7 +656,9 @@ define <4 x i32> @merge_4i32_i32_45zz_in<br>
 ; X32-SSE1-NEXT:    movl $0, 12(%eax)<br>
 ; X32-SSE1-NEXT:    movl $0, 8(%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_4i32_i32_45zz_inc4:<br>
@@ -701,7 +710,9 @@ define <4 x i32> @merge_4i32_i32_45zz_in<br>
 ; X32-SSE1-NEXT:    movl $0, 12(%eax)<br>
 ; X32-SSE1-NEXT:    movl $0, 8(%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_4i32_i32_45zz_inc5:<br>
@@ -751,7 +762,9 @@ define <8 x i16> @merge_8i16_i16_23u567u<br>
 ; X32-SSE1-NEXT:    movl %esi, 6(%eax)<br>
 ; X32-SSE1-NEXT:    movl %edx, (%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_8i16_i16_23u567u9:<br>
@@ -897,9 +910,13 @@ define <16 x i8> @merge_16i8_i8_01u34567<br>
 ; X32-SSE1-NEXT:    movl %esi, 3(%eax)<br>
 ; X32-SSE1-NEXT:    movw %bp, (%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 16<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 12<br>
 ; X32-SSE1-NEXT:    popl %ebx<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %ebp<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_16i8_i8_<wbr>01u3456789ABCDuF:<br>
@@ -1129,7 +1146,9 @@ define <2 x i64> @merge_2i64_i64_12_vola<br>
 ; X32-SSE1-NEXT:    movl %esi, 4(%eax)<br>
 ; X32-SSE1-NEXT:    movl %edx, (%eax)<br>
 ; X32-SSE1-NEXT:    popl %esi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-SSE1-NEXT:    popl %edi<br>
+; X32-SSE1-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-SSE1-NEXT:    retl $4<br>
 ;<br>
 ; X32-SSE41-LABEL: merge_2i64_i64_12_volatile:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>movtopush.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/movtopush.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/movtopush.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>movtopush.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>movtopush.ll Tue Nov  7 06:40:27 2017<br>
@@ -382,8 +382,10 @@ entry:<br>
 ; LINUX: pushl   $1<br>
 ; LINUX: .cfi_adjust_cfa_offset 4<br>
 ; LINUX: calll   good<br>
-; LINUX: addl    $28, %esp<br>
+; LINUX: addl    $16, %esp<br>
 ; LINUX: .cfi_adjust_cfa_offset -16<br>
+; LINUX: addl    $12, %esp<br>
+; LINUX: .cfi_def_cfa_offset 4<br>
 ; LINUX-NOT: add<br>
 ; LINUX: retl<br>
 define void @pr27140() optsize {<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>mul-constant-result.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-constant-result.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/mul-constant-<wbr>result.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>mul-constant-result.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>mul-constant-result.ll Tue Nov  7 06:40:27 2017<br>
@@ -34,84 +34,116 @@ define i32 @mult(i32, i32) local_unnamed<br>
 ; X86-NEXT:  .LBB0_6:<br>
 ; X86-NEXT:    addl %eax, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_39:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    xorl %eax, %eax<br>
 ; X86-NEXT:  .LBB0_40:<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_7:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_8:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    shll $2, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_9:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_10:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    addl %eax, %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_11:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (,%eax,8), %ecx<br>
 ; X86-NEXT:    jmp .LBB0_12<br>
 ; X86-NEXT:  .LBB0_13:<br>
 ; X86-NEXT:    shll $3, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_14:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,8), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_15:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    addl %eax, %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_16:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %ecx<br>
 ; X86-NEXT:    leal (%eax,%ecx,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_17:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    shll $2, %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_18:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %ecx<br>
 ; X86-NEXT:    leal (%eax,%ecx,4), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_19:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %ecx<br>
 ; X86-NEXT:    jmp .LBB0_20<br>
 ; X86-NEXT:  .LBB0_21:<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_22:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    shll $4, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_23:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    movl %eax, %ecx<br>
 ; X86-NEXT:    shll $4, %ecx<br>
 ; X86-NEXT:    addl %ecx, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_24:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    addl %eax, %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,8), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_25:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %ecx<br>
 ; X86-NEXT:    shll $2, %ecx<br>
 ; X86-NEXT:    jmp .LBB0_12<br>
@@ -119,20 +151,26 @@ define i32 @mult(i32, i32) local_unnamed<br>
 ; X86-NEXT:    shll $2, %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_27:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %ecx<br>
 ; X86-NEXT:    leal (%eax,%ecx,4), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_28:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %ecx<br>
 ; X86-NEXT:  .LBB0_20:<br>
 ; X86-NEXT:    leal (%eax,%ecx,4), %ecx<br>
 ; X86-NEXT:    addl %ecx, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_29:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %ecx<br>
 ; X86-NEXT:    shll $3, %ecx<br>
 ; X86-NEXT:    jmp .LBB0_12<br>
@@ -140,13 +178,17 @@ define i32 @mult(i32, i32) local_unnamed<br>
 ; X86-NEXT:    shll $3, %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_31:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,4), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_32:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,8), %ecx<br>
 ; X86-NEXT:    leal (%ecx,%ecx,2), %ecx<br>
 ; X86-NEXT:    jmp .LBB0_12<br>
@@ -154,21 +196,27 @@ define i32 @mult(i32, i32) local_unnamed<br>
 ; X86-NEXT:    leal (%eax,%eax,8), %eax<br>
 ; X86-NEXT:    leal (%eax,%eax,2), %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_34:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,8), %ecx<br>
 ; X86-NEXT:    leal (%ecx,%ecx,2), %ecx<br>
 ; X86-NEXT:    addl %ecx, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_35:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    leal (%eax,%eax,8), %ecx<br>
 ; X86-NEXT:    leal (%ecx,%ecx,2), %ecx<br>
 ; X86-NEXT:    addl %eax, %ecx<br>
 ; X86-NEXT:    addl %ecx, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_36:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    movl %eax, %ecx<br>
 ; X86-NEXT:    shll $5, %ecx<br>
 ; X86-NEXT:    subl %eax, %ecx<br>
@@ -180,10 +228,13 @@ define i32 @mult(i32, i32) local_unnamed<br>
 ; X86-NEXT:    subl %eax, %ecx<br>
 ; X86-NEXT:    movl %ecx, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ; X86-NEXT:  .LBB0_38:<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    shll $5, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-HSW-LABEL: mult:<br>
@@ -857,8 +908,11 @@ define i32 @foo() local_unnamed_addr #0<br>
 ; X86-NEXT:    negl %ecx<br>
 ; X86-NEXT:    movl %ecx, %eax<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 12<br>
 ; X86-NEXT:    popl %edi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    popl %ebx<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-HSW-LABEL: foo:<br>
@@ -1072,10 +1126,15 @@ define i32 @foo() local_unnamed_addr #0<br>
 ; X64-HSW-NEXT:    negl %ecx<br>
 ; X64-HSW-NEXT:    movl %ecx, %eax<br>
 ; X64-HSW-NEXT:    addq $8, %rsp<br>
+; X64-HSW-NEXT:    .cfi_def_cfa_offset 40<br>
 ; X64-HSW-NEXT:    popq %rbx<br>
+; X64-HSW-NEXT:    .cfi_def_cfa_offset 32<br>
 ; X64-HSW-NEXT:    popq %r14<br>
+; X64-HSW-NEXT:    .cfi_def_cfa_offset 24<br>
 ; X64-HSW-NEXT:    popq %r15<br>
+; X64-HSW-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X64-HSW-NEXT:    popq %rbp<br>
+; X64-HSW-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-HSW-NEXT:    retq<br>
   %1 = tail call i32 @mult(i32 1, i32 0)<br>
   %2 = icmp ne i32 %1, 1<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>mul-i256.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i256.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/mul-i256.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>mul-i256.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>mul-i256.ll Tue Nov  7 06:40:27 2017<br>
@@ -349,10 +349,15 @@ define void @test(i256* %a, i256* %b, i2<br>
 ; X32-NEXT:    movl %eax, 24(%ecx)<br>
 ; X32-NEXT:    movl %edx, 28(%ecx)<br>
 ; X32-NEXT:    addl $88, %esp<br>
+; X32-NEXT:   .cfi_def_cfa_offset 20<br>
 ; X32-NEXT:    popl %esi<br>
+; X32-NEXT:   .cfi_def_cfa_offset 16<br>
 ; X32-NEXT:    popl %edi<br>
+; X32-NEXT:   .cfi_def_cfa_offset 12<br>
 ; X32-NEXT:    popl %ebx<br>
+; X32-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X32-NEXT:    popl %ebp<br>
+; X32-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X32-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: test:<br>
@@ -421,8 +426,11 @@ define void @test(i256* %a, i256* %b, i2<br>
 ; X64-NEXT:    movq %rax, 16(%r9)<br>
 ; X64-NEXT:    movq %rdx, 24(%r9)<br>
 ; X64-NEXT:    popq %rbx<br>
+; X64-NEXT:    .cfi_def_cfa_offset 24<br>
 ; X64-NEXT:    popq %r14<br>
+; X64-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X64-NEXT:    popq %r15<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
 entry:<br>
   %av = load i256, i256* %a<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>mul128.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul128.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/mul128.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>mul128.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>mul128.ll Tue Nov  7 06:40:27 2017<br>
@@ -86,10 +86,15 @@ define i128 @foo(i128 %t, i128 %u) {<br>
 ; X86-NEXT:    movl %edx, 12(%ecx)<br>
 ; X86-NEXT:    movl %ecx, %eax<br>
 ; X86-NEXT:    addl $8, %esp<br>
+; X86-NEXT:   .cfi_def_cfa_offset 20<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 16<br>
 ; X86-NEXT:    popl %edi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 12<br>
 ; X86-NEXT:    popl %ebx<br>
+; X86-NEXT:   .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    popl %ebp<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl $4<br>
   %k = mul i128 %t, %u<br>
   ret i128 %k<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr21792.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr21792.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr21792.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr21792.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr21792.ll Tue Nov  7 06:40:27 2017<br>
@@ -28,6 +28,7 @@ define void @func(<4 x float> %vx) {<br>
 ; CHECK-NEXT:    leaq stuff+8(%r9), %r9<br>
 ; CHECK-NEXT:    callq toto<br>
 ; CHECK-NEXT:    popq %rax<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
 entry:<br>
   %tmp2 = bitcast <4 x float> %vx to <2 x i64><br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr29061.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr29061.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr29061.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr29061.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr29061.ll Tue Nov  7 06:40:27 2017<br>
@@ -15,6 +15,7 @@ define void @t1(i8 signext %c) {<br>
 ; CHECK-NEXT:    #APP<br>
 ; CHECK-NEXT:    #NO_APP<br>
 ; CHECK-NEXT:    popl %edi<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 entry:<br>
   tail call void asm sideeffect "", "{di},~{dirflag},~{fpsr},~{<wbr>flags}"(i8 %c)<br>
@@ -32,6 +33,7 @@ define void @t2(i8 signext %c) {<br>
 ; CHECK-NEXT:    #APP<br>
 ; CHECK-NEXT:    #NO_APP<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:   .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 entry:<br>
   tail call void asm sideeffect "", "{si},~{dirflag},~{fpsr},~{<wbr>flags}"(i8 %c)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr29112.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr29112.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr29112.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr29112.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr29112.ll Tue Nov  7 06:40:27 2017<br>
@@ -65,6 +65,7 @@ define <4 x float> @bar(<4 x float>* %a1<br>
 ; CHECK-NEXT:    vaddps {{[0-9]+}}(%rsp), %xmm1, %xmm1 # 16-byte Folded Reload<br>
 ; CHECK-NEXT:    vaddps %xmm0, %xmm1, %xmm0<br>
 ; CHECK-NEXT:    addq $88, %rsp<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   %a1 = shufflevector <16 x float>%c1, <16 x float>%c2, <4 x i32> <i32 4, i32 20, i32 1, i32 17><br>
<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr30430.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr30430.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr30430.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr30430.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr30430.ll Tue Nov  7 06:40:27 2017<br>
@@ -108,6 +108,7 @@ define <16 x float> @makefloat(float %f1<br>
 ; CHECK-NEXT:    vmovss %xmm14, (%rsp) # 4-byte Spill<br>
 ; CHECK-NEXT:    movq %rbp, %rsp<br>
 ; CHECK-NEXT:    popq %rbp<br>
+; CHECK-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; CHECK-NEXT:    retq<br>
 entry:<br>
   %__A.addr.i = alloca float, align 4<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32241.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32241.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32241.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32241.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32241.ll Tue Nov  7 06:40:27 2017<br>
@@ -50,7 +50,9 @@ define i32 @_Z3foov() {<br>
 ; CHECK-NEXT:    movw %dx, {{[0-9]+}}(%esp)<br>
 ; CHECK-NEXT:    movzwl {{[0-9]+}}(%esp), %eax<br>
 ; CHECK-NEXT:    addl $16, %esp<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 entry:<br>
   %aa = alloca i16, align 2<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32256.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32256.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32256.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32256.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32256.ll Tue Nov  7 06:40:27 2017<br>
@@ -27,6 +27,7 @@ define void @_Z1av() {<br>
 ; CHECK-NEXT:    andb $1, %al<br>
 ; CHECK-NEXT:    movb %al, {{[0-9]+}}(%esp)<br>
 ; CHECK-NEXT:    addl $2, %esp<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 entry:<br>
   %b = alloca i8, align 1<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32282.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32282.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32282.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32282.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32282.ll Tue Nov  7 06:40:27 2017<br>
@@ -43,6 +43,7 @@ define void @foo() {<br>
 ; X86-NEXT:    orl %eax, %edx<br>
 ; X86-NEXT:    setne {{[0-9]+}}(%esp)<br>
 ; X86-NEXT:    popl %eax<br>
+; X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: foo:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32284.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32284.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32284.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32284.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32284.ll Tue Nov  7 06:40:27 2017<br>
@@ -71,6 +71,7 @@ define void @foo() {<br>
 ; 686-O0-NEXT:    movzbl %al, %ecx<br>
 ; 686-O0-NEXT:    movl %ecx, (%esp)<br>
 ; 686-O0-NEXT:    addl $8, %esp<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 4<br>
 ; 686-O0-NEXT:    retl<br>
 ;<br>
 ; 686-LABEL: foo:<br>
@@ -88,6 +89,7 @@ define void @foo() {<br>
 ; 686-NEXT:    setle %dl<br>
 ; 686-NEXT:    movl %edx, {{[0-9]+}}(%esp)<br>
 ; 686-NEXT:    addl $8, %esp<br>
+; 686-NEXT:    .cfi_def_cfa_offset 4<br>
 ; 686-NEXT:    retl<br>
 entry:<br>
   %a = alloca i8, align 1<br>
@@ -232,10 +234,15 @@ define void @f1() {<br>
 ; 686-O0-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br>
 ; 686-O0-NEXT:    movl %esi, (%esp) # 4-byte Spill<br>
 ; 686-O0-NEXT:    addl $36, %esp<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 20<br>
 ; 686-O0-NEXT:    popl %esi<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 16<br>
 ; 686-O0-NEXT:    popl %edi<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 12<br>
 ; 686-O0-NEXT:    popl %ebx<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 8<br>
 ; 686-O0-NEXT:    popl %ebp<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 4<br>
 ; 686-O0-NEXT:    retl<br>
 ;<br>
 ; 686-LABEL: f1:<br>
@@ -277,8 +284,11 @@ define void @f1() {<br>
 ; 686-NEXT:    movl %eax, _ZN8struct_210member_2_0E<br>
 ; 686-NEXT:    movl $0, _ZN8struct_210member_2_0E+4<br>
 ; 686-NEXT:    addl $1, %esp<br>
+; 686-NEXT:    .cfi_def_cfa_offset 12<br>
 ; 686-NEXT:    popl %esi<br>
+; 686-NEXT:    .cfi_def_cfa_offset 8<br>
 ; 686-NEXT:    popl %edi<br>
+; 686-NEXT:    .cfi_def_cfa_offset 4<br>
 ; 686-NEXT:    retl<br>
 entry:<br>
   %a = alloca i8, align 1<br>
@@ -392,8 +402,11 @@ define void @f2() {<br>
 ; 686-O0-NEXT:    movw %cx, %di<br>
 ; 686-O0-NEXT:    movw %di, (%eax)<br>
 ; 686-O0-NEXT:    addl $2, %esp<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 12<br>
 ; 686-O0-NEXT:    popl %esi<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 8<br>
 ; 686-O0-NEXT:    popl %edi<br>
+; 686-O0-NEXT:    .cfi_def_cfa_offset 4<br>
 ; 686-O0-NEXT:    retl<br>
 ;<br>
 ; 686-LABEL: f2:<br>
@@ -414,6 +427,7 @@ define void @f2() {<br>
 ; 686-NEXT:    sete %dl<br>
 ; 686-NEXT:    movw %dx, (%eax)<br>
 ; 686-NEXT:    addl $2, %esp<br>
+; 686-NEXT:    .cfi_def_cfa_offset 4<br>
 ; 686-NEXT:    retl<br>
 entry:<br>
   %a = alloca i16, align 2<br>
@@ -532,6 +546,7 @@ define void @f3() #0 {<br>
 ; 686-O0-NEXT:    popl %esi<br>
 ; 686-O0-NEXT:    popl %edi<br>
 ; 686-O0-NEXT:    popl %ebp<br>
+; 686-O0-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; 686-O0-NEXT:    retl<br>
 ;<br>
 ; 686-LABEL: f3:<br>
@@ -558,6 +573,7 @@ define void @f3() #0 {<br>
 ; 686-NEXT:    movl %ecx, var_46<br>
 ; 686-NEXT:    movl %ebp, %esp<br>
 ; 686-NEXT:    popl %ebp<br>
+; 686-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; 686-NEXT:    retl<br>
 entry:<br>
   %a = alloca i64, align 8<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32329.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32329.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32329.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32329.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32329.ll Tue Nov  7 06:40:27 2017<br>
@@ -57,9 +57,13 @@ define void @foo() local_unnamed_addr {<br>
 ; X86-NEXT:    imull %eax, %ebx<br>
 ; X86-NEXT:    movb %bl, var_218<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:    .cfi_def_cfa_offset 16<br>
 ; X86-NEXT:    popl %edi<br>
+; X86-NEXT:    .cfi_def_cfa_offset 12<br>
 ; X86-NEXT:    popl %ebx<br>
+; X86-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X86-NEXT:    popl %ebp<br>
+; X86-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: foo:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32345.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32345.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32345.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32345.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32345.ll Tue Nov  7 06:40:27 2017<br>
@@ -84,6 +84,7 @@ define void @foo() {<br>
 ; 6860-NEXT:    popl %edi<br>
 ; 6860-NEXT:    popl %ebx<br>
 ; 6860-NEXT:    popl %ebp<br>
+; 6860-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; 6860-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: foo:<br>
@@ -127,6 +128,7 @@ define void @foo() {<br>
 ; 686-NEXT:    movb %dl, (%eax)<br>
 ; 686-NEXT:    movl %ebp, %esp<br>
 ; 686-NEXT:    popl %ebp<br>
+; 686-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; 686-NEXT:    retl<br>
 bb:<br>
   %tmp = alloca i64, align 8<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr32451.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32451.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr32451.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr32451.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr32451.ll Tue Nov  7 06:40:27 2017<br>
@@ -30,7 +30,9 @@ define i8** @japi1_convert_690(i8**, i8*<br>
 ; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload<br>
 ; CHECK-NEXT:    movl %eax, (%ecx)<br>
 ; CHECK-NEXT:    addl $16, %esp<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    popl %ebx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 top:<br>
   %3 = alloca i8***<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr34088.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr34088.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr34088.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr34088.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr34088.ll Tue Nov  7 06:40:27 2017<br>
@@ -27,6 +27,7 @@ define i32 @pr34088() local_unnamed_addr<br>
 ; CHECK-NEXT:    movsd %xmm0, {{[0-9]+}}(%esp)<br>
 ; CHECK-NEXT:    movl %ebp, %esp<br>
 ; CHECK-NEXT:    popl %ebp<br>
+; CHECK-NEXT:    .cfi_def_cfa %esp, 4<br>
 ; CHECK-NEXT:    retl<br>
 entry:<br>
   %foo = alloca %struct.Foo, align 4<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr34653.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr34653.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr34653.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr34653.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr34653.ll Tue Nov  7 06:40:27 2017<br>
@@ -199,6 +199,7 @@ define void @pr34653() {<br>
 ; CHECK-NEXT:    vmovsd %xmm7, {{[0-9]+}}(%rsp) # 8-byte Spill<br>
 ; CHECK-NEXT:    movq %rbp, %rsp<br>
 ; CHECK-NEXT:    popq %rbp<br>
+; CHECK-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; CHECK-NEXT:    vzeroupper<br>
 ; CHECK-NEXT:    retq<br>
 entry:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>pr9743.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr9743.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/pr9743.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>pr9743.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>pr9743.ll Tue Nov  7 06:40:27 2017<br>
@@ -11,4 +11,5 @@ define void @f() {<br>
 ; CHECK-NEXT:  movq    %rsp, %rbp<br>
 ; CHECK-NEXT:  .cfi_def_cfa_register %rbp<br>
 ; CHECK-NEXT:  popq    %rbp<br>
+; CHECK-NEXT:  .cfi_def_cfa %rsp, 8<br>
 ; CHECK-NEXT:  ret<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-debug.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/push-cfi-debug.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/push-cfi-debug.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-debug.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-debug.ll Tue Nov  7 06:40:27 2017<br>
@@ -23,8 +23,10 @@ declare x86_stdcallcc void @stdfoo(i32,<br>
 ; CHECK: .cfi_adjust_cfa_offset 4<br>
 ; CHECK: calll stdfoo<br>
 ; CHECK: .cfi_adjust_cfa_offset -8<br>
-; CHECK: addl $20, %esp<br>
+; CHECK: addl $8, %esp<br>
 ; CHECK: .cfi_adjust_cfa_offset -8<br>
+; CHECK: addl $12, %esp<br>
+; CHECK: .cfi_def_cfa_offset 4<br>
 define void @test1() #0 !dbg !4 {<br>
 entry:<br>
   tail call void @foo(i32 1, i32 2) #1, !dbg !10<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-obj.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/push-cfi-obj.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/push-cfi-obj.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-obj.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>push-cfi-obj.ll Tue Nov  7 06:40:27 2017<br>
@@ -12,7 +12,7 @@<br>
 ; LINUX-NEXT:    ]<br>
 ; LINUX-NEXT:    Address: 0x0<br>
 ; LINUX-NEXT:    Offset: 0x68<br>
-; LINUX-NEXT:    Size: 64<br>
+; LINUX-NEXT:    Size: 72<br>
 ; LINUX-NEXT:    Link: 0<br>
 ; LINUX-NEXT:    Info: 0<br>
 ; LINUX-NEXT:    AddressAlignment: 4<br>
@@ -22,8 +22,9 @@<br>
 ; LINUX-NEXT:    SectionData (<br>
 ; LINUX-NEXT:      0000: 1C000000 00000000 017A504C 5200017C  |.........zPLR..||<br>
 ; LINUX-NEXT:      0010: 08070000 00000000 1B0C0404 88010000  |................|<br>
-; LINUX-NEXT:      0020: 1C000000 24000000 00000000 1D000000  |....$...........|<br>
+; LINUX-NEXT:      0020: 24000000 24000000 00000000 1D000000  |$...$...........|<br>
 ; LINUX-NEXT:      0030: 04000000 00410E08 8502420D 05432E10  |.....A....B..C..|<br>
+; LINUX-NEXT:      0040: 540C0404 410C0508                    |T...A...|<br>
 ; LINUX-NEXT:    )<br>
<br>
 declare i32 @__gxx_personality_v0(...)<br>
@@ -35,7 +36,7 @@ entry:<br>
           to label %continue unwind label %cleanup<br>
 continue:<br>
   ret void<br>
-cleanup:<br>
+cleanup:<br>
   landingpad { i8*, i32 }<br>
      cleanup<br>
   ret void<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>push-cfi.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/push-cfi.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/push-cfi.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>push-cfi.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>push-cfi.ll Tue Nov  7 06:40:27 2017<br>
@@ -74,8 +74,9 @@ cleanup:<br>
 ; LINUX-NEXT: pushl   $1<br>
 ; LINUX-NEXT: .cfi_adjust_cfa_offset 4<br>
 ; LINUX-NEXT: call<br>
-; LINUX-NEXT: addl $28, %esp<br>
+; LINUX-NEXT: addl $16, %esp<br>
 ; LINUX: .cfi_adjust_cfa_offset -16<br>
+; LINUX: addl $12, %esp<br>
 ; DARWIN-NOT: .cfi_escape<br>
 ; DARWIN-NOT: pushl<br>
 define void @test2_nofp() #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>return-ext.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/return-ext.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/return-ext.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>return-ext.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>return-ext.ll Tue Nov  7 06:40:27 2017<br>
@@ -106,6 +106,7 @@ entry:<br>
 ; CHECK: call<br>
 ; CHECK-NEXT: movzbl<br>
 ; CHECK-NEXT: {{pop|add}}<br>
+; CHECK-NEXT: .cfi_def_cfa_offset {{4|8}}<br>
 ; CHECK-NEXT: ret<br>
 }<br>
<br>
@@ -120,6 +121,7 @@ entry:<br>
 ; CHECK: call<br>
 ; CHECK-NEXT: movzbl<br>
 ; CHECK-NEXT: {{pop|add}}<br>
+; CHECK-NEXT: .cfi_def_cfa_offset {{4|8}}<br>
 ; CHECK-NEXT: ret<br>
 }<br>
<br>
@@ -134,5 +136,6 @@ entry:<br>
 ; CHECK: call<br>
 ; CHECK-NEXT: movzwl<br>
 ; CHECK-NEXT: {{pop|add}}<br>
+; CHECK-NEXT: .cfi_def_cfa_offset {{4|8}}<br>
 ; CHECK-NEXT: ret<br>
 }<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>rtm.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/rtm.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/rtm.ll?rev=317579&<wbr>r1=317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>rtm.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>rtm.ll Tue Nov  7 06:40:27 2017<br>
@@ -75,6 +75,7 @@ define void @f2(i32 %x) nounwind uwtable<br>
 ; X64-NEXT:    xabort $1<br>
 ; X64-NEXT:    callq f1<br>
 ; X64-NEXT:    popq %rax<br>
+; X64-NEXT:    .cfi_def_cfa_offset 8<br>
 ; X64-NEXT:    retq<br>
 entry:<br>
   %x.addr = alloca i32, align 4<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>select-mmx.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/select-mmx.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/select-mmx.ll?rev=<wbr>317579&r1=317578&r2=317579&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>select-mmx.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>select-mmx.ll Tue Nov  7 06:40:27 2017<br>
@@ -48,6 +48,7 @@ define i64 @test47(i64 %arg)  {<br>
 ; I32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; I32-NEXT:    movl %ebp, %esp<br>
 ; I32-NEXT:    popl %ebp<br>
+; I32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; I32-NEXT:    retl<br>
   %cond = icmp eq i64 %arg, 0<br>
   %slct = select i1 %cond, x86_mmx bitcast (i64 7 to x86_mmx), x86_mmx bitcast (i64 0 to x86_mmx)<br>
@@ -100,6 +101,7 @@ define i64 @test49(i64 %arg, i64 %x, i64<br>
 ; I32-NEXT:    movl {{[0-9]+}}(%esp), %edx<br>
 ; I32-NEXT:    movl %ebp, %esp<br>
 ; I32-NEXT:    popl %ebp<br>
+; I32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; I32-NEXT:    retl<br>
   %cond = icmp eq i64 %arg, 0<br>
   %xmmx = bitcast i64 %x to x86_mmx<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>setcc-lowering.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/setcc-lowering.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/setcc-lowering.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>setcc-lowering.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>setcc-lowering.ll Tue Nov  7 06:40:27 2017<br>
@@ -89,6 +89,7 @@ define void @pr26232(i64 %a, <16 x i1> %<br>
 ; KNL-32-NEXT:    jne .LBB1_1<br>
 ; KNL-32-NEXT:  # BB#2: # %for_exit600<br>
 ; KNL-32-NEXT:    popl %esi<br>
+; KNL-32-NEXT:    .cfi_def_cfa_offset 4<br>
 ; KNL-32-NEXT:    retl<br>
 allocas:<br>
   br label %for_test11.preheader<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>shrink_vmul.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/shrink_vmul.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/shrink_vmul.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>shrink_vmul.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>shrink_vmul.ll Tue Nov  7 06:40:27 2017<br>
@@ -31,6 +31,7 @@ define void @mul_2xi8(i8* nocapture read<br>
 ; X86-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1],xmm1[2],xmm2[2],xmm1[3],<wbr>xmm2[3]<br>
 ; X86-NEXT:    movq %xmm1, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_2xi8:<br>
@@ -89,6 +90,7 @@ define void @mul_4xi8(i8* nocapture read<br>
 ; X86-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1],xmm1[2],xmm2[2],xmm1[3],<wbr>xmm2[3]<br>
 ; X86-NEXT:    movdqu %xmm1, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_4xi8:<br>
@@ -148,6 +150,7 @@ define void @mul_8xi8(i8* nocapture read<br>
 ; X86-NEXT:    movdqu %xmm1, 16(%esi,%ecx,4)<br>
 ; X86-NEXT:    movdqu %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_8xi8:<br>
@@ -220,6 +223,7 @@ define void @mul_16xi8(i8* nocapture rea<br>
 ; X86-NEXT:    movdqu %xmm4, 16(%esi,%ecx,4)<br>
 ; X86-NEXT:    movdqu %xmm3, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_16xi8:<br>
@@ -288,6 +292,7 @@ define void @mul_2xi16(i8* nocapture rea<br>
 ; X86-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1],xmm1[2],xmm2[2],xmm1[3],<wbr>xmm2[3]<br>
 ; X86-NEXT:    movq %xmm1, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_2xi16:<br>
@@ -342,6 +347,7 @@ define void @mul_4xi16(i8* nocapture rea<br>
 ; X86-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1],xmm1[2],xmm2[2],xmm1[3],<wbr>xmm2[3]<br>
 ; X86-NEXT:    movdqu %xmm1, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_4xi16:<br>
@@ -399,6 +405,7 @@ define void @mul_8xi16(i8* nocapture rea<br>
 ; X86-NEXT:    movdqu %xmm1, 16(%esi,%ecx,4)<br>
 ; X86-NEXT:    movdqu %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_8xi16:<br>
@@ -469,6 +476,7 @@ define void @mul_16xi16(i8* nocapture re<br>
 ; X86-NEXT:    movdqu %xmm2, 16(%esi,%ecx,4)<br>
 ; X86-NEXT:    movdqu %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_16xi16:<br>
@@ -541,6 +549,7 @@ define void @mul_2xi8_sext(i8* nocapture<br>
 ; X86-NEXT:    psrad $16, %xmm0<br>
 ; X86-NEXT:    movq %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_2xi8_sext:<br>
@@ -606,6 +615,7 @@ define void @mul_2xi8_sext_zext(i8* noca<br>
 ; X86-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[<wbr>1],xmm0[2],xmm2[2],xmm0[3],<wbr>xmm2[3]<br>
 ; X86-NEXT:    movq %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_2xi8_sext_zext:<br>
@@ -666,6 +676,7 @@ define void @mul_2xi16_sext(i8* nocaptur<br>
 ; X86-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[<wbr>1],xmm1[2],xmm2[2],xmm1[3],<wbr>xmm2[3]<br>
 ; X86-NEXT:    movq %xmm1, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_2xi16_sext:<br>
@@ -733,6 +744,7 @@ define void @mul_2xi16_sext_zext(i8* noc<br>
 ; X86-NEXT:    pshufd {{.*#+}} xmm0 = xmm1[0,2,2,3]<br>
 ; X86-NEXT:    movq %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_2xi16_sext_zext:<br>
@@ -813,6 +825,7 @@ define void @mul_16xi16_sext(i8* nocaptu<br>
 ; X86-NEXT:    movdqu %xmm2, 16(%esi,%ecx,4)<br>
 ; X86-NEXT:    movdqu %xmm0, (%esi,%ecx,4)<br>
 ; X86-NEXT:    popl %esi<br>
+; X86-NEXT:   .cfi_def_cfa_offset 4<br>
 ; X86-NEXT:    retl<br>
 ;<br>
 ; X64-LABEL: mul_16xi16_sext:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>statepoint-call-lowering.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-call-lowering.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/statepoint-call-<wbr>lowering.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>statepoint-call-lowering.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>statepoint-call-lowering.ll Tue Nov  7 06:40:27 2017<br>
@@ -83,6 +83,7 @@ define i1 @test_relocate(i32 addrspace(1<br>
 ; CHECK: callq return_i1<br>
 ; CHECK-NEXT: .Ltmp5:<br>
 ; CHECK-NEXT: popq %rcx<br>
+; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT: retq<br>
 entry:<br>
   %safepoint_token = tail call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.<wbr>statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, i32 addrspace(1)* %a)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>statepoint-gctransition-call-<wbr>lowering.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-gctransition-call-lowering.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/statepoint-<wbr>gctransition-call-lowering.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>statepoint-gctransition-call-<wbr>lowering.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>statepoint-gctransition-call-<wbr>lowering.ll Tue Nov  7 06:40:27 2017<br>
@@ -69,6 +69,7 @@ define i1 @test_relocate(i32 addrspace(1<br>
 ; CHECK: callq return_i1<br>
 ; CHECK-NEXT: .Ltmp4:<br>
 ; CHECK-NEXT: popq %rcx<br>
+; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT: retq<br>
 entry:<br>
   %safepoint_token = tail call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.<wbr>statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 1, i32 0, i32 0, i32 addrspace(1)* %a)<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>statepoint-invoke.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-invoke.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/statepoint-invoke.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>statepoint-invoke.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>statepoint-invoke.ll Tue Nov  7 06:40:27 2017<br>
@@ -142,6 +142,7 @@ normal_return:<br>
   ; CHECK-LABEL: %normal_return<br>
   ; CHECK: xorl %eax, %eax<br>
   ; CHECK-NEXT: popq<br>
+  ; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
   ; CHECK-NEXT: retq<br>
   %null.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.<wbr>relocate.p1i64(token %sp1, i32 13, i32 13)<br>
   %undef.relocated = call coldcc i64 addrspace(1)* @llvm.experimental.gc.<wbr>relocate.p1i64(token %sp1, i32 14, i32 14)<br>
@@ -169,6 +170,7 @@ entry:<br>
 normal_return:<br>
   ; CHECK: leaq<br>
   ; CHECK-NEXT: popq<br>
+  ; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
   ; CHECK-NEXT: retq<br>
   %aa.rel = call coldcc i32 addrspace(1)* @llvm.experimental.gc.<wbr>relocate.p1i32(token %sp, i32 13, i32 13)<br>
   %aa.converted = bitcast i32 addrspace(1)* %aa.rel to i64 addrspace(1)*<br>
@@ -177,6 +179,7 @@ normal_return:<br>
 exceptional_return:<br>
   ; CHECK: movl        $15<br>
   ; CHECK-NEXT: popq<br>
+  ; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
   ; CHECK-NEXT: retq<br>
   %landing_pad = landingpad token<br>
           cleanup<br>
<br>
Added: llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-fp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/throws-cfi-fp.ll?rev=317579&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/throws-cfi-fp.ll?<wbr>rev=317579&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-fp.ll (added)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-fp.ll Tue Nov  7 06:40:27 2017<br>
@@ -0,0 +1,98 @@<br>
+; RUN: llc %s -o - | FileCheck %s<br>
+<br>
+; ModuleID = 'throws-cfi-fp.cpp'<br>
+source_filename = "throws-cfi-fp.cpp"<br>
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:<wbr>32:64-S128"<br>
+target triple = "x86_64-unknown-linux-gnu"<br>
+<br>
+$__clang_call_terminate = comdat any<br>
+<br>
+@_ZL11ShouldThrow = internal unnamed_addr global i1 false, align 1<br>
+@_ZTIi = external constant i8*<br>
+@str = private unnamed_addr constant [20 x i8] c"Threw an exception!\00"<br>
+<br>
+; Function Attrs: uwtable<br>
+define void @_Z6throwsv() #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {<br>
+<br>
+; CHECK-LABEL:   _Z6throwsv:<br>
+; CHECK:         popq %rbp<br>
+; CHECK-NEXT:    .cfi_def_cfa %rsp, 8<br>
+; CHECK-NEXT:    retq<br>
+; CHECK-NEXT:    .LBB0_1:<br>
+; CHECK-NEXT:    .cfi_def_cfa %rbp, 16<br>
+<br>
+entry:<br>
+  %.b5 = load i1, i1* @_ZL11ShouldThrow, align 1<br>
+  br i1 %.b5, label %if.then, label %try.cont<br>
+<br>
+if.then:                                          ; preds = %entry<br>
+  %exception = tail call i8* @__cxa_allocate_exception(i64 4)<br>
+  %0 = bitcast i8* %exception to i32*<br>
+  store i32 1, i32* %0, align 16<br>
+  invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null)<br>
+          to label %unreachable unwind label %lpad<br>
+<br>
+lpad:                                             ; preds = %if.then<br>
+  %1 = landingpad { i8*, i32 }<br>
+          catch i8* null<br>
+  %2 = extractvalue { i8*, i32 } %1, 0<br>
+  %3 = tail call i8* @__cxa_begin_catch(i8* %2)<br>
+  %puts = tail call i32 @puts(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str, i64 0, i64 0))<br>
+  invoke void @__cxa_rethrow()<br>
+          to label %unreachable unwind label %lpad1<br>
+<br>
+lpad1:                                            ; preds = %lpad<br>
+  %4 = landingpad { i8*, i32 }<br>
+          cleanup<br>
+  invoke void @__cxa_end_catch()<br>
+          to label %eh.resume unwind label %terminate.lpad<br>
+<br>
+try.cont:                                         ; preds = %entry<br>
+  ret void<br>
+<br>
+eh.resume:                                        ; preds = %lpad1<br>
+  resume { i8*, i32 } %4<br>
+<br>
+terminate.lpad:                                   ; preds = %lpad1<br>
+  %5 = landingpad { i8*, i32 }<br>
+          catch i8* null<br>
+  %6 = extractvalue { i8*, i32 } %5, 0<br>
+  tail call void @__clang_call_terminate(i8* %6)<br>
+  unreachable<br>
+<br>
+unreachable:                                      ; preds = %lpad, %if.then<br>
+  unreachable<br>
+}<br>
+<br>
+declare i8* @__cxa_allocate_exception(i64)<br>
+<br>
+declare void @__cxa_throw(i8*, i8*, i8*)<br>
+<br>
+declare i32 @__gxx_personality_v0(...)<br>
+<br>
+declare i8* @__cxa_begin_catch(i8*)<br>
+<br>
+declare void @__cxa_rethrow()<br>
+<br>
+declare void @__cxa_end_catch()<br>
+<br>
+; Function Attrs: noinline noreturn nounwind<br>
+declare void @__clang_call_terminate(i8*)<br>
+<br>
+declare void @_ZSt9terminatev()<br>
+<br>
+; Function Attrs: nounwind<br>
+declare i32 @puts(i8* nocapture readonly)<br>
+<br>
+attributes #0 = { "no-frame-pointer-elim"="true" }<br>
+<br>
+!<a href="http://llvm.dbg.cu" rel="noreferrer" target="_blank">llvm.dbg.cu</a> = !{!2}<br>
+!llvm.module.flags = !{!8, !9, !10}<br>
+<br>
+!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 6.0.0 (<a href="https://github.com/llvm-mirror/clang.git" rel="noreferrer" target="_blank">https://github.com/llvm-<wbr>mirror/clang.git</a> 316ebefb7fff8ad324a08a69434750<wbr>0b6cd7c95f) (<a href="https://github.com/llvm-mirror/llvm.git" rel="noreferrer" target="_blank">https://github.com/llvm-<wbr>mirror/llvm.git</a> dcae9be81fc17cdfbe989402354d3c<wbr>8ecd0a2c79)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)<br>
+!3 = !DIFile(filename: "throws-cfi-fp.cpp", directory: "epilogue-dwarf/test")<br>
+!4 = !{}<br>
+!5 = !{}<br>
+!8 = !{i32 2, !"Dwarf Version", i32 4}<br>
+!9 = !{i32 2, !"Debug Info Version", i32 3}<br>
+!10 = !{i32 1, !"wchar_size", i32 4}<br>
<br>
Added: llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-no-fp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/throws-cfi-no-fp.ll?rev=317579&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/throws-cfi-no-fp.<wbr>ll?rev=317579&view=auto</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-no-fp.ll (added)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>throws-cfi-no-fp.ll Tue Nov  7 06:40:27 2017<br>
@@ -0,0 +1,97 @@<br>
+; RUN: llc %s -o - | FileCheck %s<br>
+<br>
+; ModuleID = 'throws-cfi-no-fp.cpp'<br>
+source_filename = "throws-cfi-no-fp.cpp"<br>
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:<wbr>32:64-S128"<br>
+target triple = "x86_64-unknown-linux-gnu"<br>
+<br>
+$__clang_call_terminate = comdat any<br>
+<br>
+@_ZL11ShouldThrow = internal unnamed_addr global i1 false, align 1<br>
+@_ZTIi = external constant i8*<br>
+@str = private unnamed_addr constant [20 x i8] c"Threw an exception!\00"<br>
+<br>
+; Function Attrs: uwtable<br>
+define void @_Z6throwsv() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {<br>
+<br>
+; CHECK-LABEL:   _Z6throwsv:<br>
+; CHECK:         popq  %rbx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
+; CHECK-NEXT:    retq<br>
+; CHECK-NEXT:    .LBB0_1:<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 16<br>
+<br>
+entry:<br>
+  %.b5 = load i1, i1* @_ZL11ShouldThrow, align 1<br>
+  br i1 %.b5, label %if.then, label %try.cont<br>
+<br>
+if.then:                                          ; preds = %entry<br>
+  %exception = tail call i8* @__cxa_allocate_exception(i64 4)<br>
+  %0 = bitcast i8* %exception to i32*<br>
+  store i32 1, i32* %0, align 16<br>
+  invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null)<br>
+          to label %unreachable unwind label %lpad<br>
+<br>
+lpad:                                             ; preds = %if.then<br>
+  %1 = landingpad { i8*, i32 }<br>
+          catch i8* null<br>
+  %2 = extractvalue { i8*, i32 } %1, 0<br>
+  %3 = tail call i8* @__cxa_begin_catch(i8* %2)<br>
+  %puts = tail call i32 @puts(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @str, i64 0, i64 0))<br>
+  invoke void @__cxa_rethrow() #4<br>
+          to label %unreachable unwind label %lpad1<br>
+<br>
+lpad1:                                            ; preds = %lpad<br>
+  %4 = landingpad { i8*, i32 }<br>
+          cleanup<br>
+  invoke void @__cxa_end_catch()<br>
+          to label %eh.resume unwind label %terminate.lpad<br>
+<br>
+try.cont:                                         ; preds = %entry<br>
+  ret void<br>
+<br>
+eh.resume:                                        ; preds = %lpad1<br>
+  resume { i8*, i32 } %4<br>
+<br>
+terminate.lpad:                                   ; preds = %lpad1<br>
+  %5 = landingpad { i8*, i32 }<br>
+          catch i8* null<br>
+  %6 = extractvalue { i8*, i32 } %5, 0<br>
+  tail call void @__clang_call_terminate(i8* %6)<br>
+  unreachable<br>
+<br>
+unreachable:                                      ; preds = %lpad, %if.then<br>
+  unreachable<br>
+}<br>
+<br>
+declare i8* @__cxa_allocate_exception(i64)<br>
+<br>
+declare void @__cxa_throw(i8*, i8*, i8*)<br>
+<br>
+declare i32 @__gxx_personality_v0(...)<br>
+<br>
+declare i8* @__cxa_begin_catch(i8*)<br>
+<br>
+declare void @__cxa_rethrow()<br>
+<br>
+declare void @__cxa_end_catch()<br>
+<br>
+; Function Attrs: noinline noreturn nounwind<br>
+declare void @__clang_call_terminate(i8*)<br>
+<br>
+declare void @_ZSt9terminatev()<br>
+<br>
+<br>
+; Function Attrs: nounwind<br>
+declare i32 @puts(i8* nocapture readonly)<br>
+<br>
+!<a href="http://llvm.dbg.cu" rel="noreferrer" target="_blank">llvm.dbg.cu</a> = !{!2}<br>
+!llvm.module.flags = !{!8, !9, !10}<br>
+<br>
+!2 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !3, producer: "clang version 6.0.0 (<a href="https://github.com/llvm-mirror/clang.git" rel="noreferrer" target="_blank">https://github.com/llvm-<wbr>mirror/clang.git</a> 316ebefb7fff8ad324a08a69434750<wbr>0b6cd7c95f) (<a href="https://github.com/llvm-mirror/llvm.git" rel="noreferrer" target="_blank">https://github.com/llvm-<wbr>mirror/llvm.git</a> dcae9be81fc17cdfbe989402354d3c<wbr>8ecd0a2c79)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)<br>
+!3 = !DIFile(filename: "throws-cfi-no-fp.cpp", directory: "epilogue-dwarf/test")<br>
+!4 = !{}<br>
+!5 = !{}<br>
+!8 = !{i32 2, !"Dwarf Version", i32 4}<br>
+!9 = !{i32 2, !"Debug Info Version", i32 3}<br>
+!10 = !{i32 1, !"wchar_size", i32 4}<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>vector-sext.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-sext.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/vector-sext.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>vector-sext.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>vector-sext.ll Tue Nov  7 06:40:27 2017<br>
@@ -3333,11 +3333,17 @@ define <16 x i16> @load_sext_16i1_to_16i<br>
 ; AVX1-NEXT:    vpinsrw $7, %ebp, %xmm1, %xmm1<br>
 ; AVX1-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0<br>
 ; AVX1-NEXT:    popq %rbx<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 48<br>
 ; AVX1-NEXT:    popq %r12<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 40<br>
 ; AVX1-NEXT:    popq %r13<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 32<br>
 ; AVX1-NEXT:    popq %r14<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 24<br>
 ; AVX1-NEXT:    popq %r15<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 16<br>
 ; AVX1-NEXT:    popq %rbp<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 8<br>
 ; AVX1-NEXT:    retq<br>
 ;<br>
 ; AVX2-LABEL: load_sext_16i1_to_16i16:<br>
@@ -3424,11 +3430,17 @@ define <16 x i16> @load_sext_16i1_to_16i<br>
 ; AVX2-NEXT:    vpinsrw $7, %ebp, %xmm1, %xmm1<br>
 ; AVX2-NEXT:    vinserti128 $1, %xmm0, %ymm1, %ymm0<br>
 ; AVX2-NEXT:    popq %rbx<br>
+; AVX2-NEXT:    .cfi_def_cfa_offset 48<br>
 ; AVX2-NEXT:    popq %r12<br>
+; AVX2-NEXT:    .cfi_def_cfa_offset 40<br>
 ; AVX2-NEXT:    popq %r13<br>
+; AVX2-NEXT:    .cfi_def_cfa_offset 32<br>
 ; AVX2-NEXT:    popq %r14<br>
+; AVX2-NEXT:    .cfi_def_cfa_offset 24<br>
 ; AVX2-NEXT:    popq %r15<br>
+; AVX2-NEXT:    .cfi_def_cfa_offset 16<br>
 ; AVX2-NEXT:    popq %rbp<br>
+; AVX2-NEXT:    .cfi_def_cfa_offset 8<br>
 ; AVX2-NEXT:    retq<br>
 ;<br>
 ; AVX512F-LABEL: load_sext_16i1_to_16i16:<br>
@@ -4824,6 +4836,7 @@ define i32 @sext_2i8_to_i32(<16 x i8> %A<br>
 ; X32-SSE41-NEXT:    pmovsxbw %xmm0, %xmm0<br>
 ; X32-SSE41-NEXT:    movd %xmm0, %eax<br>
 ; X32-SSE41-NEXT:    popl %ecx<br>
+; X32-SSE41-NEXT:    .cfi_def_cfa_offset 4<br>
 ; X32-SSE41-NEXT:    retl<br>
 entry:<br>
   %Shuf = shufflevector <16 x i8> %A, <16 x i8> undef, <2 x i32> <i32 0, i32 1><br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-avx512.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shuffle-avx512.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/vector-shuffle-<wbr>avx512.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-avx512.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-avx512.ll Tue Nov  7 06:40:27 2017<br>
@@ -619,6 +619,7 @@ define <64 x i8> @test_mm512_mask_blend_<br>
 ; KNL32-NEXT:    vpblendvb %ymm3, 8(%ebp), %ymm1, %ymm1<br>
 ; KNL32-NEXT:    movl %ebp, %esp<br>
 ; KNL32-NEXT:    popl %ebp<br>
+; KNL32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL32-NEXT:    retl<br>
 entry:<br>
   %0 = shufflevector <64 x i8> %A, <64 x i8> %W, <64 x i32>  <i32 64, i32 1, i32 66, i32 3, i32 68, i32 5, i32 70, i32 7, i32 72, i32 9, i32 74, i32 11, i32 76, i32 13, i32 78, i32 15, i32 80, i32 17, i32 82, i32 19, i32 84, i32 21, i32 86, i32 23, i32 88, i32 25, i32 90, i32 27, i32 92, i32 29, i32 94, i32 31, i32 96, i32 33, i32 98, i32 35, i32 100, i32 37, i32 102, i32 39, i32 104, i32 41, i32 106, i32 43, i32 108, i32 45, i32 110, i32 47, i32 112, i32 49, i32 114, i32 51, i32 116, i32 53, i32 118, i32 55, i32 120, i32 57, i32 122, i32 59, i32 124, i32 61, i32 126, i32 63><br>
@@ -659,6 +660,7 @@ define <32 x i16> @test_mm512_mask_blend<br>
 ; KNL32-NEXT:    vpblendw {{.*#+}} ymm1 = mem[0],ymm1[1],mem[2],ymm1[3],<wbr>mem[4],ymm1[5],mem[6],ymm1[7],<wbr>mem[8],ymm1[9],mem[10],ymm1[<wbr>11],mem[12],ymm1[13],mem[14],<wbr>ymm1[15]<br>
 ; KNL32-NEXT:    movl %ebp, %esp<br>
 ; KNL32-NEXT:    popl %ebp<br>
+; KNL32-NEXT:   .cfi_def_cfa %esp, 4<br>
 ; KNL32-NEXT:    retl<br>
 entry:<br>
   %0 = shufflevector <32 x i16> %A, <32 x i16> %W, <32 x i32>  <i32 32, i32 1, i32 34, i32 3, i32 36, i32 5, i32 38, i32 7, i32 40, i32 9, i32 42, i32 11, i32 44, i32 13, i32 46, i32 15, i32 48, i32 17, i32 50, i32 19, i32 52, i32 21, i32 54, i32 23, i32 56, i32 25, i32 58, i32 27, i32 60, i32 29, i32 62, i32 31><br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-v1.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shuffle-v1.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/vector-shuffle-v1.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-v1.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>vector-shuffle-v1.ll Tue Nov  7 06:40:27 2017<br>
@@ -630,6 +630,7 @@ define i64 @shuf64i1_zero(i64 %a) {<br>
 ; AVX512F-NEXT:    orq %rcx, %rax<br>
 ; AVX512F-NEXT:    movq %rbp, %rsp<br>
 ; AVX512F-NEXT:    popq %rbp<br>
+; AVX512F-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512F-NEXT:    vzeroupper<br>
 ; AVX512F-NEXT:    retq<br>
 ;<br>
@@ -662,6 +663,7 @@ define i64 @shuf64i1_zero(i64 %a) {<br>
 ; AVX512VL-NEXT:    orq %rcx, %rax<br>
 ; AVX512VL-NEXT:    movq %rbp, %rsp<br>
 ; AVX512VL-NEXT:    popq %rbp<br>
+; AVX512VL-NEXT:    .cfi_def_cfa %rsp, 8<br>
 ; AVX512VL-NEXT:    vzeroupper<br>
 ; AVX512VL-NEXT:    retq<br>
 ;<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>wide-integer-cmp.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/wide-integer-cmp.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/wide-integer-cmp.<wbr>ll?rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>wide-integer-cmp.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>wide-integer-cmp.ll Tue Nov  7 06:40:27 2017<br>
@@ -105,10 +105,13 @@ define i32 @test_wide(i128 %a, i128 %b)<br>
 ; CHECK-NEXT:  # BB#1: # %bb1<br>
 ; CHECK-NEXT:    movl $1, %eax<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 ; CHECK-NEXT:  .LBB4_2: # %bb2<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    movl $2, %eax<br>
 ; CHECK-NEXT:    popl %esi<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 4<br>
 ; CHECK-NEXT:    retl<br>
 entry:<br>
   %cmp = icmp slt i128 %a, %b<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>x86-framelowering-trap.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-framelowering-trap.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/x86-framelowering-<wbr>trap.ll?rev=317579&r1=317578&<wbr>r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>x86-framelowering-trap.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>x86-framelowering-trap.ll Tue Nov  7 06:40:27 2017<br>
@@ -6,6 +6,7 @@ target triple = "x86_64-unknown-linux-gn<br>
 ; CHECK: pushq<br>
 ; CHECK: ud2<br>
 ; CHECK-NEXT: popq<br>
+; CHECK-NEXT: .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT: retq<br>
 define void @bar() {<br>
 entry:<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>x86-interleaved-access.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/x86-interleaved-<wbr>access.ll?rev=317579&r1=<wbr>317578&r2=317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>x86-interleaved-access.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>x86-interleaved-access.ll Tue Nov  7 06:40:27 2017<br>
@@ -1816,6 +1816,7 @@ define void @interleaved_store_vf64_i8_s<br>
 ; AVX1-NEXT:    vmovaps %ymm9, 64(%rdi)<br>
 ; AVX1-NEXT:    vmovaps %ymm8, (%rdi)<br>
 ; AVX1-NEXT:    addq $24, %rsp<br>
+; AVX1-NEXT:    .cfi_def_cfa_offset 8<br>
 ; AVX1-NEXT:    vzeroupper<br>
 ; AVX1-NEXT:    retq<br>
 ;<br>
<br>
Modified: llvm/trunk/test/CodeGen/X86/<wbr>x86-no_caller_saved_registers-<wbr>preserve.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-no_caller_saved_registers-preserve.ll?rev=317579&r1=317578&r2=317579&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>CodeGen/X86/x86-no_caller_<wbr>saved_registers-preserve.ll?<wbr>rev=317579&r1=317578&r2=<wbr>317579&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/test/CodeGen/X86/<wbr>x86-no_caller_saved_registers-<wbr>preserve.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/<wbr>x86-no_caller_saved_registers-<wbr>preserve.ll Tue Nov  7 06:40:27 2017<br>
@@ -20,6 +20,7 @@ define x86_64_sysvcc i32 @bar(i32 %a0, i<br>
 ; CHECK-NEXT:    movl $4, %eax<br>
 ; CHECK-NEXT:    movaps -{{[0-9]+}}(%rsp), %xmm1 # 16-byte Reload<br>
 ; CHECK-NEXT:    popq %rdx<br>
+; CHECK-NEXT:    .cfi_def_cfa_offset 8<br>
 ; CHECK-NEXT:    retq<br>
   call void asm sideeffect "", "~{rax},~{rdx},~{xmm1},~{rdi},<wbr>~{rsi},~{xmm0}"()<br>
   ret i32 4<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>