<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Feb 28, 2018, at 11:58 AM, Quentin Colombet via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="Apple-interchange-newline"><br class=""><blockquote type="cite" class=""><div class="">On Feb 28, 2018, at 8:44 AM,<span class="Apple-converted-space"> </span><a href="mailto:gberry@codeaurora.org" class="">gberry@codeaurora.org</a><span class="Apple-converted-space"> </span>wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Hi Quentin,<o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">I believe there are two issues here:<o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><ul type="disc" class="" style="margin-bottom: 0in; margin-top: 0in;"><li class="MsoListParagraph" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Running MachineCopyPropagation for targets with AllowRegisterRenaming set is wasted compile time:<o:p class=""></o:p></li></ul><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;">This is true for the COPY forwarding part of MCP, but the original redundant COPY elimination part does not check isRenamable.  If we don’t run MCP for targets with AllowRegisterRenaming set to 0, that will potentially cause regressions for those targets since they will lose the redundant COPY elimination that was happening before.</div></div></div></blockquote><div class=""><br class=""></div><div class="">We would indeed lose the redundant COPY elimination, but</div><div class="">- It may break some target as it does for us</div><div class="">- We only have it for like a week</div><div class=""><br class=""></div><div class="">Anyhow, we could keep it unconditionally as long as we fix it for bundles.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;">  We could skip the COPY forwarding code only for those targets by checking the target property.  I considered doing this, but all it really saves is checking the renamable bit on each MachineOperand since it bails out very early.  Given that MCP never showed up in any compile-time profiles, I figured this wasn’t worth doing, but if that’s not the case in some custom pipeline I’m happy to work on making this change.<o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><ul type="disc" class="" style="margin-bottom: 0in; margin-top: 0in;"><li class="MsoListParagraph" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Some targets that use bundles are broken by MCP:<o:p class=""></o:p></li></ul><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;">If I recall correctly from discussing this with escha, even the pre-existing redundant COPY elimination part of MCP breaks on these targets.</div></div></div></blockquote><div class=""><br class=""></div><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;">  This seems like an independent issue.  Presumably the pre-existing MCP pass in addMachineLateOptimization() would also cause problems on these targets?</div></div></div></blockquote><div class=""><br class=""></div><div class=""><br class=""></div><div class="">That’s a good point, we actually have our own copy of <span class="" style="color: rgb(255, 255, 255); font-family: Menlo; font-size: 11px; background-color: rgb(0, 0, 0);">addMachineLateOptimization</span> where we don’t run it. We could do the same with addOptimizedRegAlloc, you’re right.</div><div class=""><br class=""></div><div class="">Let me try this way.</div></div></div></blockquote><div><br class=""></div><div>Works great. Now remains the question of should we run the full MCP for targets that don’t allow register renaming.</div><div>Correctly if I am wrong, but I suspect the overhead to be relatively small (assuming the targets want the other part of MCP), so we should be fine.</div><div><br class=""></div><div>Thanks for your follow-up on this.</div><br class=""><blockquote type="cite" class=""><div class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><div class=""><br class=""></div><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;">  Can this be worked around by just disabling MCP for this target by doing something like this in these targets pass config:<o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class="" style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="font-family: "Courier New";">void BundleTargetPassConfig::addOptimizedRegAlloc(FunctionPass *RegAllocPass) {<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt 1in; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="font-family: "Courier New";">  // MCP breaks bundled instructions.<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt 1in; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="font-family: "Courier New";">  disablePass(&MachineCopyPropagationID);<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt 1in; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="font-family: "Courier New";">  TargetPassConfig::addPostRegAlloc();<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: 0.5in;"><span class="" style="font-family: "Courier New";">}<o:p class=""></o:p></span></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">--<span class="Apple-converted-space"> </span><o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Geoff Berry<o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Employee of Qualcomm Datacenter Technologies, Inc.<o:p class=""></o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.  Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.<o:p class=""></o:p></div></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class="" style="border-style: none none none solid; border-left-width: 1.5pt; border-left-color: blue; padding: 0in 0in 0in 4pt;"><div class=""><div class="" style="border-style: solid none none; border-top-width: 1pt; border-top-color: rgb(225, 225, 225); padding: 3pt 0in 0in;"><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><b class="">From:</b><span class="Apple-converted-space"> </span><a href="mailto:qcolombet@apple.com" class="">qcolombet@apple.com</a><span class="Apple-converted-space"> </span>[<a href="mailto:qcolombet@apple.com" class="">mailto:qcolombet@apple.com</a>]<span class="Apple-converted-space"> </span><br class=""><b class="">Sent:</b><span class="Apple-converted-space"> </span>Tuesday, February 27, 2018 6:33 PM<br class=""><b class="">To:</b><span class="Apple-converted-space"> </span>Geoff Berry <<a href="mailto:gberry@codeaurora.org" class="">gberry@codeaurora.org</a>><br class=""><b class="">Cc:</b><span class="Apple-converted-space"> </span><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class=""><b class="">Subject:</b><span class="Apple-converted-space"> </span>Re: [llvm] r326208 - Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"<o:p class=""></o:p></div></div></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Hi Geoff,<o:p class=""></o:p></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Unfortunately this is causing more problems that we didn’t catch the first time.<o:p class=""></o:p></div></div><div class=""><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><br class=""><br class=""><o:p class=""></o:p></div><blockquote class="" type="cite" style="margin-top: 5pt; margin-bottom: 5pt;"><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">On Feb 27, 2018, at 8:59 AM, Geoff Berry via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="" style="color: purple; text-decoration: underline;">llvm-commits@lists.llvm.org</a>> wrote:<o:p class=""></o:p></div></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div><div class=""><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Author: gberry<br class="">Date: Tue Feb 27 08:59:10 2018<br class="">New Revision: 326208<br class=""><br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=326208&view=rev" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project?rev=326208&view=rev</a><br class="">Log:<br class="">Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"<br class=""><br class="">Re-enable commit r323991 now that r325931 has been committed to make<br class="">MachineOperand::isRenamable() check more conservative w.r.t. code<br class="">changes and opt-in on a per-target basis.<br class=""><br class="">Added:<br class="">   llvm/trunk/test/CodeGen/AArch64/copyprop.mir<br class="">Modified:<br class="">   llvm/trunk/lib/CodeGen/MachineCopyPropagation.cpp<br class="">   llvm/trunk/lib/CodeGen/TargetPassConfig.cpp<br class="">   llvm/trunk/test/CodeGen/AArch64/aarch64-fold-lslfast.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/cmpxchg-idioms.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/f16-instructions.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/flags-multiuse.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/ldst-opt.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/merge-store-dependency.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/neg-imm.ll<br class="">   llvm/trunk/test/CodeGen/AArch64/swifterror.ll<br class="">   llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll<br class="">   llvm/trunk/test/CodeGen/AMDGPU/fix-vgpr-copies.mir<br class="">   llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.ll<br class="">   llvm/trunk/test/CodeGen/AMDGPU/ret.ll<br class="">   llvm/trunk/test/CodeGen/ARM/atomic-op.ll<br class="">   llvm/trunk/test/CodeGen/ARM/intrinsics-overflow.ll<br class="">   llvm/trunk/test/CodeGen/ARM/swifterror.ll<br class="">   llvm/trunk/test/CodeGen/Mips/analyzebranch.ll<br class="">   llvm/trunk/test/CodeGen/Mips/llvm-ir/ashr.ll<br class="">   llvm/trunk/test/CodeGen/Mips/llvm-ir/lshr.ll<br class="">   llvm/trunk/test/CodeGen/Mips/llvm-ir/select-dbl.ll<br class="">   llvm/trunk/test/CodeGen/Mips/llvm-ir/select-flt.ll<br class="">   llvm/trunk/test/CodeGen/Mips/llvm-ir/shl.ll<br class="">   llvm/trunk/test/CodeGen/Mips/llvm-ir/sub.ll<br class="">   llvm/trunk/test/CodeGen/Mips/o32_cc_byval.ll<br class="">   llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll<br class="">   llvm/trunk/test/CodeGen/PowerPC/fma-mutate.ll<br class="">   llvm/trunk/test/CodeGen/PowerPC/gpr-vsr-spill.ll<br class="">   llvm/trunk/test/CodeGen/PowerPC/licm-remat.ll<br class="">   llvm/trunk/test/CodeGen/PowerPC/opt-li-add-to-addi.ll<br class="">   llvm/trunk/test/CodeGen/PowerPC/tail-dup-layout.ll<br class="">   llvm/trunk/test/CodeGen/SPARC/32abi.ll<br class="">   llvm/trunk/test/CodeGen/SPARC/atomics.ll<br class="">   llvm/trunk/test/CodeGen/SystemZ/vec-sub-01.ll<br class="">   llvm/trunk/test/CodeGen/Thumb/pr35836.ll<br class="">   llvm/trunk/test/CodeGen/Thumb/thumb-shrink-wrapping.ll<br class="">   llvm/trunk/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll<br class="">   llvm/trunk/test/CodeGen/X86/arg-copy-elide.ll<br class="">   llvm/trunk/test/CodeGen/X86/avg.ll<br class="">   llvm/trunk/test/CodeGen/X86/avx-load-store.ll<br class="">   llvm/trunk/test/CodeGen/X86/avx512-bugfix-25270.ll<br class="">   llvm/trunk/test/CodeGen/X86/avx512-calling-conv.ll<br class="">   llvm/trunk/test/CodeGen/X86/avx512-intel-ocl.ll<br class="">   llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll<br class="">   llvm/trunk/test/CodeGen/X86/buildvec-insertvec.ll<br class="">   llvm/trunk/test/CodeGen/X86/combine-fcopysign.ll<br class="">   llvm/trunk/test/CodeGen/X86/combine-shl.ll<br class="">   llvm/trunk/test/CodeGen/X86/complex-fastmath.ll<br class="">   llvm/trunk/test/CodeGen/X86/divide-by-constant.ll<br class="">   llvm/trunk/test/CodeGen/X86/fmaxnum.ll<br class="">   llvm/trunk/test/CodeGen/X86/fmf-flags.ll<br class="">   llvm/trunk/test/CodeGen/X86/fminnum.ll<br class="">   llvm/trunk/test/CodeGen/X86/fp128-i128.ll<br class="">   llvm/trunk/test/CodeGen/X86/h-registers-1.ll<br class="">   llvm/trunk/test/CodeGen/X86/haddsub-2.ll<br class="">   llvm/trunk/test/CodeGen/X86/haddsub-3.ll<br class="">   llvm/trunk/test/CodeGen/X86/haddsub-undef.ll<br class="">   llvm/trunk/test/CodeGen/X86/half.ll<br class="">   llvm/trunk/test/CodeGen/X86/horizontal-reduce-smax.ll<br class="">   llvm/trunk/test/CodeGen/X86/horizontal-reduce-smin.ll<br class="">   llvm/trunk/test/CodeGen/X86/horizontal-reduce-umax.ll<br class="">   llvm/trunk/test/CodeGen/X86/horizontal-reduce-umin.ll<br class="">   llvm/trunk/test/CodeGen/X86/i128-mul.ll<br class="">   llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll<br class="">   llvm/trunk/test/CodeGen/X86/ipra-local-linkage.ll<br class="">   llvm/trunk/test/CodeGen/X86/legalize-shift.ll<br class="">   llvm/trunk/test/CodeGen/X86/localescape.ll<br class="">   llvm/trunk/test/CodeGen/X86/machine-cp.ll<br class="">   llvm/trunk/test/CodeGen/X86/mmx-arith.ll<br class="">   llvm/trunk/test/CodeGen/X86/mul-i1024.ll<br class="">   llvm/trunk/test/CodeGen/X86/mul-i256.ll<br class="">   llvm/trunk/test/CodeGen/X86/mul-i512.ll<br class="">   llvm/trunk/test/CodeGen/X86/mul128.ll<br class="">   llvm/trunk/test/CodeGen/X86/mulvi32.ll<br class="">   llvm/trunk/test/CodeGen/X86/musttail-varargs.ll<br class="">   llvm/trunk/test/CodeGen/X86/pmul.ll<br class="">   llvm/trunk/test/CodeGen/X86/powi.ll<br class="">   llvm/trunk/test/CodeGen/X86/pr11334.ll<br class="">   llvm/trunk/test/CodeGen/X86/pr29112.ll<br class="">   llvm/trunk/test/CodeGen/X86/pr34080-2.ll<br class="">   llvm/trunk/test/CodeGen/X86/retpoline-external.ll<br class="">   llvm/trunk/test/CodeGen/X86/retpoline.ll<br class="">   llvm/trunk/test/CodeGen/X86/sad.ll<br class="">   llvm/trunk/test/CodeGen/X86/safestack.ll<br class="">   llvm/trunk/test/CodeGen/X86/safestack_inline.ll<br class="">   llvm/trunk/test/CodeGen/X86/scalar_widen_div.ll<br class="">   llvm/trunk/test/CodeGen/X86/select.ll<br class="">   llvm/trunk/test/CodeGen/X86/shrink-wrap-chkstk.ll<br class="">   llvm/trunk/test/CodeGen/X86/slow-pmulld.ll<br class="">   llvm/trunk/test/CodeGen/X86/sqrt-fastmath.ll<br class="">   llvm/trunk/test/CodeGen/X86/sse-scalar-fp-arith.ll<br class="">   llvm/trunk/test/CodeGen/X86/sse1.ll<br class="">   llvm/trunk/test/CodeGen/X86/sse3-avx-addsub-2.ll<br class="">   llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll<br class="">   llvm/trunk/test/CodeGen/X86/statepoint-stack-usage.ll<br class="">   llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll<br class="">   llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll<br class="">   llvm/trunk/test/CodeGen/X86/vec_minmax_uint.ll<br class="">   llvm/trunk/test/CodeGen/X86/vec_shift4.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-blend.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-idiv-sdiv-128.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-idiv-udiv-128.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-mul.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-rotate-128.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-sext.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-shift-lshr-128.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-shift-shl-128.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll<br class="">   llvm/trunk/test/CodeGen/X86/vector-zext.ll<br class="">   llvm/trunk/test/CodeGen/X86/vselect-minmax.ll<br class="">   llvm/trunk/test/CodeGen/X86/widen_conv-3.ll<br class="">   llvm/trunk/test/CodeGen/X86/widen_conv-4.ll<br class="">   llvm/trunk/test/CodeGen/X86/win64_frame.ll<br class="">   llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll<br class="">   llvm/trunk/test/CodeGen/X86/x86-shrink-wrap-unwind.ll<br class="">   llvm/trunk/test/CodeGen/X86/x86-shrink-wrapping.ll<br class="">   llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll<br class="">   llvm/trunk/test/DebugInfo/X86/spill-nospill.ll<br class=""><br class="">Modified: llvm/trunk/lib/CodeGen/MachineCopyPropagation.cpp<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineCopyPropagation.cpp?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineCopyPropagation.cpp?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/CodeGen/MachineCopyPropagation.cpp (original)<br class="">+++ llvm/trunk/lib/CodeGen/MachineCopyPropagation.cpp Tue Feb 27 08:59:10 2018<br class="">@@ -9,6 +9,35 @@<br class="">//<br class="">// This is an extremely simple MachineInstr-level copy propagation pass.<br class="">//<br class="">+// This pass forwards the source of COPYs to the users of their destinations<br class="">+// when doing so is legal.  For example:<br class="">+//<br class="">+//   %reg1 = COPY %reg0<br class="">+//   ...<br class="">+//   ... = OP %reg1<br class="">+//<br class="">+// If<br class="">+//   - %reg0 has not been clobbered by the time of the use of %reg1<br class="">+//   - the register class constraints are satisfied<br class="">+//   - the COPY def is the only value that reaches OP<br class="">+// then this pass replaces the above with:<br class="">+//<br class="">+//   %reg1 = COPY %reg0<br class="">+//   ...<br class="">+//   ... = OP %reg0<br class="">+//<br class="">+// This pass also removes some redundant COPYs.  For example:<br class="">+//<br class="">+//    %R1 = COPY %R0<br class="">+//    ... // No clobber of %R1<br class="">+//    %R0 = COPY %R1 <<< Removed<br class="">+//<br class="">+// or<br class="">+//<br class="">+//    %R1 = COPY %R0<br class="">+//    ... // No clobber of %R0<br class="">+//    %R1 = COPY %R0 <<< Removed<br class="">+//<br class="">//===----------------------------------------------------------------------===//<br class=""><br class="">#include "llvm/ADT/DenseMap.h"<br class="">@@ -23,11 +52,13 @@<br class="">#include "llvm/CodeGen/MachineInstr.h"<br class="">#include "llvm/CodeGen/MachineOperand.h"<br class="">#include "llvm/CodeGen/MachineRegisterInfo.h"<br class="">+#include "llvm/CodeGen/TargetInstrInfo.h"<br class="">#include "llvm/CodeGen/TargetRegisterInfo.h"<br class="">#include "llvm/CodeGen/TargetSubtargetInfo.h"<br class="">#include "llvm/MC/MCRegisterInfo.h"<br class="">#include "llvm/Pass.h"<br class="">#include "llvm/Support/Debug.h"<br class="">+#include "llvm/Support/DebugCounter.h"<br class="">#include "llvm/Support/raw_ostream.h"<br class="">#include <cassert><br class="">#include <iterator><br class="">@@ -37,6 +68,9 @@ using namespace llvm;<br class="">#define DEBUG_TYPE "machine-cp"<br class=""><br class="">STATISTIC(NumDeletes, "Number of dead copies deleted");<br class="">+STATISTIC(NumCopyForwards, "Number of copy uses forwarded");<br class="">+DEBUG_COUNTER(FwdCounter, "machine-cp-fwd",<br class="">+              "Controls which register COPYs are forwarded");<br class=""><br class="">namespace {<br class=""><br class="">@@ -73,6 +107,10 @@ using Reg2MIMap = DenseMap<unsigned, Mac<br class="">    void ReadRegister(unsigned Reg);<br class="">    void CopyPropagateBlock(MachineBasicBlock &MBB);<br class="">    bool eraseIfRedundant(MachineInstr &Copy, unsigned Src, unsigned Def);<br class="">+    void forwardUses(MachineInstr &MI);<br class="">+    bool isForwardableRegClassCopy(const MachineInstr &Copy,<br class="">+                                   const MachineInstr &UseI, unsigned UseIdx);<br class="">+    bool hasImplicitOverlap(const MachineInstr &MI, const MachineOperand &Use);<br class=""><br class="">    /// Candidates for deletion.<br class="">    SmallSetVector<MachineInstr*, 8> MaybeDeadCopies;<br class="">@@ -208,6 +246,152 @@ bool MachineCopyPropagation::eraseIfRedu<br class="">  return true;<br class="">}<br class=""><br class="">+/// Decide whether we should forward the source of \param Copy to its use in<br class="">+/// \param UseI based on the physical register class constraints of the opcode<br class="">+/// and avoiding introducing more cross-class COPYs.<br class="">+bool MachineCopyPropagation::isForwardableRegClassCopy(const MachineInstr &Copy,<br class="">+                                                       const MachineInstr &UseI,<br class="">+                                                       unsigned UseIdx) {<br class="">+<br class="">+  unsigned CopySrcReg = Copy.getOperand(1).getReg();<br class="">+<br class="">+  // If the new register meets the opcode register constraints, then allow<br class="">+  // forwarding.<br class="">+  if (const TargetRegisterClass *URC =<br class="">+          UseI.getRegClassConstraint(UseIdx, TII, TRI))<br class="">+    return URC->contains(CopySrcReg);<br class="">+<br class="">+  if (!UseI.isCopy())<br class="">+    return false;<br class="">+<br class="">+  /// COPYs don't have register class constraints, so if the user instruction<br class="">+  /// is a COPY, we just try to avoid introducing additional cross-class<br class="">+  /// COPYs.  For example:<br class="">+  ///<br class="">+  ///   RegClassA = COPY RegClassB  // Copy parameter<br class="">+  ///   ...<br class="">+  ///   RegClassB = COPY RegClassA  // UseI parameter<br class="">+  ///<br class="">+  /// which after forwarding becomes<br class="">+  ///<br class="">+  ///   RegClassA = COPY RegClassB<br class="">+  ///   ...<br class="">+  ///   RegClassB = COPY RegClassB<br class="">+  ///<br class="">+  /// so we have reduced the number of cross-class COPYs and potentially<br class="">+  /// introduced a nop COPY that can be removed.<br class="">+  const TargetRegisterClass *UseDstRC =<br class="">+      TRI->getMinimalPhysRegClass(UseI.getOperand(0).getReg());<br class="">+<br class="">+  const TargetRegisterClass *SuperRC = UseDstRC;<br class="">+  for (TargetRegisterClass::sc_iterator SuperRCI = UseDstRC->getSuperClasses();<br class="">+       SuperRC; SuperRC = *SuperRCI++)<br class="">+    if (SuperRC->contains(CopySrcReg))<br class="">+      return true;<br class="">+<br class="">+  return false;<br class="">+}<br class="">+<br class="">+/// Check that \p MI does not have implicit uses that overlap with it's \p Use<br class="">+/// operand (the register being replaced), since these can sometimes be<br class="">+/// implicitly tied to other operands.  For example, on AMDGPU:<br class="">+///<br class="">+/// V_MOVRELS_B32_e32 %VGPR2, %M0<imp-use>, %EXEC<imp-use>, %VGPR2_VGPR3_VGPR4_VGPR5<imp-use><br class="">+///<br class="">+/// the %VGPR2 is implicitly tied to the larger reg operand, but we have no<br class="">+/// way of knowing we need to update the latter when updating the former.<br class="">+bool MachineCopyPropagation::hasImplicitOverlap(const MachineInstr &MI,<br class="">+                                                const MachineOperand &Use) {<br class="">+  for (const MachineOperand &MIUse : MI.uses())<br class="">+    if (&MIUse != &Use && MIUse.isReg() && MIUse.isImplicit() &&<br class="">+        MIUse.isUse() && TRI->regsOverlap(Use.getReg(), MIUse.getReg()))<br class="">+      return true;<br class="">+<br class="">+  return false;<br class="">+}<br class="">+<br class="">+/// Look for available copies whose destination register is used by \p MI and<br class="">+/// replace the use in \p MI with the copy's source register.<br class="">+void MachineCopyPropagation::forwardUses(MachineInstr &MI) {<br class="">+  if (AvailCopyMap.empty())<br class="">+    return;<br class="">+<br class="">+  // Look for non-tied explicit vreg uses that have an active COPY<br class="">+  // instruction that defines the physical register allocated to them.<br class="">+  // Replace the vreg with the source of the active COPY.<br class="">+  for (unsigned OpIdx = 0, OpEnd = MI.getNumOperands(); OpIdx < OpEnd;<br class="">+       ++OpIdx) {<br class="">+    MachineOperand &MOUse = MI.getOperand(OpIdx);<br class="">+    // Don't forward into undef use operands since doing so can cause problems<br class="">+    // with the machine verifier, since it doesn't treat undef reads as reads,<br class="">+    // so we can end up with a live range that ends on an undef read, leading to<br class="">+    // an error that the live range doesn't end on a read of the live range<br class="">+    // register.<br class="">+    if (!MOUse.isReg() || MOUse.isTied() || MOUse.isUndef() || MOUse.isDef() ||<br class="">+        MOUse.isImplicit())<br class="">+      continue;<br class="">+<br class="">+    if (!MOUse.getReg())<br class="">+      continue;<br class="">+<br class="">+    // Check that the register is marked 'renamable' so we know it is safe to<br class="">+    // rename it without violating any constraints that aren't expressed in the<br class="">+    // IR (e.g. ABI or opcode requirements).<br class="">+    if (!MOUse.isRenamable())<br class="">+      continue;<br class="">+<br class="">+    auto CI = AvailCopyMap.find(MOUse.getReg());<br class="">+    if (CI == AvailCopyMap.end())<br class="">+      continue;<br class="">+<br class="">+    MachineInstr &Copy = *CI->second;<br class="">+    unsigned CopyDstReg = Copy.getOperand(0).getReg();<br class="">+    const MachineOperand &CopySrc = Copy.getOperand(1);<br class="">+    unsigned CopySrcReg = CopySrc.getReg();<br class="">+<br class="">+    // FIXME: Don't handle partial uses of wider COPYs yet.<br class="">+    if (MOUse.getReg() != CopyDstReg) {<br class="">+      DEBUG(dbgs() << "MCP: FIXME! Not forwarding COPY to sub-register use:\n  "<br class="">+                   << MI);<br class="">+      continue;<br class="">+    }<br class="">+<br class="">+    // Don't forward COPYs of reserved regs unless they are constant.<br class="">+    if (MRI->isReserved(CopySrcReg) && !MRI->isConstantPhysReg(CopySrcReg))<br class="">+      continue;<br class="">+<br class="">+    if (!isForwardableRegClassCopy(Copy, MI, OpIdx))<br class="">+      continue;<br class="">+<br class="">+    if (hasImplicitOverlap(MI, MOUse))<br class="">+      continue;<br class="">+<br class="">+    if (!DebugCounter::shouldExecute(FwdCounter)) {<br class="">+      DEBUG(dbgs() << "MCP: Skipping forwarding due to debug counter:\n  "<br class="">+                   << MI);<br class="">+      continue;<br class="">+    }<br class="">+<br class="">+    DEBUG(dbgs() << "MCP: Replacing " << printReg(MOUse.getReg(), TRI)<br class="">+                 << "\n     with " << printReg(CopySrcReg, TRI) << "\n     in "<br class="">+                 << MI << "     from " << Copy);<br class="">+<br class="">+    MOUse.setReg(CopySrcReg);<br class="">+    if (!CopySrc.isRenamable())<br class="">+      MOUse.setIsRenamable(false);<br class="">+<br class="">+    DEBUG(dbgs() << "MCP: After replacement: " << MI << "\n");<br class="">+<br class="">+    // Clear kill markers that may have been invalidated.<br class="">+    for (MachineInstr &KMI :<br class="">+         make_range(Copy.getIterator(), std::next(MI.getIterator())))<br class="">+      KMI.clearRegisterKills(CopySrcReg, TRI);<br class="">+<br class="">+    ++NumCopyForwards;<br class="">+    Changed = true;<br class="">+  }<br class="">+}<br class="">+<br class="">void MachineCopyPropagation::CopyPropagateBlock(MachineBasicBlock &MBB) {<br class="">  DEBUG(dbgs() << "MCP: CopyPropagateBlock " << MBB.getName() << "\n");<br class=""><br class="">@@ -241,6 +425,11 @@ void MachineCopyPropagation::CopyPropaga<br class="">      if (eraseIfRedundant(*MI, Def, Src) || eraseIfRedundant(*MI, Src, Def))<br class="">        continue;<br class=""><br class="">+      forwardUses(*MI);<br class="">+<br class="">+      // Src may have been changed by forwardUses()<br class="">+      Src = MI->getOperand(1).getReg();<br class="">+<br class="">      // If Src is defined by a previous copy, the previous copy cannot be<br class="">      // eliminated.<br class="">      ReadRegister(Src);<br class="">@@ -292,6 +481,20 @@ void MachineCopyPropagation::CopyPropaga<br class="">      continue;<br class="">    }<br class=""><br class="">+    // Clobber any earlyclobber regs first.<br class="">+    for (const MachineOperand &MO : MI->operands())<br class="">+      if (MO.isReg() && MO.isEarlyClobber()) {<br class="">+        unsigned Reg = MO.getReg();<br class="">+        // If we have a tied earlyclobber, that means it is also read by this<br class="">+        // instruction, so we need to make sure we don't remove it as dead<br class="">+        // later.<br class="">+        if (MO.isTied())<br class="">+          ReadRegister(Reg);<br class="">+        ClobberRegister(Reg);<br class="">+      }<br class="">+<br class="">+    forwardUses(*MI);<br class="">+<br class="">    // Not a copy.<br class="">    SmallVector<unsigned, 2> Defs;<br class="">    const MachineOperand *RegMask = nullptr;<br class="">@@ -307,7 +510,7 @@ void MachineCopyPropagation::CopyPropaga<br class="">      assert(!TargetRegisterInfo::isVirtualRegister(Reg) &&<br class="">             "MachineCopyPropagation should be run after register allocation!");<br class=""><br class="">-      if (MO.isDef()) {<br class="">+      if (MO.isDef() && !MO.isEarlyClobber()) {<br class="">        Defs.push_back(Reg);<br class="">        continue;<br class="">      } else if (MO.readsReg())<br class="">@@ -364,6 +567,8 @@ void MachineCopyPropagation::CopyPropaga<br class="">  // since we don't want to trust live-in lists.<br class="">  if (MBB.succ_empty()) {<br class="">    for (MachineInstr *MaybeDead : MaybeDeadCopies) {<br class="">+      DEBUG(dbgs() << "MCP: Removing copy due to no live-out succ: ";<br class="">+            MaybeDead->dump());<br class="">      assert(!MRI->isReserved(MaybeDead->getOperand(0).getReg()));<br class="">      MaybeDead->eraseFromParent();<br class="">      Changed = true;<br class=""><br class="">Modified: llvm/trunk/lib/CodeGen/TargetPassConfig.cpp<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetPassConfig.cpp?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetPassConfig.cpp?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/CodeGen/TargetPassConfig.cpp (original)<br class="">+++ llvm/trunk/lib/CodeGen/TargetPassConfig.cpp Tue Feb 27 08:59:10 2018<br class="">@@ -1083,6 +1083,10 @@ void TargetPassConfig::addOptimizedRegAl<br class="">    // kill markers.<br class="">    addPass(&StackSlotColoringID);<br class=""><br class="">+    // Copy propagate to forward register uses and try to eliminate COPYs that<br class="">+    // were not coalesced.<br class="">+    addPass(&MachineCopyPropagationID);<br class="">+<o:p class=""></o:p></div></div></div></blockquote><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">This part is wasteful if the target does not allow register renaming.<o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">Could we tie that to the setting of<span class="Apple-converted-space"> </span><span class="" style="font-size: 8.5pt; font-family: Menlo, serif; background-color: white;">AllowRegisterRenaming</span><span class="" style="background-color: white;"><span class="Apple-converted-space"> </span>in TableGen?</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">Moreover, this pass doesn’t actually play nice with bundles when the headers are not set and right now we do enforce that the headers should be set.</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">In other words, by putting this pass in the default pipeline, we potentially break targets that don’t allow register renaming because that pass still does DCE on copies will potential ignoring the uses/defs happening in bundles.</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">(This happens for us.)</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">Do you mind if I revert this change while you work on plumbing AllowRegisterRenaming all the way up?</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">(I would be fine with another TargetPassConfig hook similar to addInstructionSelector.)</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><o:p class=""> </o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">Cheers,</span><o:p class=""></o:p></div></div><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><span class="" style="background-color: white;">-Quentin</span><o:p class=""></o:p></div></div><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"><br class=""><br class=""><o:p class=""></o:p></div><blockquote class="" type="cite" style="margin-top: 5pt; margin-bottom: 5pt;"><div class=""><div class=""><div class="" style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;">    // Run post-ra machine LICM to hoist reloads / remats.<br class="">    //<br class="">    // FIXME: can this move into MachineLateOptimization?<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/aarch64-fold-lslfast.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/aarch64-fold-lslfast.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/aarch64-fold-lslfast.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/aarch64-fold-lslfast.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/aarch64-fold-lslfast.ll Tue Feb 27 08:59:10 2018<br class="">@@ -9,7 +9,8 @@ define i16 @halfword(%struct.a* %ctx, i3<br class="">; CHECK-LABEL: halfword:<br class="">; CHECK: ubfx [[REG:x[0-9]+]], x1, #9, #8<br class="">; CHECK: ldrh [[REG1:w[0-9]+]], [{{.*}}[[REG2:x[0-9]+]], [[REG]], lsl #1]<br class="">-; CHECK: strh [[REG1]], [{{.*}}[[REG2]], [[REG]], lsl #1]<br class="">+; CHECK: mov [[REG3:x[0-9]+]], [[REG2]]<br class="">+; CHECK: strh [[REG1]], [{{.*}}[[REG3]], [[REG]], lsl #1]<br class="">  %shr81 = lshr i32 %xor72, 9<br class="">  %conv82 = zext i32 %shr81 to i64<br class="">  %idxprom83 = and i64 %conv82, 255<br class="">@@ -24,7 +25,8 @@ define i32 @word(%struct.b* %ctx, i32 %x<br class="">; CHECK-LABEL: word:<br class="">; CHECK: ubfx [[REG:x[0-9]+]], x1, #9, #8<br class="">; CHECK: ldr [[REG1:w[0-9]+]], [{{.*}}[[REG2:x[0-9]+]], [[REG]], lsl #2]<br class="">-; CHECK: str [[REG1]], [{{.*}}[[REG2]], [[REG]], lsl #2]<br class="">+; CHECK: mov [[REG3:x[0-9]+]], [[REG2]]<br class="">+; CHECK: str [[REG1]], [{{.*}}[[REG3]], [[REG]], lsl #2]<br class="">  %shr81 = lshr i32 %xor72, 9<br class="">  %conv82 = zext i32 %shr81 to i64<br class="">  %idxprom83 = and i64 %conv82, 255<br class="">@@ -39,7 +41,8 @@ define i64 @doubleword(%struct.c* %ctx,<br class="">; CHECK-LABEL: doubleword:<br class="">; CHECK: ubfx [[REG:x[0-9]+]], x1, #9, #8<br class="">; CHECK: ldr [[REG1:x[0-9]+]], [{{.*}}[[REG2:x[0-9]+]], [[REG]], lsl #3]<br class="">-; CHECK: str [[REG1]], [{{.*}}[[REG2]], [[REG]], lsl #3]<br class="">+; CHECK: mov [[REG3:x[0-9]+]], [[REG2]]<br class="">+; CHECK: str [[REG1]], [{{.*}}[[REG3]], [[REG]], lsl #3]<br class="">  %shr81 = lshr i32 %xor72, 9<br class="">  %conv82 = zext i32 %shr81 to i64<br class="">  %idxprom83 = and i64 %conv82, 255<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll Tue Feb 27 08:59:10 2018<br class="">@@ -8,15 +8,9 @@ define <2 x i64> @bar(<2 x i64> %a, <2 x<br class="">; CHECK: add.2d<span class="apple-tab-span">             <span class="Apple-converted-space"> </span></span>v[[REG:[0-9]+]], v0, v1<br class="">; CHECK: add<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>d[[REG3:[0-9]+]], d[[REG]], d1<br class="">; CHECK: sub<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>d[[REG2:[0-9]+]], d[[REG]], d1<br class="">-; Without advanced copy optimization, we end up with cross register<br class="">-; banks copies that cannot be coalesced.<br class="">-; CHECK-NOOPT: fmov [[COPY_REG3:x[0-9]+]], d[[REG3]]<br class="">-; With advanced copy optimization, we end up with just one copy<br class="">-; to insert the computed high part into the V register.<span class="Apple-converted-space"> </span><br class="">-; CHECK-OPT-NOT: fmov<br class="">+; CHECK-NOT: fmov<br class="">; CHECK: fmov [[COPY_REG2:x[0-9]+]], d[[REG2]]<br class="">-; CHECK-NOOPT: fmov d0, [[COPY_REG3]]<br class="">-; CHECK-OPT-NOT: fmov<br class="">+; CHECK-NOT: fmov<br class="">; CHECK: mov.d v0[1], [[COPY_REG2]]<br class="">; CHECK-NEXT: ret<br class="">;<br class="">@@ -24,11 +18,9 @@ define <2 x i64> @bar(<2 x i64> %a, <2 x<br class="">; GENERIC: add<span class="apple-tab-span">               <span class="Apple-converted-space"> </span></span>v[[REG:[0-9]+]].2d, v0.2d, v1.2d<br class="">; GENERIC: add<span class="apple-tab-span">               <span class="Apple-converted-space"> </span></span>d[[REG3:[0-9]+]], d[[REG]], d1<br class="">; GENERIC: sub<span class="apple-tab-span"><span class="Apple-converted-space"> </span></span>d[[REG2:[0-9]+]], d[[REG]], d1<br class="">-; GENERIC-NOOPT: fmov [[COPY_REG3:x[0-9]+]], d[[REG3]]<br class="">-; GENERIC-OPT-NOT: fmov<br class="">+; GENERIC-NOT: fmov<br class="">; GENERIC: fmov [[COPY_REG2:x[0-9]+]], d[[REG2]]<br class="">-; GENERIC-NOOPT: fmov d0, [[COPY_REG3]]<br class="">-; GENERIC-OPT-NOT: fmov<br class="">+; GENERIC-NOT: fmov<br class="">; GENERIC: mov v0.d[1], [[COPY_REG2]]<br class="">; GENERIC-NEXT: ret<br class="">  %add = add <2 x i64> %a, %b<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll Tue Feb 27 08:59:10 2018<br class="">@@ -4,8 +4,10 @@<br class="">define i32 @t(i32 %a, i32 %b, i32 %c, i32 %d) nounwind ssp {<br class="">entry:<br class="">; CHECK-LABEL: t:<br class="">-; CHECK: mov x0, [[REG1:x[0-9]+]]<br class="">-; CHECK: mov x1, [[REG2:x[0-9]+]]<br class="">+; CHECK: mov [[REG2:x[0-9]+]], x3<br class="">+; CHECK: mov [[REG1:x[0-9]+]], x2<br class="">+; CHECK: mov x0, x2<br class="">+; CHECK: mov x1, x3<br class="">; CHECK: bl _foo<br class="">; CHECK: mov x0, [[REG1]]<br class="">; CHECK: mov x1, [[REG2]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/cmpxchg-idioms.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/cmpxchg-idioms.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/cmpxchg-idioms.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/cmpxchg-idioms.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/cmpxchg-idioms.ll Tue Feb 27 08:59:10 2018<br class="">@@ -45,8 +45,7 @@ define i1 @test_return_bool(i8* %value,<br class=""><br class="">; CHECK: [[FAILED]]:<br class="">; CHECK-NOT: cmp {{w[0-9]+}}, {{w[0-9]+}}<br class="">-; CHECK: mov [[TMP:w[0-9]+]], wzr<br class="">-; CHECK: eor w0, [[TMP]], #0x1<br class="">+; CHECK: eor w0, wzr, #0x1<br class="">; CHECK: ret<br class=""><br class="">  %pair = cmpxchg i8* %value, i8 %oldValue, i8 %newValue acq_rel monotonic<br class=""><br class="">Added: llvm/trunk/test/CodeGen/AArch64/copyprop.mir<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/copyprop.mir?rev=326208&view=auto" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/copyprop.mir?rev=326208&view=auto</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/copyprop.mir (added)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/copyprop.mir Tue Feb 27 08:59:10 2018<br class="">@@ -0,0 +1,104 @@<br class="">+# RUN: llc -mtriple=aarch64-linux-gnu -run-pass machine-cp -o - %s | FileCheck %s<br class="">+# Tests for MachineCopyPropagation copy forwarding.<br class="">+---<br class="">+# Simple forwarding.<br class="">+# CHECK-LABEL: name: test1<br class="">+# CHECK: $x0 = SUBXri $x0, 1, 0<br class="">+name:            test1<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    renamable $x1 = COPY $x0<br class="">+    $x0 = SUBXri renamable $x1, 1, 0<br class="">+...<br class="">+---<br class="">+# Don't forward if not renamable.<br class="">+# CHECK-LABEL: name: test2<br class="">+# CHECK: $x0 = SUBXri $x1, 1, 0<br class="">+name:            test2<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    $x1 = COPY $x0<br class="">+    $x0 = SUBXri $x1, 1, 0<br class="">+...<br class="">+---<br class="">+# Don't forward reserved non-constant reg values.<br class="">+# CHECK-LABEL: name: test4<br class="">+# CHECK: $x0 = SUBXri renamable $x1, 1, 0<br class="">+name:            test4<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    $sp = SUBXri $sp, 16, 0<br class="">+    renamable $x1 = COPY $sp<br class="">+    $x0 = SUBXri renamable $x1, 1, 0<br class="">+    $sp = ADDXri $sp, 16, 0<br class="">+...<br class="">+---<br class="">+# Don't violate opcode constraints when forwarding.<br class="">+# CHECK-LABEL: name: test5<br class="">+# CHECK: $x0 = SUBXri renamable $x1, 1, 0<br class="">+name:            test5<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    renamable $x1 = COPY $xzr<br class="">+    $x0 = SUBXri renamable $x1, 1, 0<br class="">+...<br class="">+---<br class="">+# Test cross-class COPY forwarding.<br class="">+# CHECK-LABEL: name: test6<br class="">+# CHECK: $x2 = COPY $x0<br class="">+name:            test6<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    renamable $d1 = COPY $x0<br class="">+    $x2 = COPY renamable $d1<br class="">+    RET_ReallyLR implicit $x2<br class="">+...<br class="">+---<br class="">+# Don't forward if there are overlapping implicit operands.<br class="">+# CHECK-LABEL: name: test7<br class="">+# CHECK: $w0 = SUBWri killed renamable $w1, 1, 0<br class="">+name:            test7<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $w0<br class="">+    renamable $w1 = COPY $w0<br class="">+    $w0 = SUBWri killed renamable $w1, 1, 0, implicit killed $x1<br class="">+...<br class="">+---<br class="">+# Check that kill flags are cleared.<br class="">+# CHECK-LABEL: name: test8<br class="">+# CHECK: $x2 = ADDXri $x0, 1, 0<br class="">+# CHECK: $x0 = SUBXri $x0, 1, 0<br class="">+name:            test8<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    renamable $x1 = COPY $x0<br class="">+    $x2 = ADDXri killed $x0, 1, 0<br class="">+    $x0 = SUBXri renamable $x1, 1, 0<br class="">+...<br class="">+---<br class="">+# Don't forward if value is clobbered.<br class="">+# CHECK-LABEL: name: test9<br class="">+# CHECK: $x2 = SUBXri renamable $x1, 1, 0<br class="">+name:            test9<br class="">+tracksRegLiveness: true<br class="">+body: |<br class="">+  bb.0:<br class="">+    liveins: $x0<br class="">+    renamable $x1 = COPY $x0<br class="">+    $x0 = ADDXri $x0, 1, 0<br class="">+    $x2 = SUBXri renamable $x1, 1, 0<br class="">+...<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/f16-instructions.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/f16-instructions.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/f16-instructions.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/f16-instructions.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/f16-instructions.ll Tue Feb 27 08:59:10 2018<br class="">@@ -489,7 +489,7 @@ else:<br class=""><br class="">; CHECK-COMMON-LABEL: test_phi:<br class="">; CHECK-COMMON: mov  x[[PTR:[0-9]+]], x0<br class="">-; CHECK-COMMON: ldr  h[[AB:[0-9]+]], [x[[PTR]]]<br class="">+; CHECK-COMMON: ldr  h[[AB:[0-9]+]], [x0]<br class="">; CHECK-COMMON: [[LOOP:LBB[0-9_]+]]:<br class="">; CHECK-COMMON: mov.16b  v[[R:[0-9]+]], v[[AB]]<br class="">; CHECK-COMMON: ldr  h[[AB]], [x[[PTR]]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/flags-multiuse.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/flags-multiuse.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/flags-multiuse.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/flags-multiuse.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/flags-multiuse.ll Tue Feb 27 08:59:10 2018<br class="">@@ -17,6 +17,9 @@ define i32 @test_multiflag(i32 %n, i32 %<br class="">  %val = zext i1 %test to i32<br class="">; CHECK: cset {{[xw][0-9]+}}, ne<br class=""><br class="">+; CHECK: mov [[RHSCOPY:w[0-9]+]], [[RHS]]<br class="">+; CHECK: mov [[LHSCOPY:w[0-9]+]], [[LHS]]<br class="">+<br class="">  store i32 %val, i32* @var<br class=""><br class="">  call void @bar()<br class="">@@ -25,7 +28,7 @@ define i32 @test_multiflag(i32 %n, i32 %<br class="">  ; Currently, the comparison is emitted again. An MSR/MRS pair would also be<br class="">  ; acceptable, but assuming the call preserves NZCV is not.<br class="">  br i1 %test, label %iftrue, label %iffalse<br class="">-; CHECK: cmp [[LHS]], [[RHS]]<br class="">+; CHECK: cmp [[LHSCOPY]], [[RHSCOPY]]<br class="">; CHECK: b.eq<br class=""><br class="">iftrue:<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/ldst-opt.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/ldst-opt.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/ldst-opt.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/ldst-opt.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/ldst-opt.ll Tue Feb 27 08:59:10 2018<br class="">@@ -1671,7 +1671,7 @@ entry:<br class="">; CHECK-LABEL: bug34674:<br class="">; CHECK: // %entry<br class="">; CHECK-NEXT: mov [[ZREG:x[0-9]+]], xzr<br class="">-; CHECK-DAG: stp [[ZREG]], [[ZREG]], [x0]<br class="">+; CHECK-DAG: stp xzr, xzr, [x0]<br class="">; CHECK-DAG: add x{{[0-9]+}}, [[ZREG]], #1<br class="">define i64 @bug34674(<2 x i64>* %p) {<br class="">entry:<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/merge-store-dependency.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/merge-store-dependency.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/merge-store-dependency.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/merge-store-dependency.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/merge-store-dependency.ll Tue Feb 27 08:59:10 2018<br class="">@@ -11,7 +11,7 @@ entry:<br class="">; A53: mov [[DATA:w[0-9]+]], w1<br class="">; A53: str q{{[0-9]+}}, {{.*}}<br class="">; A53: str q{{[0-9]+}}, {{.*}}<br class="">-; A53: str [[DATA]], {{.*}}<br class="">+; A53: str w1, {{.*}}<br class=""><br class="">  %0 = bitcast %struct1* %fde to i8*<br class="">  tail call void @llvm.memset.p0i8.i64(i8* align 8 %0, i8 0, i64 40, i1 false)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/neg-imm.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/neg-imm.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/neg-imm.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/neg-imm.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/neg-imm.ll Tue Feb 27 08:59:10 2018<br class="">@@ -7,8 +7,8 @@ declare void @foo(i32)<br class="">define void @test(i32 %px) {<br class="">; CHECK_LABEL: test:<br class="">; CHECK_LABEL: %entry<br class="">-; CHECK: subs<br class="">-; CHECK-NEXT: csel<br class="">+; CHECK: subs [[REG0:w[0-9]+]],<br class="">+; CHECK: csel {{w[0-9]+}}, wzr, [[REG0]]<br class="">entry:<br class="">  %sub = add nsw i32 %px, -1<br class="">  %cmp = icmp slt i32 %px, 1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AArch64/swifterror.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/swifterror.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/swifterror.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AArch64/swifterror.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AArch64/swifterror.ll Tue Feb 27 08:59:10 2018<br class="">@@ -41,7 +41,7 @@ define float @caller(i8* %error_ref) {<br class="">; CHECK-APPLE: mov x21, xzr<br class="">; CHECK-APPLE: bl {{.*}}foo<br class="">; CHECK-APPLE: mov x0, x21<br class="">-; CHECK-APPLE: cbnz x0<br class="">+; CHECK-APPLE: cbnz x21<br class="">; Access part of the error object and save it to error_ref<br class="">; CHECK-APPLE: ldrb [[CODE:w[0-9]+]], [x0, #8]<br class="">; CHECK-APPLE: strb [[CODE]], [{{.*}}[[ID]]]<br class="">@@ -264,7 +264,7 @@ define float @caller3(i8* %error_ref) {<br class="">; CHECK-APPLE: mov x21, xzr<br class="">; CHECK-APPLE: bl {{.*}}foo_sret<br class="">; CHECK-APPLE: mov x0, x21<br class="">-; CHECK-APPLE: cbnz x0<br class="">+; CHECK-APPLE: cbnz x21<br class="">; Access part of the error object and save it to error_ref<br class="">; CHECK-APPLE: ldrb [[CODE:w[0-9]+]], [x0, #8]<br class="">; CHECK-APPLE: strb [[CODE]], [{{.*}}[[ID]]]<br class="">@@ -358,7 +358,7 @@ define float @caller4(i8* %error_ref) {<br class="">; CHECK-APPLE: mov x21, xzr<br class="">; CHECK-APPLE: bl {{.*}}foo_vararg<br class="">; CHECK-APPLE: mov x0, x21<br class="">-; CHECK-APPLE: cbnz x0<br class="">+; CHECK-APPLE: cbnz x21<br class="">; Access part of the error object and save it to error_ref<br class="">; CHECK-APPLE: ldrb [[CODE:w[0-9]+]], [x0, #8]<br class="">; CHECK-APPLE: strb [[CODE]], [{{.*}}[[ID]]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AMDGPU/callee-special-input-sgprs.ll Tue Feb 27 08:59:10 2018<br class="">@@ -547,16 +547,16 @@ define void @func_use_every_sgpr_input_c<br class="">; GCN: s_mov_b32 s5, s32<br class="">; GCN: s_add_u32 s32, s32, 0x300<br class=""><br class="">-; GCN-DAG: s_mov_b32 [[SAVE_X:s[0-9]+]], s14<br class="">-; GCN-DAG: s_mov_b32 [[SAVE_Y:s[0-9]+]], s15<br class="">-; GCN-DAG: s_mov_b32 [[SAVE_Z:s[0-9]+]], s16<br class="">+; GCN-DAG: s_mov_b32 [[SAVE_X:s[0-57-9][0-9]*]], s14<br class="">+; GCN-DAG: s_mov_b32 [[SAVE_Y:s[0-68-9][0-9]*]], s15<br class="">+; GCN-DAG: s_mov_b32 [[SAVE_Z:s[0-79][0-9]*]], s16<br class="">; GCN-DAG: s_mov_b64 {{s\[[0-9]+:[0-9]+\]}}, s[6:7]<br class="">; GCN-DAG: s_mov_b64 {{s\[[0-9]+:[0-9]+\]}}, s[8:9]<br class="">; GCN-DAG: s_mov_b64 {{s\[[0-9]+:[0-9]+\]}}, s[10:11]<br class=""><br class="">-; GCN-DAG: s_mov_b32 s6, [[SAVE_X]]<br class="">-; GCN-DAG: s_mov_b32 s7, [[SAVE_Y]]<br class="">-; GCN-DAG: s_mov_b32 s8, [[SAVE_Z]]<br class="">+; GCN-DAG: s_mov_b32 s6, s14<br class="">+; GCN-DAG: s_mov_b32 s7, s15<br class="">+; GCN-DAG: s_mov_b32 s8, s16<br class="">; GCN: s_swappc_b64<br class=""><br class="">; GCN: buffer_store_dword v{{[0-9]+}}, off, s[0:3], s5 offset:4<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AMDGPU/fix-vgpr-copies.mir<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/fix-vgpr-copies.mir?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/fix-vgpr-copies.mir?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AMDGPU/fix-vgpr-copies.mir (original)<br class="">+++ llvm/trunk/test/CodeGen/AMDGPU/fix-vgpr-copies.mir Tue Feb 27 08:59:10 2018<br class="">@@ -1,4 +1,4 @@<br class="">-# RUN: llc -march=amdgcn -start-after=greedy -stop-after=si-optimize-exec-masking -o - %s | FileCheck %s<br class="">+# RUN: llc -march=amdgcn -start-after=greedy -disable-copyprop -stop-after=si-optimize-exec-masking -o - %s | FileCheck %s<br class=""># Check that we first do all vector instructions and only then change exec<br class=""># CHECK-DAG:  COPY $vgpr10_vgpr11<br class=""># CHECK-DAG:  COPY $vgpr12_vgpr13<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AMDGPU/multilevel-break.ll Tue Feb 27 08:59:10 2018<br class="">@@ -78,7 +78,7 @@ ENDIF:<br class=""><br class="">; Uses a copy intsead of an or<br class="">; GCN: s_mov_b64 [[COPY:s\[[0-9]+:[0-9]+\]]], [[BREAK_REG]]<br class="">-; GCN: s_or_b64 [[BREAK_REG]], exec, [[COPY]]<br class="">+; GCN: s_or_b64 [[BREAK_REG]], exec, [[BREAK_REG]]<br class="">define amdgpu_kernel void @multi_if_break_loop(i32 %arg) #0 {<br class="">bb:<br class="">  %id = call i32 @llvm.amdgcn.workitem.id.x()<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/AMDGPU/ret.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/ret.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/ret.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/AMDGPU/ret.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/AMDGPU/ret.ll Tue Feb 27 08:59:10 2018<br class="">@@ -2,10 +2,10 @@<br class="">; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s<br class=""><br class="">; GCN-LABEL: {{^}}vgpr:<br class="">-; GCN: v_mov_b32_e32 v1, v0<br class="">-; GCN-DAG: v_add_f32_e32 v0, 1.0, v1<br class="">-; GCN-DAG: exp mrt0 v1, v1, v1, v1 done vm<br class="">+; GCN-DAG: v_mov_b32_e32 v1, v0<br class="">+; GCN-DAG: exp mrt0 v0, v0, v0, v0 done vm<br class="">; GCN: s_waitcnt expcnt(0)<br class="">+; GCN: v_add_f32_e32 v0, 1.0, v1<br class="">; GCN-NOT: s_endpgm<br class="">define amdgpu_vs { float, float } @vgpr([9 x <16 x i8>] addrspace(4)* byval %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {<br class="">bb:<br class="">@@ -179,7 +179,7 @@ bb:<br class=""><br class="">; GCN-LABEL: {{^}}sgpr:<br class="">; GCN: s_mov_b32 s2, s3<br class="">-; GCN: s_add_i32 s0, s2, 2<br class="">+; GCN: s_add_i32 s0, s3, 2<br class="">; GCN-NOT: s_endpgm<br class="">define amdgpu_vs { i32, i32, i32 } @sgpr([9 x <16 x i8>] addrspace(4)* byval %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {<br class="">bb:<br class="">@@ -204,13 +204,13 @@ bb:<br class="">}<br class=""><br class="">; GCN-LABEL: {{^}}both:<br class="">-; GCN: v_mov_b32_e32 v1, v0<br class="">-; GCN-DAG: exp mrt0 v1, v1, v1, v1 done vm<br class="">-; GCN-DAG: v_add_f32_e32 v0, 1.0, v1<br class="">-; GCN-DAG: s_add_i32 s0, s3, 2<br class="">+; GCN-DAG: exp mrt0 v0, v0, v0, v0 done vm<br class="">+; GCN-DAG: v_mov_b32_e32 v1, v0<br class="">; GCN-DAG: s_mov_b32 s1, s2<br class="">-; GCN: s_mov_b32 s2, s3<br class="">; GCN: s_waitcnt expcnt(0)<br class="">+; GCN: v_add_f32_e32 v0, 1.0, v1<br class="">+; GCN-DAG: s_add_i32 s0, s3, 2<br class="">+; GCN-DAG: s_mov_b32 s2, s3<br class="">; GCN-NOT: s_endpgm<br class="">define amdgpu_vs { float, i32, float, i32, i32 } @both([9 x <16 x i8>] addrspace(4)* byval %arg, i32 inreg %arg1, i32 inreg %arg2, float %arg3) #0 {<br class="">bb:<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/ARM/atomic-op.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/atomic-op.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/atomic-op.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/ARM/atomic-op.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/ARM/atomic-op.ll Tue Feb 27 08:59:10 2018<br class="">@@ -287,7 +287,8 @@ define i32 @test_cmpxchg_fail_order(i32<br class=""><br class="">  %pair = cmpxchg i32* %addr, i32 %desired, i32 %new seq_cst monotonic<br class="">  %oldval = extractvalue { i32, i1 } %pair, 0<br class="">-; CHECK-ARMV7:     ldrex   [[OLDVAL:r[0-9]+]], [r[[ADDR:[0-9]+]]]<br class="">+; CHECK-ARMV7:     mov     r[[ADDR:[0-9]+]], r0<br class="">+; CHECK-ARMV7:     ldrex   [[OLDVAL:r[0-9]+]], [r0]<br class="">; CHECK-ARMV7:     cmp     [[OLDVAL]], r1<br class="">; CHECK-ARMV7:     bne     [[FAIL_BB:\.?LBB[0-9]+_[0-9]+]]<br class="">; CHECK-ARMV7:     dmb ish<br class="">@@ -305,7 +306,8 @@ define i32 @test_cmpxchg_fail_order(i32<br class="">; CHECK-ARMV7:     dmb     ish<br class="">; CHECK-ARMV7:     bx      lr<br class=""><br class="">-; CHECK-T2:     ldrex   [[OLDVAL:r[0-9]+]], [r[[ADDR:[0-9]+]]]<br class="">+; CHECK-T2:     mov     r[[ADDR:[0-9]+]], r0<br class="">+; CHECK-T2:     ldrex   [[OLDVAL:r[0-9]+]], [r0]<br class="">; CHECK-T2:     cmp     [[OLDVAL]], r1<br class="">; CHECK-T2:     bne     [[FAIL_BB:\.?LBB.*]]<br class="">; CHECK-T2:     dmb ish<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/ARM/intrinsics-overflow.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/intrinsics-overflow.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/intrinsics-overflow.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/ARM/intrinsics-overflow.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/ARM/intrinsics-overflow.ll Tue Feb 27 08:59:10 2018<br class="">@@ -39,7 +39,7 @@ define i32 @sadd_overflow(i32 %a, i32 %b<br class="">  ; ARM: mov pc, lr<br class=""><br class="">  ; THUMBV6: mov  r[[R2:[0-9]+]], r[[R0:[0-9]+]]<br class="">-  ; THUMBV6: adds r[[R3:[0-9]+]], r[[R2]], r[[R1:[0-9]+]]<br class="">+  ; THUMBV6: adds r[[R3:[0-9]+]], r[[R0]], r[[R1:[0-9]+]]<br class="">  ; THUMBV6: movs r[[R0]], #0<br class="">  ; THUMBV6: movs r[[R1]], #1<br class="">  ; THUMBV6: cmp  r[[R3]], r[[R2]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/ARM/swifterror.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/swifterror.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/swifterror.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/ARM/swifterror.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/ARM/swifterror.ll Tue Feb 27 08:59:10 2018<br class="">@@ -40,7 +40,7 @@ define float @caller(i8* %error_ref) {<br class="">; CHECK-APPLE-DAG: mov r8, #0<br class="">; CHECK-APPLE: bl {{.*}}foo<br class="">; CHECK-APPLE: mov r0, r8<br class="">-; CHECK-APPLE: cmp r0, #0<br class="">+; CHECK-APPLE: cmp r8, #0<br class="">; Access part of the error object and save it to error_ref<br class="">; CHECK-APPLE: ldrbeq [[CODE:r[0-9]+]], [r0, #8]<br class="">; CHECK-APPLE: strbeq [[CODE]], [{{.*}}[[ID]]]<br class="">@@ -181,8 +181,7 @@ define float @foo_loop(%swift_error** sw<br class="">; CHECK-APPLE: beq<br class="">; CHECK-APPLE: mov r0, #16<br class="">; CHECK-APPLE: malloc<br class="">-; CHECK-APPLE: mov r8, r0<br class="">-; CHECK-APPLE: strb r{{.*}}, [r8, #8]<br class="">+; CHECK-APPLE: strb r{{.*}}, [r0, #8]<br class="">; CHECK-APPLE: ble<br class=""><br class="">; CHECK-O0-LABEL: foo_loop:<br class="">@@ -266,7 +265,7 @@ define float @caller3(i8* %error_ref) {<br class="">; CHECK-APPLE: mov r8, #0<br class="">; CHECK-APPLE: bl {{.*}}foo_sret<br class="">; CHECK-APPLE: mov r0, r8<br class="">-; CHECK-APPLE: cmp r0, #0<br class="">+; CHECK-APPLE: cmp r8, #0<br class="">; Access part of the error object and save it to error_ref<br class="">; CHECK-APPLE: ldrbeq [[CODE:r[0-9]+]], [r0, #8]<br class="">; CHECK-APPLE: strbeq [[CODE]], [{{.*}}[[ID]]]<br class="">@@ -347,7 +346,7 @@ define float @caller4(i8* %error_ref) {<br class="">; CHECK-APPLE: mov r8, #0<br class="">; CHECK-APPLE: bl {{.*}}foo_vararg<br class="">; CHECK-APPLE: mov r0, r8<br class="">-; CHECK-APPLE: cmp r0, #0<br class="">+; CHECK-APPLE: cmp r8, #0<br class="">; Access part of the error object and save it to error_ref<br class="">; CHECK-APPLE: ldrbeq [[CODE:r[0-9]+]], [r0, #8]<br class="">; CHECK-APPLE: strbeq [[CODE]], [{{.*}}[[ID]]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/analyzebranch.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/analyzebranch.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/analyzebranch.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/analyzebranch.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/analyzebranch.ll Tue Feb 27 08:59:10 2018<br class="">@@ -10,12 +10,11 @@<br class="">define double @foo(double %a, double %b) nounwind readnone {<br class="">; MIPS32-LABEL: foo:<br class="">; MIPS32:       # %bb.0: # %entry<br class="">-; MIPS32-NEXT:    mov.d $f0, $f12<br class="">; MIPS32-NEXT:    mtc1 $zero, $f2<br class="">; MIPS32-NEXT:    mtc1 $zero, $f3<br class="">-; MIPS32-NEXT:    c.ule.d $f0, $f2<br class="">+; MIPS32-NEXT:    c.ule.d $f12, $f2<br class="">; MIPS32-NEXT:    bc1f $BB0_2<br class="">-; MIPS32-NEXT:    nop<br class="">+; MIPS32-NEXT:    mov.d $f0, $f12<br class="">; MIPS32-NEXT:  # %bb.1: # %if.else<br class="">; MIPS32-NEXT:    mtc1 $zero, $f0<br class="">; MIPS32-NEXT:    mtc1 $zero, $f1<br class="">@@ -34,7 +33,7 @@ define double @foo(double %a, double %b)<br class="">; MIPS32R2-NEXT:    mov.d $f0, $f12<br class="">; MIPS32R2-NEXT:    mtc1 $zero, $f2<br class="">; MIPS32R2-NEXT:    mthc1 $zero, $f2<br class="">-; MIPS32R2-NEXT:    c.ule.d $f0, $f2<br class="">+; MIPS32R2-NEXT:    c.ule.d $f12, $f2<br class="">; MIPS32R2-NEXT:    bc1f $BB0_2<br class="">; MIPS32R2-NEXT:    nop<br class="">; MIPS32R2-NEXT:  # %bb.1: # %if.else<br class="">@@ -55,7 +54,7 @@ define double @foo(double %a, double %b)<br class="">; MIPS32r6-NEXT:    mov.d $f0, $f12<br class="">; MIPS32r6-NEXT:    mtc1 $zero, $f1<br class="">; MIPS32r6-NEXT:    mthc1 $zero, $f1<br class="">-; MIPS32r6-NEXT:    cmp.lt.d $f1, $f1, $f0<br class="">+; MIPS32r6-NEXT:    cmp.lt.d $f1, $f1, $f12<br class="">; MIPS32r6-NEXT:    mfc1 $1, $f1<br class="">; MIPS32r6-NEXT:    andi $1, $1, 1<br class="">; MIPS32r6-NEXT:    bnezc $1, $BB0_2<br class="">@@ -74,11 +73,10 @@ define double @foo(double %a, double %b)<br class="">;<br class="">; MIPS4-LABEL: foo:<br class="">; MIPS4:       # %bb.0: # %entry<br class="">-; MIPS4-NEXT:    mov.d $f0, $f12<br class="">; MIPS4-NEXT:    dmtc1 $zero, $f1<br class="">-; MIPS4-NEXT:    c.ule.d $f0, $f1<br class="">+; MIPS4-NEXT:    c.ule.d $f12, $f1<br class="">; MIPS4-NEXT:    bc1f .LBB0_2<br class="">-; MIPS4-NEXT:    nop<br class="">+; MIPS4-NEXT:    mov.d $f0, $f12<br class="">; MIPS4-NEXT:  # %bb.1: # %if.else<br class="">; MIPS4-NEXT:    dmtc1 $zero, $f0<br class="">; MIPS4-NEXT:    c.ule.d $f13, $f0<br class="">@@ -93,11 +91,10 @@ define double @foo(double %a, double %b)<br class="">;<br class="">; MIPS64-LABEL: foo:<br class="">; MIPS64:       # %bb.0: # %entry<br class="">-; MIPS64-NEXT:    mov.d $f0, $f12<br class="">; MIPS64-NEXT:    dmtc1 $zero, $f1<br class="">-; MIPS64-NEXT:    c.ule.d $f0, $f1<br class="">+; MIPS64-NEXT:    c.ule.d $f12, $f1<br class="">; MIPS64-NEXT:    bc1f .LBB0_2<br class="">-; MIPS64-NEXT:    nop<br class="">+; MIPS64-NEXT:    mov.d $f0, $f12<br class="">; MIPS64-NEXT:  # %bb.1: # %if.else<br class="">; MIPS64-NEXT:    dmtc1 $zero, $f0<br class="">; MIPS64-NEXT:    c.ule.d $f13, $f0<br class="">@@ -112,11 +109,10 @@ define double @foo(double %a, double %b)<br class="">;<br class="">; MIPS64R2-LABEL: foo:<br class="">; MIPS64R2:       # %bb.0: # %entry<br class="">-; MIPS64R2-NEXT:    mov.d $f0, $f12<br class="">; MIPS64R2-NEXT:    dmtc1 $zero, $f1<br class="">-; MIPS64R2-NEXT:    c.ule.d $f0, $f1<br class="">+; MIPS64R2-NEXT:    c.ule.d $f12, $f1<br class="">; MIPS64R2-NEXT:    bc1f .LBB0_2<br class="">-; MIPS64R2-NEXT:    nop<br class="">+; MIPS64R2-NEXT:    mov.d $f0, $f12<br class="">; MIPS64R2-NEXT:  # %bb.1: # %if.else<br class="">; MIPS64R2-NEXT:    dmtc1 $zero, $f0<br class="">; MIPS64R2-NEXT:    c.ule.d $f13, $f0<br class="">@@ -131,12 +127,12 @@ define double @foo(double %a, double %b)<br class="">;<br class="">; MIPS64R6-LABEL: foo:<br class="">; MIPS64R6:       # %bb.0: # %entry<br class="">-; MIPS64R6-NEXT:    mov.d $f0, $f12<br class="">; MIPS64R6-NEXT:    dmtc1 $zero, $f1<br class="">-; MIPS64R6-NEXT:    cmp.lt.d $f1, $f1, $f0<br class="">+; MIPS64R6-NEXT:    cmp.lt.d $f1, $f1, $f12<br class="">; MIPS64R6-NEXT:    mfc1 $1, $f1<br class="">; MIPS64R6-NEXT:    andi $1, $1, 1<br class="">-; MIPS64R6-NEXT:    bnezc $1, .LBB0_2<br class="">+; MIPS64R6-NEXT:    bnez $1, .LBB0_2<br class="">+; MIPS64R6-NEXT:    mov.d<span class="apple-tab-span">     <span class="Apple-converted-space"> </span></span>$f0, $f12<br class="">; MIPS64R6-NEXT:  # %bb.1: # %if.else<br class="">; MIPS64R6-NEXT:    dmtc1 $zero, $f0<br class="">; MIPS64R6-NEXT:    cmp.ule.d $f1, $f13, $f0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/llvm-ir/ashr.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/ashr.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/ashr.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/llvm-ir/ashr.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/llvm-ir/ashr.ll Tue Feb 27 08:59:10 2018<br class="">@@ -800,7 +800,7 @@ define signext i128 @ashr_i128(i128 sign<br class="">; MMR3-NEXT:    sw $5, 36($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    sw $4, 8($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    lw $16, 76($sp)<br class="">-; MMR3-NEXT:    srlv $4, $8, $16<br class="">+; MMR3-NEXT:    srlv $4, $7, $16<br class="">; MMR3-NEXT:    not16 $3, $16<br class="">; MMR3-NEXT:    sw $3, 24($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    sll16 $2, $6, 1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/llvm-ir/lshr.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/lshr.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/lshr.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/llvm-ir/lshr.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/llvm-ir/lshr.ll Tue Feb 27 08:59:10 2018<br class="">@@ -828,7 +828,7 @@ define signext i128 @lshr_i128(i128 sign<br class="">; MMR3-NEXT:    move $17, $5<br class="">; MMR3-NEXT:    sw $4, 8($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    lw $16, 76($sp)<br class="">-; MMR3-NEXT:    srlv $7, $8, $16<br class="">+; MMR3-NEXT:    srlv $7, $7, $16<br class="">; MMR3-NEXT:    not16 $3, $16<br class="">; MMR3-NEXT:    sw $3, 24($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    sll16 $2, $6, 1<br class="">@@ -919,14 +919,14 @@ define signext i128 @lshr_i128(i128 sign<br class="">; MMR6-NEXT:    not16 $5, $3<br class="">; MMR6-NEXT:    sw $5, 12($sp) # 4-byte Folded Spill<br class="">; MMR6-NEXT:    move $17, $6<br class="">-; MMR6-NEXT:    sw $17, 16($sp) # 4-byte Folded Spill<br class="">-; MMR6-NEXT:    sll16 $6, $17, 1<br class="">+; MMR6-NEXT:    sw $6, 16($sp) # 4-byte Folded Spill<br class="">+; MMR6-NEXT:    sll16 $6, $6, 1<br class="">; MMR6-NEXT:    sllv $6, $6, $5<br class="">; MMR6-NEXT:    or $8, $6, $2<br class="">; MMR6-NEXT:    addiu $5, $3, -64<br class="">; MMR6-NEXT:    srlv $9, $7, $5<br class="">; MMR6-NEXT:    move $6, $4<br class="">-; MMR6-NEXT:    sll16 $2, $6, 1<br class="">+; MMR6-NEXT:    sll16 $2, $4, 1<br class="">; MMR6-NEXT:    sw $2, 8($sp) # 4-byte Folded Spill<br class="">; MMR6-NEXT:    not16 $16, $5<br class="">; MMR6-NEXT:    sllv $10, $2, $16<br class="">@@ -948,7 +948,7 @@ define signext i128 @lshr_i128(i128 sign<br class="">; MMR6-NEXT:    selnez $11, $12, $4<br class="">; MMR6-NEXT:    sllv $12, $6, $2<br class="">; MMR6-NEXT:    move $7, $6<br class="">-; MMR6-NEXT:    sw $7, 4($sp) # 4-byte Folded Spill<br class="">+; MMR6-NEXT:    sw $6, 4($sp) # 4-byte Folded Spill<br class="">; MMR6-NEXT:    not16 $2, $2<br class="">; MMR6-NEXT:    srl16 $6, $17, 1<br class="">; MMR6-NEXT:    srlv $2, $6, $2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/llvm-ir/select-dbl.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/select-dbl.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/select-dbl.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/llvm-ir/select-dbl.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/llvm-ir/select-dbl.ll Tue Feb 27 08:59:10 2018<br class="">@@ -201,10 +201,9 @@ entry:<br class="">define double @tst_select_fcmp_olt_double(double %x, double %y) {<br class="">; M2-LABEL: tst_select_fcmp_olt_double:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.d $f0, $f12<br class="">-; M2-NEXT:    c.olt.d $f0, $f14<br class="">+; M2-NEXT:    c.olt.d $f12, $f14<br class="">; M2-NEXT:    bc1t $BB2_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.d $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.d $f0, $f14<br class="">; M2-NEXT:  $BB2_2: # %entry<br class="">@@ -214,14 +213,14 @@ define double @tst_select_fcmp_olt_doubl<br class="">; CMOV32R1-LABEL: tst_select_fcmp_olt_double:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.olt.d $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.olt.d $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_olt_double:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.olt.d $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.olt.d $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -235,10 +234,9 @@ define double @tst_select_fcmp_olt_doubl<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_olt_double:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.d $f0, $f12<br class="">-; M3-NEXT:    c.olt.d $f0, $f13<br class="">+; M3-NEXT:    c.olt.d $f12, $f13<br class="">; M3-NEXT:    bc1t .LBB2_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.d $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.d $f0, $f13<br class="">; M3-NEXT:  .LBB2_2: # %entry<br class="">@@ -248,7 +246,7 @@ define double @tst_select_fcmp_olt_doubl<br class="">; CMOV64-LABEL: tst_select_fcmp_olt_double:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.d $f0, $f13<br class="">-; CMOV64-NEXT:    c.olt.d $f12, $f0<br class="">+; CMOV64-NEXT:    c.olt.d $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -263,7 +261,7 @@ define double @tst_select_fcmp_olt_doubl<br class="">; MM32R3-LABEL: tst_select_fcmp_olt_double:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.d $f0, $f14<br class="">-; MM32R3-NEXT:    c.olt.d $f12, $f0<br class="">+; MM32R3-NEXT:    c.olt.d $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -283,10 +281,9 @@ entry:<br class="">define double @tst_select_fcmp_ole_double(double %x, double %y) {<br class="">; M2-LABEL: tst_select_fcmp_ole_double:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.d $f0, $f12<br class="">-; M2-NEXT:    c.ole.d $f0, $f14<br class="">+; M2-NEXT:    c.ole.d $f12, $f14<br class="">; M2-NEXT:    bc1t $BB3_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.d $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.d $f0, $f14<br class="">; M2-NEXT:  $BB3_2: # %entry<br class="">@@ -296,14 +293,14 @@ define double @tst_select_fcmp_ole_doubl<br class="">; CMOV32R1-LABEL: tst_select_fcmp_ole_double:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ole.d $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ole.d $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_ole_double:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ole.d $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ole.d $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -317,10 +314,9 @@ define double @tst_select_fcmp_ole_doubl<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_ole_double:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.d $f0, $f12<br class="">-; M3-NEXT:    c.ole.d $f0, $f13<br class="">+; M3-NEXT:    c.ole.d $f12, $f13<br class="">; M3-NEXT:    bc1t .LBB3_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.d $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.d $f0, $f13<br class="">; M3-NEXT:  .LBB3_2: # %entry<br class="">@@ -330,7 +326,7 @@ define double @tst_select_fcmp_ole_doubl<br class="">; CMOV64-LABEL: tst_select_fcmp_ole_double:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.d $f0, $f13<br class="">-; CMOV64-NEXT:    c.ole.d $f12, $f0<br class="">+; CMOV64-NEXT:    c.ole.d $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -345,7 +341,7 @@ define double @tst_select_fcmp_ole_doubl<br class="">; MM32R3-LABEL: tst_select_fcmp_ole_double:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.d $f0, $f14<br class="">-; MM32R3-NEXT:    c.ole.d $f12, $f0<br class="">+; MM32R3-NEXT:    c.ole.d $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -365,10 +361,9 @@ entry:<br class="">define double @tst_select_fcmp_ogt_double(double %x, double %y) {<br class="">; M2-LABEL: tst_select_fcmp_ogt_double:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.d $f0, $f12<br class="">-; M2-NEXT:    c.ule.d $f0, $f14<br class="">+; M2-NEXT:    c.ule.d $f12, $f14<br class="">; M2-NEXT:    bc1f $BB4_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.d $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.d $f0, $f14<br class="">; M2-NEXT:  $BB4_2: # %entry<br class="">@@ -378,14 +373,14 @@ define double @tst_select_fcmp_ogt_doubl<br class="">; CMOV32R1-LABEL: tst_select_fcmp_ogt_double:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ule.d $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ule.d $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_ogt_double:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ule.d $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ule.d $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -399,10 +394,9 @@ define double @tst_select_fcmp_ogt_doubl<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_ogt_double:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.d $f0, $f12<br class="">-; M3-NEXT:    c.ule.d $f0, $f13<br class="">+; M3-NEXT:    c.ule.d $f12, $f13<br class="">; M3-NEXT:    bc1f .LBB4_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.d $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.d $f0, $f13<br class="">; M3-NEXT:  .LBB4_2: # %entry<br class="">@@ -412,7 +406,7 @@ define double @tst_select_fcmp_ogt_doubl<br class="">; CMOV64-LABEL: tst_select_fcmp_ogt_double:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.d $f0, $f13<br class="">-; CMOV64-NEXT:    c.ule.d $f12, $f0<br class="">+; CMOV64-NEXT:    c.ule.d $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -427,7 +421,7 @@ define double @tst_select_fcmp_ogt_doubl<br class="">; MM32R3-LABEL: tst_select_fcmp_ogt_double:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.d $f0, $f14<br class="">-; MM32R3-NEXT:    c.ule.d $f12, $f0<br class="">+; MM32R3-NEXT:    c.ule.d $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -447,10 +441,9 @@ entry:<br class="">define double @tst_select_fcmp_oge_double(double %x, double %y) {<br class="">; M2-LABEL: tst_select_fcmp_oge_double:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.d $f0, $f12<br class="">-; M2-NEXT:    c.ult.d $f0, $f14<br class="">+; M2-NEXT:    c.ult.d $f12, $f14<br class="">; M2-NEXT:    bc1f $BB5_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.d $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.d $f0, $f14<br class="">; M2-NEXT:  $BB5_2: # %entry<br class="">@@ -460,14 +453,14 @@ define double @tst_select_fcmp_oge_doubl<br class="">; CMOV32R1-LABEL: tst_select_fcmp_oge_double:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ult.d $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ult.d $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_oge_double:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ult.d $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ult.d $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -481,10 +474,9 @@ define double @tst_select_fcmp_oge_doubl<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_oge_double:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.d $f0, $f12<br class="">-; M3-NEXT:    c.ult.d $f0, $f13<br class="">+; M3-NEXT:    c.ult.d $f12, $f13<br class="">; M3-NEXT:    bc1f .LBB5_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.d $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.d $f0, $f13<br class="">; M3-NEXT:  .LBB5_2: # %entry<br class="">@@ -494,7 +486,7 @@ define double @tst_select_fcmp_oge_doubl<br class="">; CMOV64-LABEL: tst_select_fcmp_oge_double:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.d $f0, $f13<br class="">-; CMOV64-NEXT:    c.ult.d $f12, $f0<br class="">+; CMOV64-NEXT:    c.ult.d $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -509,7 +501,7 @@ define double @tst_select_fcmp_oge_doubl<br class="">; MM32R3-LABEL: tst_select_fcmp_oge_double:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.d $f0, $f14<br class="">-; MM32R3-NEXT:    c.ult.d $f12, $f0<br class="">+; MM32R3-NEXT:    c.ult.d $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -529,10 +521,9 @@ entry:<br class="">define double @tst_select_fcmp_oeq_double(double %x, double %y) {<br class="">; M2-LABEL: tst_select_fcmp_oeq_double:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.d $f0, $f12<br class="">-; M2-NEXT:    c.eq.d $f0, $f14<br class="">+; M2-NEXT:    c.eq.d $f12, $f14<br class="">; M2-NEXT:    bc1t $BB6_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.d $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.d $f0, $f14<br class="">; M2-NEXT:  $BB6_2: # %entry<br class="">@@ -542,14 +533,14 @@ define double @tst_select_fcmp_oeq_doubl<br class="">; CMOV32R1-LABEL: tst_select_fcmp_oeq_double:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.eq.d $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.eq.d $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_oeq_double:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.eq.d $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.eq.d $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -563,10 +554,9 @@ define double @tst_select_fcmp_oeq_doubl<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_oeq_double:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.d $f0, $f12<br class="">-; M3-NEXT:    c.eq.d $f0, $f13<br class="">+; M3-NEXT:    c.eq.d $f12, $f13<br class="">; M3-NEXT:    bc1t .LBB6_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.d $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.d $f0, $f13<br class="">; M3-NEXT:  .LBB6_2: # %entry<br class="">@@ -576,7 +566,7 @@ define double @tst_select_fcmp_oeq_doubl<br class="">; CMOV64-LABEL: tst_select_fcmp_oeq_double:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.d $f0, $f13<br class="">-; CMOV64-NEXT:    c.eq.d $f12, $f0<br class="">+; CMOV64-NEXT:    c.eq.d $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -591,7 +581,7 @@ define double @tst_select_fcmp_oeq_doubl<br class="">; MM32R3-LABEL: tst_select_fcmp_oeq_double:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.d $f0, $f14<br class="">-; MM32R3-NEXT:    c.eq.d $f12, $f0<br class="">+; MM32R3-NEXT:    c.eq.d $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movt.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -611,10 +601,9 @@ entry:<br class="">define double @tst_select_fcmp_one_double(double %x, double %y) {<br class="">; M2-LABEL: tst_select_fcmp_one_double:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.d $f0, $f12<br class="">-; M2-NEXT:    c.ueq.d $f0, $f14<br class="">+; M2-NEXT:    c.ueq.d $f12, $f14<br class="">; M2-NEXT:    bc1f $BB7_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.d $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.d $f0, $f14<br class="">; M2-NEXT:  $BB7_2: # %entry<br class="">@@ -624,14 +613,14 @@ define double @tst_select_fcmp_one_doubl<br class="">; CMOV32R1-LABEL: tst_select_fcmp_one_double:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ueq.d $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ueq.d $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_one_double:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.d $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ueq.d $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ueq.d $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -646,10 +635,9 @@ define double @tst_select_fcmp_one_doubl<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_one_double:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.d $f0, $f12<br class="">-; M3-NEXT:    c.ueq.d $f0, $f13<br class="">+; M3-NEXT:    c.ueq.d $f12, $f13<br class="">; M3-NEXT:    bc1f .LBB7_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.d $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.d $f0, $f13<br class="">; M3-NEXT:  .LBB7_2: # %entry<br class="">@@ -659,7 +647,7 @@ define double @tst_select_fcmp_one_doubl<br class="">; CMOV64-LABEL: tst_select_fcmp_one_double:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.d $f0, $f13<br class="">-; CMOV64-NEXT:    c.ueq.d $f12, $f0<br class="">+; CMOV64-NEXT:    c.ueq.d $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class="">@@ -675,7 +663,7 @@ define double @tst_select_fcmp_one_doubl<br class="">; MM32R3-LABEL: tst_select_fcmp_one_double:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.d $f0, $f14<br class="">-; MM32R3-NEXT:    c.ueq.d $f12, $f0<br class="">+; MM32R3-NEXT:    c.ueq.d $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movf.d $f0, $f12, $fcc0<br class="">;<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/llvm-ir/select-flt.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/select-flt.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/select-flt.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/llvm-ir/select-flt.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/llvm-ir/select-flt.ll Tue Feb 27 08:59:10 2018<br class="">@@ -188,10 +188,9 @@ entry:<br class="">define float @tst_select_fcmp_olt_float(float %x, float %y) {<br class="">; M2-LABEL: tst_select_fcmp_olt_float:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.s $f0, $f12<br class="">-; M2-NEXT:    c.olt.s $f0, $f14<br class="">+; M2-NEXT:    c.olt.s $f12, $f14<br class="">; M2-NEXT:    bc1t $BB2_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.s $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.s $f0, $f14<br class="">; M2-NEXT:  $BB2_2: # %entry<br class="">@@ -201,14 +200,14 @@ define float @tst_select_fcmp_olt_float(<br class="">; CMOV32R1-LABEL: tst_select_fcmp_olt_float:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.olt.s $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.olt.s $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_olt_float:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.olt.s $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.olt.s $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -220,10 +219,9 @@ define float @tst_select_fcmp_olt_float(<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_olt_float:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.s $f0, $f12<br class="">-; M3-NEXT:    c.olt.s $f0, $f13<br class="">+; M3-NEXT:    c.olt.s $f12, $f13<br class="">; M3-NEXT:    bc1t .LBB2_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.s $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.s $f0, $f13<br class="">; M3-NEXT:  .LBB2_2: # %entry<br class="">@@ -233,7 +231,7 @@ define float @tst_select_fcmp_olt_float(<br class="">; CMOV64-LABEL: tst_select_fcmp_olt_float:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.s $f0, $f13<br class="">-; CMOV64-NEXT:    c.olt.s $f12, $f0<br class="">+; CMOV64-NEXT:    c.olt.s $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -246,7 +244,7 @@ define float @tst_select_fcmp_olt_float(<br class="">; MM32R3-LABEL: tst_select_fcmp_olt_float:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.s $f0, $f14<br class="">-; MM32R3-NEXT:    c.olt.s $f12, $f0<br class="">+; MM32R3-NEXT:    c.olt.s $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -264,10 +262,9 @@ entry:<br class="">define float @tst_select_fcmp_ole_float(float %x, float %y) {<br class="">; M2-LABEL: tst_select_fcmp_ole_float:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.s $f0, $f12<br class="">-; M2-NEXT:    c.ole.s $f0, $f14<br class="">+; M2-NEXT:    c.ole.s $f12, $f14<br class="">; M2-NEXT:    bc1t $BB3_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.s $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.s $f0, $f14<br class="">; M2-NEXT:  $BB3_2: # %entry<br class="">@@ -277,14 +274,14 @@ define float @tst_select_fcmp_ole_float(<br class="">; CMOV32R1-LABEL: tst_select_fcmp_ole_float:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ole.s $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ole.s $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_ole_float:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ole.s $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ole.s $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -296,10 +293,9 @@ define float @tst_select_fcmp_ole_float(<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_ole_float:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.s $f0, $f12<br class="">-; M3-NEXT:    c.ole.s $f0, $f13<br class="">+; M3-NEXT:    c.ole.s $f12, $f13<br class="">; M3-NEXT:    bc1t .LBB3_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.s $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.s $f0, $f13<br class="">; M3-NEXT:  .LBB3_2: # %entry<br class="">@@ -309,7 +305,7 @@ define float @tst_select_fcmp_ole_float(<br class="">; CMOV64-LABEL: tst_select_fcmp_ole_float:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.s $f0, $f13<br class="">-; CMOV64-NEXT:    c.ole.s $f12, $f0<br class="">+; CMOV64-NEXT:    c.ole.s $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -322,7 +318,7 @@ define float @tst_select_fcmp_ole_float(<br class="">; MM32R3-LABEL: tst_select_fcmp_ole_float:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.s $f0, $f14<br class="">-; MM32R3-NEXT:    c.ole.s $f12, $f0<br class="">+; MM32R3-NEXT:    c.ole.s $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -340,10 +336,9 @@ entry:<br class="">define float @tst_select_fcmp_ogt_float(float %x, float %y) {<br class="">; M2-LABEL: tst_select_fcmp_ogt_float:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.s $f0, $f12<br class="">-; M2-NEXT:    c.ule.s $f0, $f14<br class="">+; M2-NEXT:    c.ule.s $f12, $f14<br class="">; M2-NEXT:    bc1f $BB4_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.s $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.s $f0, $f14<br class="">; M2-NEXT:  $BB4_2: # %entry<br class="">@@ -353,14 +348,14 @@ define float @tst_select_fcmp_ogt_float(<br class="">; CMOV32R1-LABEL: tst_select_fcmp_ogt_float:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ule.s $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ule.s $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_ogt_float:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ule.s $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ule.s $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -372,10 +367,9 @@ define float @tst_select_fcmp_ogt_float(<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_ogt_float:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.s $f0, $f12<br class="">-; M3-NEXT:    c.ule.s $f0, $f13<br class="">+; M3-NEXT:    c.ule.s $f12, $f13<br class="">; M3-NEXT:    bc1f .LBB4_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.s $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.s $f0, $f13<br class="">; M3-NEXT:  .LBB4_2: # %entry<br class="">@@ -385,7 +379,7 @@ define float @tst_select_fcmp_ogt_float(<br class="">; CMOV64-LABEL: tst_select_fcmp_ogt_float:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.s $f0, $f13<br class="">-; CMOV64-NEXT:    c.ule.s $f12, $f0<br class="">+; CMOV64-NEXT:    c.ule.s $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -398,7 +392,7 @@ define float @tst_select_fcmp_ogt_float(<br class="">; MM32R3-LABEL: tst_select_fcmp_ogt_float:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.s $f0, $f14<br class="">-; MM32R3-NEXT:    c.ule.s $f12, $f0<br class="">+; MM32R3-NEXT:    c.ule.s $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -416,10 +410,9 @@ entry:<br class="">define float @tst_select_fcmp_oge_float(float %x, float %y) {<br class="">; M2-LABEL: tst_select_fcmp_oge_float:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.s $f0, $f12<br class="">-; M2-NEXT:    c.ult.s $f0, $f14<br class="">+; M2-NEXT:    c.ult.s $f12, $f14<br class="">; M2-NEXT:    bc1f $BB5_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.s $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.s $f0, $f14<br class="">; M2-NEXT:  $BB5_2: # %entry<br class="">@@ -429,14 +422,14 @@ define float @tst_select_fcmp_oge_float(<br class="">; CMOV32R1-LABEL: tst_select_fcmp_oge_float:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ult.s $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ult.s $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_oge_float:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ult.s $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ult.s $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -448,10 +441,9 @@ define float @tst_select_fcmp_oge_float(<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_oge_float:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.s $f0, $f12<br class="">-; M3-NEXT:    c.ult.s $f0, $f13<br class="">+; M3-NEXT:    c.ult.s $f12, $f13<br class="">; M3-NEXT:    bc1f .LBB5_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.s $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.s $f0, $f13<br class="">; M3-NEXT:  .LBB5_2: # %entry<br class="">@@ -461,7 +453,7 @@ define float @tst_select_fcmp_oge_float(<br class="">; CMOV64-LABEL: tst_select_fcmp_oge_float:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.s $f0, $f13<br class="">-; CMOV64-NEXT:    c.ult.s $f12, $f0<br class="">+; CMOV64-NEXT:    c.ult.s $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -474,7 +466,7 @@ define float @tst_select_fcmp_oge_float(<br class="">; MM32R3-LABEL: tst_select_fcmp_oge_float:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.s $f0, $f14<br class="">-; MM32R3-NEXT:    c.ult.s $f12, $f0<br class="">+; MM32R3-NEXT:    c.ult.s $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -492,10 +484,9 @@ entry:<br class="">define float @tst_select_fcmp_oeq_float(float %x, float %y) {<br class="">; M2-LABEL: tst_select_fcmp_oeq_float:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.s $f0, $f12<br class="">-; M2-NEXT:    c.eq.s $f0, $f14<br class="">+; M2-NEXT:    c.eq.s $f12, $f14<br class="">; M2-NEXT:    bc1t $BB6_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.s $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.s $f0, $f14<br class="">; M2-NEXT:  $BB6_2: # %entry<br class="">@@ -505,14 +496,14 @@ define float @tst_select_fcmp_oeq_float(<br class="">; CMOV32R1-LABEL: tst_select_fcmp_oeq_float:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.eq.s $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.eq.s $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_oeq_float:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.eq.s $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.eq.s $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -524,10 +515,9 @@ define float @tst_select_fcmp_oeq_float(<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_oeq_float:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.s $f0, $f12<br class="">-; M3-NEXT:    c.eq.s $f0, $f13<br class="">+; M3-NEXT:    c.eq.s $f12, $f13<br class="">; M3-NEXT:    bc1t .LBB6_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.s $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.s $f0, $f13<br class="">; M3-NEXT:  .LBB6_2: # %entry<br class="">@@ -537,7 +527,7 @@ define float @tst_select_fcmp_oeq_float(<br class="">; CMOV64-LABEL: tst_select_fcmp_oeq_float:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.s $f0, $f13<br class="">-; CMOV64-NEXT:    c.eq.s $f12, $f0<br class="">+; CMOV64-NEXT:    c.eq.s $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -550,7 +540,7 @@ define float @tst_select_fcmp_oeq_float(<br class="">; MM32R3-LABEL: tst_select_fcmp_oeq_float:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.s $f0, $f14<br class="">-; MM32R3-NEXT:    c.eq.s $f12, $f0<br class="">+; MM32R3-NEXT:    c.eq.s $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movt.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -568,10 +558,9 @@ entry:<br class="">define float @tst_select_fcmp_one_float(float %x, float %y) {<br class="">; M2-LABEL: tst_select_fcmp_one_float:<br class="">; M2:       # %bb.0: # %entry<br class="">-; M2-NEXT:    mov.s $f0, $f12<br class="">-; M2-NEXT:    c.ueq.s $f0, $f14<br class="">+; M2-NEXT:    c.ueq.s $f12, $f14<br class="">; M2-NEXT:    bc1f $BB7_2<br class="">-; M2-NEXT:    nop<br class="">+; M2-NEXT:    mov.s $f0, $f12<br class="">; M2-NEXT:  # %bb.1: # %entry<br class="">; M2-NEXT:    mov.s $f0, $f14<br class="">; M2-NEXT:  $BB7_2: # %entry<br class="">@@ -581,14 +570,14 @@ define float @tst_select_fcmp_one_float(<br class="">; CMOV32R1-LABEL: tst_select_fcmp_one_float:<br class="">; CMOV32R1:       # %bb.0: # %entry<br class="">; CMOV32R1-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R1-NEXT:    c.ueq.s $f12, $f0<br class="">+; CMOV32R1-NEXT:    c.ueq.s $f12, $f14<br class="">; CMOV32R1-NEXT:    jr $ra<br class="">; CMOV32R1-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">; CMOV32R2-LABEL: tst_select_fcmp_one_float:<br class="">; CMOV32R2:       # %bb.0: # %entry<br class="">; CMOV32R2-NEXT:    mov.s $f0, $f14<br class="">-; CMOV32R2-NEXT:    c.ueq.s $f12, $f0<br class="">+; CMOV32R2-NEXT:    c.ueq.s $f12, $f14<br class="">; CMOV32R2-NEXT:    jr $ra<br class="">; CMOV32R2-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -603,10 +592,9 @@ define float @tst_select_fcmp_one_float(<br class="">;<br class="">; M3-LABEL: tst_select_fcmp_one_float:<br class="">; M3:       # %bb.0: # %entry<br class="">-; M3-NEXT:    mov.s $f0, $f12<br class="">-; M3-NEXT:    c.ueq.s $f0, $f13<br class="">+; M3-NEXT:    c.ueq.s $f12, $f13<br class="">; M3-NEXT:    bc1f .LBB7_2<br class="">-; M3-NEXT:    nop<br class="">+; M3-NEXT:    mov.s $f0, $f12<br class="">; M3-NEXT:  # %bb.1: # %entry<br class="">; M3-NEXT:    mov.s $f0, $f13<br class="">; M3-NEXT:  .LBB7_2: # %entry<br class="">@@ -616,7 +604,7 @@ define float @tst_select_fcmp_one_float(<br class="">; CMOV64-LABEL: tst_select_fcmp_one_float:<br class="">; CMOV64:       # %bb.0: # %entry<br class="">; CMOV64-NEXT:    mov.s $f0, $f13<br class="">-; CMOV64-NEXT:    c.ueq.s $f12, $f0<br class="">+; CMOV64-NEXT:    c.ueq.s $f12, $f13<br class="">; CMOV64-NEXT:    jr $ra<br class="">; CMOV64-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class="">@@ -632,7 +620,7 @@ define float @tst_select_fcmp_one_float(<br class="">; MM32R3-LABEL: tst_select_fcmp_one_float:<br class="">; MM32R3:       # %bb.0: # %entry<br class="">; MM32R3-NEXT:    mov.s $f0, $f14<br class="">-; MM32R3-NEXT:    c.ueq.s $f12, $f0<br class="">+; MM32R3-NEXT:    c.ueq.s $f12, $f14<br class="">; MM32R3-NEXT:    jr $ra<br class="">; MM32R3-NEXT:    movf.s $f0, $f12, $fcc0<br class="">;<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/llvm-ir/shl.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/shl.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/shl.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/llvm-ir/shl.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/llvm-ir/shl.ll Tue Feb 27 08:59:10 2018<br class="">@@ -857,7 +857,7 @@ define signext i128 @shl_i128(i128 signe<br class="">; MMR3-NEXT:    sw $5, 32($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    move $1, $4<br class="">; MMR3-NEXT:    lw $16, 76($sp)<br class="">-; MMR3-NEXT:    sllv $2, $1, $16<br class="">+; MMR3-NEXT:    sllv $2, $4, $16<br class="">; MMR3-NEXT:    not16 $4, $16<br class="">; MMR3-NEXT:    sw $4, 24($sp) # 4-byte Folded Spill<br class="">; MMR3-NEXT:    srl16 $3, $5, 1<br class="">@@ -945,7 +945,7 @@ define signext i128 @shl_i128(i128 signe<br class="">; MMR6-NEXT:    .cfi_offset 16, -8<br class="">; MMR6-NEXT:    move $11, $4<br class="">; MMR6-NEXT:    lw $3, 44($sp)<br class="">-; MMR6-NEXT:    sllv $1, $11, $3<br class="">+; MMR6-NEXT:    sllv $1, $4, $3<br class="">; MMR6-NEXT:    not16 $2, $3<br class="">; MMR6-NEXT:    sw $2, 4($sp) # 4-byte Folded Spill<br class="">; MMR6-NEXT:    srl16 $16, $5, 1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/llvm-ir/sub.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/sub.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/llvm-ir/sub.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/llvm-ir/sub.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/llvm-ir/sub.ll Tue Feb 27 08:59:10 2018<br class="">@@ -163,7 +163,7 @@ entry:<br class="">; MMR3: subu16   $5, $[[T19]], $[[T20]]<br class=""><br class="">; MMR6: move     $[[T0:[0-9]+]], $7<br class="">-; MMR6: sw       $[[T0]], 8($sp)<br class="">+; MMR6: sw       $7, 8($sp)<br class="">; MMR6: move     $[[T1:[0-9]+]], $5<br class="">; MMR6: sw       $4, 12($sp)<br class="">; MMR6: lw       $[[T2:[0-9]+]], 48($sp)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Mips/o32_cc_byval.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/o32_cc_byval.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/o32_cc_byval.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Mips/o32_cc_byval.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Mips/o32_cc_byval.ll Tue Feb 27 08:59:10 2018<br class="">@@ -193,7 +193,7 @@ define void @f4(float %f, %struct.S3* no<br class="">; CHECK-NEXT:    move $4, $7<br class="">; CHECK-NEXT:    sw $5, 52($sp)<br class="">; CHECK-NEXT:    sw $6, 56($sp)<br class="">-; CHECK-NEXT:    sw $4, 60($sp)<br class="">+; CHECK-NEXT:    sw $7, 60($sp)<br class="">; CHECK-NEXT:    lw $1, 80($sp)<br class="">; CHECK-NEXT:    lb $2, 52($sp)<br class="">; CHECK-NEXT:    addiu $3, $zero, 4<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/PowerPC/MCSE-caller-preserved-reg.ll Tue Feb 27 08:59:10 2018<br class="">@@ -20,9 +20,9 @@ define noalias i8* @_ZN2CC3funEv(%class.<br class="">; CHECK-NEXT:    .cfi_def_cfa_offset 48<br class="">; CHECK-NEXT:    .cfi_offset lr, 16<br class="">; CHECK-NEXT:    .cfi_offset r30, -16<br class="">+; CHECK-NEXT:    ld 12, 0(3)<br class="">; CHECK-NEXT:    std 30, 32(1)<br class="">; CHECK-NEXT:    mr 30, 3<br class="">-; CHECK-NEXT:    ld 12, 0(30)<br class="">; CHECK-NEXT:    std 2, 24(1)<br class="">; CHECK-NEXT:    mtctr 12<br class="">; CHECK-NEXT:    bctrl<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/PowerPC/fma-mutate.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/fma-mutate.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/fma-mutate.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/PowerPC/fma-mutate.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/PowerPC/fma-mutate.ll Tue Feb 27 08:59:10 2018<br class="">@@ -14,7 +14,8 @@ define double @foo3(double %a) nounwind<br class="">  ret double %r<br class=""><br class="">; CHECK: @foo3<br class="">-; CHECK: xsnmsubadp [[REG:[0-9]+]], {{[0-9]+}}, [[REG]]<br class="">+; CHECK: fmr [[REG:[0-9]+]], [[REG2:[0-9]+]]<br class="">+; CHECK: xsnmsubadp [[REG]], {{[0-9]+}}, [[REG2]]<br class="">; CHECK: xsmaddmdp<br class="">; CHECK: xsmaddadp<br class="">}<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/PowerPC/gpr-vsr-spill.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/gpr-vsr-spill.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/gpr-vsr-spill.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/PowerPC/gpr-vsr-spill.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/PowerPC/gpr-vsr-spill.ll Tue Feb 27 08:59:10 2018<br class="">@@ -16,8 +16,8 @@ if.end:<br class="">  ret i32 %e.0<br class="">; CHECK: @foo<br class="">; CHECK: mr [[NEWREG:[0-9]+]], 3<br class="">+; CHECK: mr [[REG1:[0-9]+]], 4<br class="">; CHECK: mtvsrd [[NEWREG2:[0-9]+]], 4<br class="">-; CHECK: mffprd [[REG1:[0-9]+]], [[NEWREG2]]<br class="">; CHECK: add {{[0-9]+}}, [[NEWREG]], [[REG1]]<br class="">; CHECK: mffprd [[REG2:[0-9]+]], [[NEWREG2]]<br class="">; CHECK: add {{[0-9]+}}, [[REG2]], [[NEWREG]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/PowerPC/licm-remat.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/licm-remat.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/licm-remat.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/PowerPC/licm-remat.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/PowerPC/licm-remat.ll Tue Feb 27 08:59:10 2018<br class="">@@ -20,8 +20,8 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(<br class="">define linkonce_odr void @ZN6snappyDecompressor_(%"class.snappy::SnappyDecompressor"* %this, %"class.snappy::SnappyIOVecWriter"* %writer) {<br class="">; CHECK-LABEL: ZN6snappyDecompressor_:<br class="">; CHECK:       # %bb.0: # %entry<br class="">-; CHECK:       addis 3, 2, _ZN6snappy8internalL8wordmaskE@toc@ha<br class="">-; CHECK-DAG:   addi 25, 3, _ZN6snappy8internalL8wordmaskE@toc@l<br class="">+; CHECK:       addis 23, 2, _ZN6snappy8internalL8wordmaskE@toc@ha<br class="">+; CHECK-DAG:   addi 25, 23, _ZN6snappy8internalL8wordmaskE@toc@l<br class="">; CHECK-DAG:   addis 5, 2, _ZN6snappy8internalL10char_tableE@toc@ha<br class="">; CHECK-DAG:   addi 24, 5, _ZN6snappy8internalL10char_tableE@toc@l<br class="">; CHECK:       b .LBB0_2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/PowerPC/opt-li-add-to-addi.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/opt-li-add-to-addi.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/opt-li-add-to-addi.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/PowerPC/opt-li-add-to-addi.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/PowerPC/opt-li-add-to-addi.ll Tue Feb 27 08:59:10 2018<br class="">@@ -3,7 +3,7 @@<br class=""><br class="">define i64 @testOptimizeLiAddToAddi(i64 %a) {<br class="">; CHECK-LABEL: testOptimizeLiAddToAddi:<br class="">-; CHECK:    addi 3, 30, 2444<br class="">+; CHECK:    addi 3, 3, 2444<br class="">; CHECK:    bl callv<br class="">; CHECK:    addi 3, 30, 234<br class="">; CHECK:    bl call<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/PowerPC/tail-dup-layout.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/tail-dup-layout.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/tail-dup-layout.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/PowerPC/tail-dup-layout.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/PowerPC/tail-dup-layout.ll Tue Feb 27 08:59:10 2018<br class="">@@ -25,7 +25,7 @@ target triple = "powerpc64le-grtev4-linu<br class="">;CHECK-LABEL: straight_test:<br class="">; test1 may have been merged with entry<br class="">;CHECK: mr [[TAGREG:[0-9]+]], 3<br class="">-;CHECK: andi. {{[0-9]+}}, [[TAGREG]], 1<br class="">+;CHECK: andi. {{[0-9]+}}, [[TAGREG:[0-9]+]], 1<br class="">;CHECK-NEXT: bc 12, 1, .[[OPT1LABEL:[_0-9A-Za-z]+]]<br class="">;CHECK-NEXT: # %test2<br class="">;CHECK-NEXT: rlwinm. {{[0-9]+}}, [[TAGREG]], 0, 30, 30<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/SPARC/32abi.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/32abi.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/32abi.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/SPARC/32abi.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/SPARC/32abi.ll Tue Feb 27 08:59:10 2018<br class="">@@ -148,9 +148,9 @@ define double @floatarg(double %a0,   ;<br class="">; HARD-NEXT: std %o0, [%sp+96]<br class="">; HARD-NEXT: st %o1, [%sp+92]<br class="">; HARD-NEXT: mov %i0, %o2<br class="">-; HARD-NEXT: mov %o0, %o3<br class="">+; HARD-NEXT: mov %i1, %o3<br class="">; HARD-NEXT: mov %o1, %o4<br class="">-; HARD-NEXT: mov %o0, %o5<br class="">+; HARD-NEXT: mov %i1, %o5<br class="">; HARD-NEXT: call floatarg<br class="">; HARD: std %f0, [%i4]<br class="">; SOFT: st %i0, [%sp+104]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/SPARC/atomics.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/atomics.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/atomics.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/SPARC/atomics.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/SPARC/atomics.ll Tue Feb 27 08:59:10 2018<br class="">@@ -235,8 +235,9 @@ entry:<br class=""><br class="">; CHECK-LABEL: test_load_add_i32<br class="">; CHECK: membar<br class="">-; CHECK: add [[V:%[gilo][0-7]]], %o1, [[U:%[gilo][0-7]]]<br class="">-; CHECK: cas [%o0], [[V]], [[U]]<br class="">+; CHECK: mov [[U:%[gilo][0-7]]], [[V:%[gilo][0-7]]]<br class="">+; CHECK: add [[U:%[gilo][0-7]]], %o1, [[V2:%[gilo][0-7]]]<br class="">+; CHECK: cas [%o0], [[V]], [[V2]]<br class="">; CHECK: membar<br class="">define zeroext i32 @test_load_add_i32(i32* %p, i32 zeroext %v) {<br class="">entry:<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/SystemZ/vec-sub-01.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SystemZ/vec-sub-01.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SystemZ/vec-sub-01.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/SystemZ/vec-sub-01.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/SystemZ/vec-sub-01.ll Tue Feb 27 08:59:10 2018<br class="">@@ -46,12 +46,12 @@ define <4 x float> @f5(<4 x float> %val1<br class="">; CHECK-LABEL: f5:<br class="">; CHECK-DAG: vlr %v[[A1:[0-5]]], %v24<br class="">; CHECK-DAG: vlr %v[[A2:[0-5]]], %v26<br class="">-; CHECK-DAG: vrepf %v[[B1:[0-5]]], %v[[A1]], 1<br class="">-; CHECK-DAG: vrepf %v[[B2:[0-5]]], %v[[A2]], 1<br class="">-; CHECK-DAG: vrepf %v[[C1:[0-5]]], %v[[A1]], 2<br class="">-; CHECK-DAG: vrepf %v[[C2:[0-5]]], %v[[A2]], 2<br class="">-; CHECK-DAG: vrepf %v[[D1:[0-5]]], %v[[A1]], 3<br class="">-; CHECK-DAG: vrepf %v[[D2:[0-5]]], %v[[A2]], 3<br class="">+; CHECK-DAG: vrepf %v[[B1:[0-5]]], %v24, 1<br class="">+; CHECK-DAG: vrepf %v[[B2:[0-5]]], %v26, 1<br class="">+; CHECK-DAG: vrepf %v[[C1:[0-5]]], %v24, 2<br class="">+; CHECK-DAG: vrepf %v[[C2:[0-5]]], %v26, 2<br class="">+; CHECK-DAG: vrepf %v[[D1:[0-5]]], %v24, 3<br class="">+; CHECK-DAG: vrepf %v[[D2:[0-5]]], %v26, 3<br class="">; CHECK-DAG: sebr %f[[A1]], %f[[A2]]<br class="">; CHECK-DAG: sebr %f[[B1]], %f[[B2]]<br class="">; CHECK-DAG: sebr %f[[C1]], %f[[C2]]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Thumb/pr35836.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb/pr35836.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb/pr35836.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Thumb/pr35836.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Thumb/pr35836.ll Tue Feb 27 08:59:10 2018<br class="">@@ -37,13 +37,13 @@ while.body:<br class="">; CHECK: adds<span class="apple-tab-span"> <span class="Apple-converted-space"> </span></span>r3, r0, r1<br class="">; CHECK: push<span class="apple-tab-span"> <span class="Apple-converted-space"> </span></span>{r5}<br class="">; CHECK: pop<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>{r1}<br class="">-; CHECK: adcs<span class="apple-tab-span"><span class="Apple-converted-space"> </span></span>r1, r1<br class="">+; CHECK: adcs<span class="apple-tab-span"><span class="Apple-converted-space"> </span></span>r1, r5<br class="">; CHECK: ldr<span class="apple-tab-span">     <span class="Apple-converted-space"> </span></span>r0, [sp, #12]           @ 4-byte Reload<br class="">; CHECK: ldr<span class="apple-tab-span">     <span class="Apple-converted-space"> </span></span>r2, [sp, #8]            @ 4-byte Reload<br class="">; CHECK: adds<span class="apple-tab-span"> <span class="Apple-converted-space"> </span></span>r2, r0, r2<br class="">; CHECK: push<span class="apple-tab-span"> <span class="Apple-converted-space"> </span></span>{r5}<br class="">; CHECK: pop<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>{r4}<br class="">-; CHECK: adcs<span class="apple-tab-span"><span class="Apple-converted-space"> </span></span>r4, r4<br class="">+; CHECK: adcs<span class="apple-tab-span"><span class="Apple-converted-space"> </span></span>r4, r5<br class="">; CHECK: adds<span class="apple-tab-span"> <span class="Apple-converted-space"> </span></span>r0, r2, r5<br class="">; CHECK: push<span class="apple-tab-span"> <span class="Apple-converted-space"> </span></span>{r3}<br class="">; CHECK: pop<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>{r0}<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/Thumb/thumb-shrink-wrapping.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb/thumb-shrink-wrapping.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb/thumb-shrink-wrapping.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/Thumb/thumb-shrink-wrapping.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/Thumb/thumb-shrink-wrapping.ll Tue Feb 27 08:59:10 2018<br class="">@@ -598,7 +598,7 @@ declare void @abort() #0<br class="">define i32 @b_to_bx(i32 %value) {<br class="">; CHECK-LABEL: b_to_bx:<br class="">; DISABLE: push {r7, lr}<br class="">-; CHECK: cmp r1, #49<br class="">+; CHECK: cmp r0, #49<br class="">; CHECK-NEXT: bgt [[ELSE_LABEL:LBB[0-9_]+]]<br class="">; ENABLE: push {r7, lr}<br class=""><br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll Tue Feb 27 08:59:10 2018<br class="">@@ -7,7 +7,7 @@ define i32 @f(i32 %a, i32 %b) {<br class="">; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax<br class="">; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx<br class="">; CHECK-NEXT:    movl %ecx, %edx<br class="">-; CHECK-NEXT:    imull %edx, %edx<br class="">+; CHECK-NEXT:    imull %ecx, %edx<br class="">; CHECK-NEXT:    imull %eax, %ecx<br class="">; CHECK-NEXT:    imull %eax, %eax<br class="">; CHECK-NEXT:    addl %edx, %eax<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/arg-copy-elide.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/arg-copy-elide.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/arg-copy-elide.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/arg-copy-elide.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/arg-copy-elide.ll Tue Feb 27 08:59:10 2018<br class="">@@ -106,7 +106,7 @@ entry:<br class="">; CHECK-DAG: movl %edx, %[[r1:[^ ]*]]<br class="">; CHECK-DAG: movl 8(%ebp), %[[r2:[^ ]*]]<br class="">; CHECK-DAG: movl %[[r2]], 4(%esp)<br class="">-; CHECK-DAG: movl %[[r1]], (%esp)<br class="">+; CHECK-DAG: movl %edx, (%esp)<br class="">; CHECK: movl %esp, %[[reg:[^ ]*]]<br class="">; CHECK: pushl %[[reg]]<br class="">; CHECK: calll _addrof_i64<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/avg.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avg.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avg.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/avg.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/avg.ll Tue Feb 27 08:59:10 2018<br class="">@@ -2222,7 +2222,7 @@ define void @not_avg_v16i8_wide_constant<br class="">; SSE2-NEXT:    movq %rax, %xmm11<br class="">; SSE2-NEXT:    movq -{{[0-9]+}}(%rsp), %rax # 8-byte Reload<br class="">; SSE2-NEXT:    movq %rbp, %rcx<br class="">-; SSE2-NEXT:    shrdq $1, %rcx, %rax<br class="">+; SSE2-NEXT:    shrdq $1, %rbp, %rax<br class="">; SSE2-NEXT:    pslldq {{.*#+}} xmm13 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,xmm13[0,1,2]<br class="">; SSE2-NEXT:    punpcklqdq {{.*#+}} xmm15 = xmm15[0],xmm8[0]<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm0 = [255,255,255,255,255,255,255,255,255,255,255,255,255,0,255,255]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/avx-load-store.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx-load-store.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx-load-store.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/avx-load-store.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/avx-load-store.ll Tue Feb 27 08:59:10 2018<br class="">@@ -12,11 +12,11 @@ define void @test_256_load(double* nocap<br class="">; CHECK-NEXT:    movq %rdx, %r14<br class="">; CHECK-NEXT:    movq %rsi, %r15<br class="">; CHECK-NEXT:    movq %rdi, %rbx<br class="">-; CHECK-NEXT:    vmovaps (%rbx), %ymm0<br class="">+; CHECK-NEXT:    vmovaps (%rdi), %ymm0<br class="">; CHECK-NEXT:    vmovups %ymm0, {{[0-9]+}}(%rsp) # 32-byte Spill<br class="">-; CHECK-NEXT:    vmovaps (%r15), %ymm1<br class="">+; CHECK-NEXT:    vmovaps (%rsi), %ymm1<br class="">; CHECK-NEXT:    vmovups %ymm1, {{[0-9]+}}(%rsp) # 32-byte Spill<br class="">-; CHECK-NEXT:    vmovaps (%r14), %ymm2<br class="">+; CHECK-NEXT:    vmovaps (%rdx), %ymm2<br class="">; CHECK-NEXT:    vmovups %ymm2, (%rsp) # 32-byte Spill<br class="">; CHECK-NEXT:    callq dummy<br class="">; CHECK-NEXT:    vmovups {{[0-9]+}}(%rsp), %ymm0 # 32-byte Reload<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/avx512-bugfix-25270.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-bugfix-25270.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-bugfix-25270.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/avx512-bugfix-25270.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/avx512-bugfix-25270.ll Tue Feb 27 08:59:10 2018<br class="">@@ -9,10 +9,10 @@ define void @bar__512(<16 x i32>* %var)<br class="">; CHECK-NEXT:    pushq %rbx<br class="">; CHECK-NEXT:    subq $112, %rsp<br class="">; CHECK-NEXT:    movq %rdi, %rbx<br class="">-; CHECK-NEXT:    vmovups (%rbx), %zmm0<br class="">+; CHECK-NEXT:    vmovups (%rdi), %zmm0<br class="">; CHECK-NEXT:    vmovups %zmm0, (%rsp) ## 64-byte Spill<br class="">; CHECK-NEXT:    vbroadcastss {{.*}}(%rip), %zmm1<br class="">-; CHECK-NEXT:    vmovaps %zmm1, (%rbx)<br class="">+; CHECK-NEXT:    vmovaps %zmm1, (%rdi)<br class="">; CHECK-NEXT:    callq _Print__512<br class="">; CHECK-NEXT:    vmovups (%rsp), %zmm0 ## 64-byte Reload<br class="">; CHECK-NEXT:    callq _Print__512<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/avx512-calling-conv.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-calling-conv.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-calling-conv.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/avx512-calling-conv.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/avx512-calling-conv.ll Tue Feb 27 08:59:10 2018<br class="">@@ -355,7 +355,7 @@ define i32 @test12(i32 %a1, i32 %a2, i32<br class="">; KNL_X32-NEXT:    movl %edi, (%esp)<br class="">; KNL_X32-NEXT:    calll _test11<br class="">; KNL_X32-NEXT:    movl %eax, %ebx<br class="">-; KNL_X32-NEXT:    movzbl %bl, %eax<br class="">+; KNL_X32-NEXT:    movzbl %al, %eax<br class="">; KNL_X32-NEXT:    movl %eax, {{[0-9]+}}(%esp)<br class="">; KNL_X32-NEXT:    movl %esi, {{[0-9]+}}(%esp)<br class="">; KNL_X32-NEXT:    movl %edi, (%esp)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/avx512-intel-ocl.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-intel-ocl.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-intel-ocl.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/avx512-intel-ocl.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/avx512-intel-ocl.ll Tue Feb 27 08:59:10 2018<br class="">@@ -148,7 +148,7 @@ define <16 x float> @testf16_regs(<16 x<br class="">; X64-NEXT:    andq $-64, %rsp<br class="">; X64-NEXT:    subq $128, %rsp<br class="">; X64-NEXT:    vmovaps %zmm1, %zmm16<br class="">-; X64-NEXT:    vaddps %zmm16, %zmm0, %zmm0<br class="">+; X64-NEXT:    vaddps %zmm1, %zmm0, %zmm0<br class="">; X64-NEXT:    movq %rsp, %rdi<br class="">; X64-NEXT:    callq _func_float16_ptr<br class="">; X64-NEXT:    vaddps %zmm16, %zmm0, %zmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/avx512-regcall-NoMask.ll Tue Feb 27 08:59:10 2018<br class="">@@ -650,7 +650,7 @@ define x86_regcallcc <4 x i32> @test_Cal<br class="">; X32-NEXT:    subl $24, %esp<br class="">; X32-NEXT:    vmovups %xmm4, (%esp) # 16-byte Spill<br class="">; X32-NEXT:    vmovdqa %xmm0, %xmm4<br class="">-; X32-NEXT:    vmovdqa %xmm4, %xmm1<br class="">+; X32-NEXT:    vmovdqa %xmm0, %xmm1<br class="">; X32-NEXT:    calll _test_argRet128Vector<br class="">; X32-NEXT:    vmovdqa32 %xmm4, %xmm0 {%k1}<br class="">; X32-NEXT:    vmovups (%esp), %xmm4 # 16-byte Reload<br class="">@@ -668,7 +668,7 @@ define x86_regcallcc <4 x i32> @test_Cal<br class="">; WIN64-NEXT:    .seh_savexmm 8, 0<br class="">; WIN64-NEXT:    .seh_endprologue<br class="">; WIN64-NEXT:    vmovdqa %xmm0, %xmm8<br class="">-; WIN64-NEXT:    vmovdqa %xmm8, %xmm1<br class="">+; WIN64-NEXT:    vmovdqa %xmm0, %xmm1<br class="">; WIN64-NEXT:    callq test_argRet128Vector<br class="">; WIN64-NEXT:    vmovdqa32 %xmm8, %xmm0 {%k1}<br class="">; WIN64-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload<br class="">@@ -689,7 +689,7 @@ define x86_regcallcc <4 x i32> @test_Cal<br class="">; LINUXOSX64-NEXT:    .cfi_offset %rsp, -16<br class="">; LINUXOSX64-NEXT:    .cfi_offset %xmm8, -32<br class="">; LINUXOSX64-NEXT:    vmovdqa %xmm0, %xmm8<br class="">-; LINUXOSX64-NEXT:    vmovdqa %xmm8, %xmm1<br class="">+; LINUXOSX64-NEXT:    vmovdqa %xmm0, %xmm1<br class="">; LINUXOSX64-NEXT:    callq test_argRet128Vector<br class="">; LINUXOSX64-NEXT:    vmovdqa32 %xmm8, %xmm0 {%k1}<br class="">; LINUXOSX64-NEXT:    vmovaps (%rsp), %xmm8 # 16-byte Reload<br class="">@@ -908,12 +908,12 @@ define x86_regcallcc i32 @testi32_inp(i3<br class="">; X32-NEXT:    subl $20, %esp<br class="">; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edi, %esi<br class="">-; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">-; X32-NEXT:    movl %ebx, (%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, (%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, %edx<br class="">-; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    subl %ecx, %edx<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %edi<br class="">; X32-NEXT:    movl %edi, %ebp<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/buildvec-insertvec.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/buildvec-insertvec.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/buildvec-insertvec.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/buildvec-insertvec.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/buildvec-insertvec.ll Tue Feb 27 08:59:10 2018<br class="">@@ -38,7 +38,7 @@ define <4 x float> @test_negative_zero_1<br class="">; SSE2-LABEL: test_negative_zero_1:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE2-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; SSE2-NEXT:    movhlps {{.*#+}} xmm1 = xmm0[1],xmm1[1]<br class="">; SSE2-NEXT:    xorps %xmm2, %xmm2<br class="">; SSE2-NEXT:    movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]<br class="">; SSE2-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/combine-fcopysign.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/combine-fcopysign.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/combine-fcopysign.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/combine-fcopysign.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/combine-fcopysign.ll Tue Feb 27 08:59:10 2018<br class="">@@ -197,8 +197,8 @@ define <4 x double> @combine_vec_fcopysi<br class="">; SSE-NEXT:    cvtss2sd %xmm2, %xmm4<br class="">; SSE-NEXT:    movshdup {{.*#+}} xmm5 = xmm2[1,1,3,3]<br class="">; SSE-NEXT:    movaps %xmm2, %xmm6<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm6 = xmm6[1,1]<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1,2,3]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm6 = xmm2[1],xmm6[1]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1],xmm2[2,3]<br class="">; SSE-NEXT:    movaps {{.*#+}} xmm7<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">; SSE-NEXT:    andps %xmm7, %xmm2<br class="">@@ -213,7 +213,7 @@ define <4 x double> @combine_vec_fcopysi<br class="">; SSE-NEXT:    orps %xmm0, %xmm4<br class="">; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm4[0]<br class="">; SSE-NEXT:    movaps %xmm1, %xmm0<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm0 = xmm1[1],xmm0[1]<br class="">; SSE-NEXT:    andps %xmm7, %xmm0<br class="">; SSE-NEXT:    cvtss2sd %xmm3, %xmm3<br class="">; SSE-NEXT:    andps %xmm8, %xmm3<br class="">@@ -260,7 +260,7 @@ define <4 x float> @combine_vec_fcopysig<br class="">; SSE-NEXT:    orps %xmm6, %xmm1<br class="">; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm1<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm3[1],xmm1[1]<br class="">; SSE-NEXT:    andps %xmm5, %xmm1<br class="">; SSE-NEXT:    xorps %xmm6, %xmm6<br class="">; SSE-NEXT:    cvtsd2ss %xmm2, %xmm6<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/combine-shl.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/combine-shl.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/combine-shl.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/combine-shl.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/combine-shl.ll Tue Feb 27 08:59:10 2018<br class="">@@ -188,7 +188,7 @@ define <8 x i32> @combine_vec_shl_ext_sh<br class="">; SSE-LABEL: combine_vec_shl_ext_shl0:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE-NEXT:    pmovzxwd {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero<br class="">+; SSE-NEXT:    pmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero<br class="">; SSE-NEXT:    punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]<br class="">; SSE-NEXT:    pslld $20, %xmm1<br class="">; SSE-NEXT:    pslld $20, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/complex-fastmath.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/complex-fastmath.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/complex-fastmath.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/complex-fastmath.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/complex-fastmath.ll Tue Feb 27 08:59:10 2018<br class="">@@ -14,7 +14,7 @@ define <2 x float> @complex_square_f32(<<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    addss %xmm2, %xmm2<br class="">+; SSE-NEXT:    addss %xmm0, %xmm2<br class="">; SSE-NEXT:    mulss %xmm1, %xmm2<br class="">; SSE-NEXT:    mulss %xmm0, %xmm0<br class="">; SSE-NEXT:    mulss %xmm1, %xmm1<br class="">@@ -58,9 +58,9 @@ define <2 x double> @complex_square_f64(<br class="">; SSE-LABEL: complex_square_f64:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm0[1],xmm1[1]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    addsd %xmm2, %xmm2<br class="">+; SSE-NEXT:    addsd %xmm0, %xmm2<br class="">; SSE-NEXT:    mulsd %xmm1, %xmm2<br class="">; SSE-NEXT:    mulsd %xmm0, %xmm0<br class="">; SSE-NEXT:    mulsd %xmm1, %xmm1<br class="">@@ -161,9 +161,9 @@ define <2 x double> @complex_mul_f64(<2<br class="">; SSE-LABEL: complex_mul_f64:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm2[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm0[1],xmm2[1]<br class="">; SSE-NEXT:    movaps %xmm1, %xmm3<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm3[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm1[1],xmm3[1]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm4<br class="">; SSE-NEXT:    mulsd %xmm0, %xmm4<br class="">; SSE-NEXT:    mulsd %xmm1, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/divide-by-constant.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/divide-by-constant.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/divide-by-constant.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/divide-by-constant.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/divide-by-constant.ll Tue Feb 27 08:59:10 2018<br class="">@@ -312,7 +312,7 @@ define i64 @PR23590(i64 %x) nounwind {<br class="">; X64:       # %bb.0: # %entry<br class="">; X64-NEXT:    movq %rdi, %rcx<br class="">; X64-NEXT:    movabsq $6120523590596543007, %rdx # imm = 0x54F077C718E7C21F<br class="">-; X64-NEXT:    movq %rcx, %rax<br class="">+; X64-NEXT:    movq %rdi, %rax<br class="">; X64-NEXT:    mulq %rdx<br class="">; X64-NEXT:    shrq $12, %rdx<br class="">; X64-NEXT:    imulq $12345, %rdx, %rax # imm = 0x3039<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/fmaxnum.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fmaxnum.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fmaxnum.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/fmaxnum.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/fmaxnum.ll Tue Feb 27 08:59:10 2018<br class="">@@ -18,7 +18,7 @@ declare <8 x double> @llvm.maxnum.v8f64(<br class=""><br class="">; CHECK-LABEL: @test_fmaxf<br class="">; SSE:         movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordss %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordss %xmm0, %xmm2<br class="">; SSE-NEXT:    movaps %xmm2, %xmm3<br class="">; SSE-NEXT:    andps %xmm1, %xmm3<br class="">; SSE-NEXT:    maxss %xmm0, %xmm1<br class="">@@ -47,7 +47,7 @@ define float @test_fmaxf_minsize(float %<br class=""><br class="">; CHECK-LABEL: @test_fmax<br class="">; SSE:         movapd %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordsd %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordsd %xmm0, %xmm2<br class="">; SSE-NEXT:    movapd %xmm2, %xmm3<br class="">; SSE-NEXT:    andpd %xmm1, %xmm3<br class="">; SSE-NEXT:    maxsd %xmm0, %xmm1<br class="">@@ -74,7 +74,7 @@ define x86_fp80 @test_fmaxl(x86_fp80 %x,<br class=""><br class="">; CHECK-LABEL: @test_intrinsic_fmaxf<br class="">; SSE:         movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordss %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordss %xmm0, %xmm2<br class="">; SSE-NEXT:    movaps %xmm2, %xmm3<br class="">; SSE-NEXT:    andps %xmm1, %xmm3<br class="">; SSE-NEXT:    maxss %xmm0, %xmm1<br class="">@@ -95,7 +95,7 @@ define float @test_intrinsic_fmaxf(float<br class=""><br class="">; CHECK-LABEL: @test_intrinsic_fmax<br class="">; SSE:         movapd %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordsd %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordsd %xmm0, %xmm2<br class="">; SSE-NEXT:    movapd %xmm2, %xmm3<br class="">; SSE-NEXT:    andpd %xmm1, %xmm3<br class="">; SSE-NEXT:    maxsd %xmm0, %xmm1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/fmf-flags.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fmf-flags.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fmf-flags.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/fmf-flags.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/fmf-flags.ll Tue Feb 27 08:59:10 2018<br class="">@@ -30,7 +30,7 @@ define float @fast_fmuladd_opts(float %a<br class="">; X64-LABEL: fast_fmuladd_opts:<br class="">; X64:       # %bb.0:<br class="">; X64-NEXT:    movaps %xmm0, %xmm1<br class="">-; X64-NEXT:    addss %xmm1, %xmm1<br class="">+; X64-NEXT:    addss %xmm0, %xmm1<br class="">; X64-NEXT:    addss %xmm0, %xmm1<br class="">; X64-NEXT:    movaps %xmm1, %xmm0<br class="">; X64-NEXT:    retq<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/fminnum.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fminnum.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fminnum.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/fminnum.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/fminnum.ll Tue Feb 27 08:59:10 2018<br class="">@@ -18,7 +18,7 @@ declare <8 x double> @llvm.minnum.v8f64(<br class=""><br class="">; CHECK-LABEL: @test_fminf<br class="">; SSE:         movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordss %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordss %xmm0, %xmm2<br class="">; SSE-NEXT:    movaps %xmm2, %xmm3<br class="">; SSE-NEXT:    andps %xmm1, %xmm3<br class="">; SSE-NEXT:    minss %xmm0, %xmm1<br class="">@@ -40,7 +40,7 @@ define float @test_fminf(float %x, float<br class=""><br class="">; CHECK-LABEL: @test_fmin<br class="">; SSE:         movapd %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordsd %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordsd %xmm0, %xmm2<br class="">; SSE-NEXT:    movapd %xmm2, %xmm3<br class="">; SSE-NEXT:    andpd %xmm1, %xmm3<br class="">; SSE-NEXT:    minsd %xmm0, %xmm1<br class="">@@ -67,7 +67,7 @@ define x86_fp80 @test_fminl(x86_fp80 %x,<br class=""><br class="">; CHECK-LABEL: @test_intrinsic_fminf<br class="">; SSE:         movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordss %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordss %xmm0, %xmm2<br class="">; SSE-NEXT:    movaps %xmm2, %xmm3<br class="">; SSE-NEXT:    andps %xmm1, %xmm3<br class="">; SSE-NEXT:    minss %xmm0, %xmm1<br class="">@@ -87,7 +87,7 @@ define float @test_intrinsic_fminf(float<br class=""><br class="">; CHECK-LABEL: @test_intrinsic_fmin<br class="">; SSE:         movapd %xmm0, %xmm2<br class="">-; SSE-NEXT:    cmpunordsd %xmm2, %xmm2<br class="">+; SSE-NEXT:    cmpunordsd %xmm0, %xmm2<br class="">; SSE-NEXT:    movapd %xmm2, %xmm3<br class="">; SSE-NEXT:    andpd %xmm1, %xmm3<br class="">; SSE-NEXT:    minsd %xmm0, %xmm1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/fp128-i128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp128-i128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp128-i128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/fp128-i128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/fp128-i128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -227,7 +227,7 @@ define fp128 @TestI128_4(fp128 %x) #0 {<br class="">; CHECK:       # %bb.0: # %entry<br class="">; CHECK-NEXT:    subq $40, %rsp<br class="">; CHECK-NEXT:    movaps %xmm0, %xmm1<br class="">-; CHECK-NEXT:    movaps %xmm1, {{[0-9]+}}(%rsp)<br class="">+; CHECK-NEXT:    movaps %xmm0, {{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    movq {{[0-9]+}}(%rsp), %rax<br class="">; CHECK-NEXT:    movq %rax, {{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    movq $0, (%rsp)<br class="">@@ -275,7 +275,7 @@ define fp128 @acosl(fp128 %x) #0 {<br class="">; CHECK:       # %bb.0: # %entry<br class="">; CHECK-NEXT:    subq $40, %rsp<br class="">; CHECK-NEXT:    movaps %xmm0, %xmm1<br class="">-; CHECK-NEXT:    movaps %xmm1, {{[0-9]+}}(%rsp)<br class="">+; CHECK-NEXT:    movaps %xmm0, {{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    movq {{[0-9]+}}(%rsp), %rax<br class="">; CHECK-NEXT:    movq %rax, {{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    movq $0, (%rsp)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/h-registers-1.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/h-registers-1.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/h-registers-1.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/h-registers-1.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/h-registers-1.ll Tue Feb 27 08:59:10 2018<br class="">@@ -32,8 +32,7 @@ define i64 @foo(i64 %a, i64 %b, i64 %c,<br class="">; CHECK-NEXT:    movzbl %ah, %eax<br class="">; CHECK-NEXT:    movl {{[0-9]+}}(%rsp), %ebx<br class="">; CHECK-NEXT:    movzbl %bh, %edi<br class="">-; CHECK-NEXT:    movq %r10, %r8<br class="">-; CHECK-NEXT:    addq %r8, %rsi<br class="">+; CHECK-NEXT:    addq %r10, %rsi<br class="">; CHECK-NEXT:    addq %r11, %rdx<br class="">; CHECK-NEXT:    addq %rsi, %rdx<br class="">; CHECK-NEXT:    addq %rbp, %rcx<br class="">@@ -68,8 +67,7 @@ define i64 @foo(i64 %a, i64 %b, i64 %c,<br class="">; GNUX32-NEXT:    movzbl %ah, %eax<br class="">; GNUX32-NEXT:    movl {{[0-9]+}}(%esp), %ebx<br class="">; GNUX32-NEXT:    movzbl %bh, %edi<br class="">-; GNUX32-NEXT:    movq %r10, %r8<br class="">-; GNUX32-NEXT:    addq %r8, %rsi<br class="">+; GNUX32-NEXT:    addq %r10, %rsi<br class="">; GNUX32-NEXT:    addq %r11, %rdx<br class="">; GNUX32-NEXT:    addq %rsi, %rdx<br class="">; GNUX32-NEXT:    addq %rbp, %rcx<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/haddsub-2.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-2.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-2.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/haddsub-2.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/haddsub-2.ll Tue Feb 27 08:59:10 2018<br class="">@@ -896,16 +896,16 @@ define <4 x float> @not_a_hsub_2(<4 x fl<br class="">; SSE-LABEL: not_a_hsub_2:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm2[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm0[1],xmm2[1]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm3<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1],xmm0[2,3]<br class="">; SSE-NEXT:    subss %xmm3, %xmm2<br class="">; SSE-NEXT:    movshdup {{.*#+}} xmm3 = xmm0[1,1,3,3]<br class="">; SSE-NEXT:    subss %xmm3, %xmm0<br class="">; SSE-NEXT:    movaps %xmm1, %xmm3<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1],xmm1[2,3]<br class="">; SSE-NEXT:    movaps %xmm1, %xmm4<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm4 = xmm4[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm4 = xmm1[1],xmm4[1]<br class="">; SSE-NEXT:    subss %xmm4, %xmm3<br class="">; SSE-NEXT:    movshdup {{.*#+}} xmm4 = xmm1[1,1,3,3]<br class="">; SSE-NEXT:    subss %xmm4, %xmm1<br class="">@@ -953,10 +953,10 @@ define <2 x double> @not_a_hsub_3(<2 x d<br class="">; SSE-LABEL: not_a_hsub_3:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movaps %xmm1, %xmm2<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm2[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm1[1],xmm2[1]<br class="">; SSE-NEXT:    subsd %xmm2, %xmm1<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm2[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm0[1],xmm2[1]<br class="">; SSE-NEXT:    subsd %xmm0, %xmm2<br class="">; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm1[0]<br class="">; SSE-NEXT:    movapd %xmm2, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/haddsub-3.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-3.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-3.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/haddsub-3.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/haddsub-3.ll Tue Feb 27 08:59:10 2018<br class="">@@ -7,10 +7,10 @@ define float @pr26491(<4 x float> %a0) {<br class="">; SSE2-LABEL: pr26491:<br class="">; SSE2:       # %bb.0:<br class="">; SSE2-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE2-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1,3,3]<br class="">+; SSE2-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm0[3,3]<br class="">; SSE2-NEXT:    addps %xmm0, %xmm1<br class="">; SSE2-NEXT:    movaps %xmm1, %xmm0<br class="">-; SSE2-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]<br class="">+; SSE2-NEXT:    movhlps {{.*#+}} xmm0 = xmm1[1],xmm0[1]<br class="">; SSE2-NEXT:    addss %xmm1, %xmm0<br class="">; SSE2-NEXT:    retq<br class="">;<br class="">@@ -19,7 +19,7 @@ define float @pr26491(<4 x float> %a0) {<br class="">; SSSE3-NEXT:    movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]<br class="">; SSSE3-NEXT:    addps %xmm0, %xmm1<br class="">; SSSE3-NEXT:    movaps %xmm1, %xmm0<br class="">-; SSSE3-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]<br class="">+; SSSE3-NEXT:    movhlps {{.*#+}} xmm0 = xmm1[1],xmm0[1]<br class="">; SSSE3-NEXT:    addss %xmm1, %xmm0<br class="">; SSSE3-NEXT:    retq<br class="">;<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/haddsub-undef.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-undef.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/haddsub-undef.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/haddsub-undef.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/haddsub-undef.ll Tue Feb 27 08:59:10 2018<br class="">@@ -103,7 +103,7 @@ define <2 x double> @test5_undef(<2 x do<br class="">; SSE-LABEL: test5_undef:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm0[1],xmm1[1]<br class="">; SSE-NEXT:    addsd %xmm0, %xmm1<br class="">; SSE-NEXT:    movapd %xmm1, %xmm0<br class="">; SSE-NEXT:    retq<br class="">@@ -168,7 +168,7 @@ define <4 x float> @test8_undef(<4 x flo<br class="">; SSE-NEXT:    movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]<br class="">; SSE-NEXT:    addss %xmm0, %xmm1<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm2[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm0[1],xmm2[1]<br class="">; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1,2,3]<br class="">; SSE-NEXT:    addss %xmm2, %xmm0<br class="">; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/half.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/half.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/half.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/half.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/half.ll Tue Feb 27 08:59:10 2018<br class="">@@ -386,7 +386,7 @@ define <4 x float> @test_extend32_vec4(<<br class="">; CHECK-LIBCALL-NEXT:    pushq %rbx<br class="">; CHECK-LIBCALL-NEXT:    subq $48, %rsp<br class="">; CHECK-LIBCALL-NEXT:    movq %rdi, %rbx<br class="">-; CHECK-LIBCALL-NEXT:    movzwl (%rbx), %edi<br class="">+; CHECK-LIBCALL-NEXT:    movzwl (%rdi), %edi<br class="">; CHECK-LIBCALL-NEXT:    callq __gnu_h2f_ieee<br class="">; CHECK-LIBCALL-NEXT:    movaps %xmm0, {{[0-9]+}}(%rsp) # 16-byte Spill<br class="">; CHECK-LIBCALL-NEXT:    movzwl 2(%rbx), %edi<br class="">@@ -472,7 +472,7 @@ define <4 x double> @test_extend64_vec4(<br class="">; CHECK-LIBCALL-NEXT:    pushq %rbx<br class="">; CHECK-LIBCALL-NEXT:    subq $16, %rsp<br class="">; CHECK-LIBCALL-NEXT:    movq %rdi, %rbx<br class="">-; CHECK-LIBCALL-NEXT:    movzwl 4(%rbx), %edi<br class="">+; CHECK-LIBCALL-NEXT:    movzwl 4(%rdi), %edi<br class="">; CHECK-LIBCALL-NEXT:    callq __gnu_h2f_ieee<br class="">; CHECK-LIBCALL-NEXT:    movss %xmm0, {{[0-9]+}}(%rsp) # 4-byte Spill<br class="">; CHECK-LIBCALL-NEXT:    movzwl 6(%rbx), %edi<br class="">@@ -657,7 +657,7 @@ define void @test_trunc32_vec4(<4 x floa<br class="">; CHECK-I686-NEXT:    movaps %xmm0, {{[0-9]+}}(%esp) # 16-byte Spill<br class="">; CHECK-I686-NEXT:    movl {{[0-9]+}}(%esp), %ebp<br class="">; CHECK-I686-NEXT:    movaps %xmm0, %xmm1<br class="">-; CHECK-I686-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1,2,3]<br class="">+; CHECK-I686-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm0[2,3]<br class="">; CHECK-I686-NEXT:    movss %xmm1, (%esp)<br class="">; CHECK-I686-NEXT:    calll __gnu_f2h_ieee<br class="">; CHECK-I686-NEXT:    movw %ax, %si<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/horizontal-reduce-smax.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-smax.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-smax.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/horizontal-reduce-smax.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/horizontal-reduce-smax.ll Tue Feb 27 08:59:10 2018<br class="">@@ -40,7 +40,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X86-SSE42-LABEL: test_reduce_v2i64:<br class="">; X86-SSE42:       ## %bb.0:<br class="">; X86-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X86-SSE42-NEXT:    pcmpgtq %xmm2, %xmm0<br class="">; X86-SSE42-NEXT:    blendvpd %xmm0, %xmm1, %xmm2<br class="">; X86-SSE42-NEXT:    movd %xmm2, %eax<br class="">@@ -80,7 +80,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X64-SSE42-LABEL: test_reduce_v2i64:<br class="">; X64-SSE42:       ## %bb.0:<br class="">; X64-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X64-SSE42-NEXT:    pcmpgtq %xmm2, %xmm0<br class="">; X64-SSE42-NEXT:    blendvpd %xmm0, %xmm1, %xmm2<br class="">; X64-SSE42-NEXT:    movq %xmm2, %rax<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/horizontal-reduce-smin.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-smin.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-smin.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/horizontal-reduce-smin.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/horizontal-reduce-smin.ll Tue Feb 27 08:59:10 2018<br class="">@@ -40,7 +40,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X86-SSE42-LABEL: test_reduce_v2i64:<br class="">; X86-SSE42:       ## %bb.0:<br class="">; X86-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X86-SSE42-NEXT:    movdqa %xmm2, %xmm0<br class="">; X86-SSE42-NEXT:    pcmpgtq %xmm1, %xmm0<br class="">; X86-SSE42-NEXT:    blendvpd %xmm0, %xmm1, %xmm2<br class="">@@ -81,7 +81,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X64-SSE42-LABEL: test_reduce_v2i64:<br class="">; X64-SSE42:       ## %bb.0:<br class="">; X64-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X64-SSE42-NEXT:    movdqa %xmm2, %xmm0<br class="">; X64-SSE42-NEXT:    pcmpgtq %xmm1, %xmm0<br class="">; X64-SSE42-NEXT:    blendvpd %xmm0, %xmm1, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/horizontal-reduce-umax.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-umax.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-umax.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/horizontal-reduce-umax.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/horizontal-reduce-umax.ll Tue Feb 27 08:59:10 2018<br class="">@@ -40,7 +40,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X86-SSE42-LABEL: test_reduce_v2i64:<br class="">; X86-SSE42:       ## %bb.0:<br class="">; X86-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X86-SSE42-NEXT:    movdqa {{.*#+}} xmm3 = [0,2147483648,0,2147483648]<br class="">; X86-SSE42-NEXT:    pxor %xmm3, %xmm0<br class="">; X86-SSE42-NEXT:    pxor %xmm2, %xmm3<br class="">@@ -86,7 +86,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X64-SSE42-LABEL: test_reduce_v2i64:<br class="">; X64-SSE42:       ## %bb.0:<br class="">; X64-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X64-SSE42-NEXT:    movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]<br class="">; X64-SSE42-NEXT:    pxor %xmm3, %xmm0<br class="">; X64-SSE42-NEXT:    pxor %xmm2, %xmm3<br class="">@@ -1693,7 +1693,7 @@ define i16 @test_reduce_v32i16(<32 x i16<br class="">; X86-SSE2-NEXT:    pxor %xmm4, %xmm1<br class="">; X86-SSE2-NEXT:    pmaxsw %xmm3, %xmm1<br class="">; X86-SSE2-NEXT:    movdqa %xmm4, %xmm2<br class="">-; X86-SSE2-NEXT:    pxor %xmm2, %xmm2<br class="">+; X86-SSE2-NEXT:    pxor %xmm4, %xmm2<br class="">; X86-SSE2-NEXT:    pxor %xmm2, %xmm1<br class="">; X86-SSE2-NEXT:    pxor %xmm0, %xmm2<br class="">; X86-SSE2-NEXT:    pmaxsw %xmm1, %xmm2<br class="">@@ -1771,7 +1771,7 @@ define i16 @test_reduce_v32i16(<32 x i16<br class="">; X64-SSE2-NEXT:    pxor %xmm4, %xmm1<br class="">; X64-SSE2-NEXT:    pmaxsw %xmm3, %xmm1<br class="">; X64-SSE2-NEXT:    movdqa %xmm4, %xmm2<br class="">-; X64-SSE2-NEXT:    pxor %xmm2, %xmm2<br class="">+; X64-SSE2-NEXT:    pxor %xmm4, %xmm2<br class="">; X64-SSE2-NEXT:    pxor %xmm2, %xmm1<br class="">; X64-SSE2-NEXT:    pxor %xmm0, %xmm2<br class="">; X64-SSE2-NEXT:    pmaxsw %xmm1, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/horizontal-reduce-umin.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-umin.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/horizontal-reduce-umin.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/horizontal-reduce-umin.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/horizontal-reduce-umin.ll Tue Feb 27 08:59:10 2018<br class="">@@ -40,7 +40,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X86-SSE42-LABEL: test_reduce_v2i64:<br class="">; X86-SSE42:       ## %bb.0:<br class="">; X86-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X86-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X86-SSE42-NEXT:    movdqa {{.*#+}} xmm0 = [0,2147483648,0,2147483648]<br class="">; X86-SSE42-NEXT:    movdqa %xmm1, %xmm3<br class="">; X86-SSE42-NEXT:    pxor %xmm0, %xmm3<br class="">@@ -87,7 +87,7 @@ define i64 @test_reduce_v2i64(<2 x i64><br class="">; X64-SSE42-LABEL: test_reduce_v2i64:<br class="">; X64-SSE42:       ## %bb.0:<br class="">; X64-SSE42-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm1[2,3,0,1]<br class="">+; X64-SSE42-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[2,3,0,1]<br class="">; X64-SSE42-NEXT:    movdqa {{.*#+}} xmm0 = [9223372036854775808,9223372036854775808]<br class="">; X64-SSE42-NEXT:    movdqa %xmm1, %xmm3<br class="">; X64-SSE42-NEXT:    pxor %xmm0, %xmm3<br class="">@@ -444,7 +444,7 @@ define i64 @test_reduce_v4i64(<4 x i64><br class="">; X86-SSE42:       ## %bb.0:<br class="">; X86-SSE42-NEXT:    movdqa %xmm0, %xmm2<br class="">; X86-SSE42-NEXT:    movdqa {{.*#+}} xmm3 = [0,2147483648,0,2147483648]<br class="">-; X86-SSE42-NEXT:    movdqa %xmm2, %xmm4<br class="">+; X86-SSE42-NEXT:    movdqa %xmm0, %xmm4<br class="">; X86-SSE42-NEXT:    pxor %xmm3, %xmm4<br class="">; X86-SSE42-NEXT:    movdqa %xmm1, %xmm0<br class="">; X86-SSE42-NEXT:    pxor %xmm3, %xmm0<br class="">@@ -543,7 +543,7 @@ define i64 @test_reduce_v4i64(<4 x i64><br class="">; X64-SSE42:       ## %bb.0:<br class="">; X64-SSE42-NEXT:    movdqa %xmm0, %xmm2<br class="">; X64-SSE42-NEXT:    movdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]<br class="">-; X64-SSE42-NEXT:    movdqa %xmm2, %xmm4<br class="">+; X64-SSE42-NEXT:    movdqa %xmm0, %xmm4<br class="">; X64-SSE42-NEXT:    pxor %xmm3, %xmm4<br class="">; X64-SSE42-NEXT:    movdqa %xmm1, %xmm0<br class="">; X64-SSE42-NEXT:    pxor %xmm3, %xmm0<br class="">@@ -1597,7 +1597,7 @@ define i16 @test_reduce_v32i16(<32 x i16<br class="">; X86-SSE2-NEXT:    pxor %xmm4, %xmm1<br class="">; X86-SSE2-NEXT:    pminsw %xmm3, %xmm1<br class="">; X86-SSE2-NEXT:    movdqa %xmm4, %xmm2<br class="">-; X86-SSE2-NEXT:    pxor %xmm2, %xmm2<br class="">+; X86-SSE2-NEXT:    pxor %xmm4, %xmm2<br class="">; X86-SSE2-NEXT:    pxor %xmm2, %xmm1<br class="">; X86-SSE2-NEXT:    pxor %xmm0, %xmm2<br class="">; X86-SSE2-NEXT:    pminsw %xmm1, %xmm2<br class="">@@ -1666,7 +1666,7 @@ define i16 @test_reduce_v32i16(<32 x i16<br class="">; X64-SSE2-NEXT:    pxor %xmm4, %xmm1<br class="">; X64-SSE2-NEXT:    pminsw %xmm3, %xmm1<br class="">; X64-SSE2-NEXT:    movdqa %xmm4, %xmm2<br class="">-; X64-SSE2-NEXT:    pxor %xmm2, %xmm2<br class="">+; X64-SSE2-NEXT:    pxor %xmm4, %xmm2<br class="">; X64-SSE2-NEXT:    pxor %xmm2, %xmm1<br class="">; X64-SSE2-NEXT:    pxor %xmm0, %xmm2<br class="">; X64-SSE2-NEXT:    pminsw %xmm1, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/i128-mul.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/i128-mul.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/i128-mul.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/i128-mul.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/i128-mul.ll Tue Feb 27 08:59:10 2018<br class="">@@ -145,8 +145,8 @@ define i64 @mul1(i64 %n, i64* nocapture<br class="">; X86-NOBMI-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X86-NOBMI-NEXT:    movl {{[0-9]+}}(%esp), %eax<br class="">; X86-NOBMI-NEXT:    movl %eax, %ecx<br class="">-; X86-NOBMI-NEXT:    movl (%ecx,%ebx,8), %ebp<br class="">-; X86-NOBMI-NEXT:    movl 4(%ecx,%ebx,8), %esi<br class="">+; X86-NOBMI-NEXT:    movl (%eax,%ebx,8), %ebp<br class="">+; X86-NOBMI-NEXT:    movl 4(%eax,%ebx,8), %esi<br class="">; X86-NOBMI-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X86-NOBMI-NEXT:    movl %ebp, %eax<br class="">; X86-NOBMI-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">@@ -245,7 +245,7 @@ define i64 @mul1(i64 %n, i64* nocapture<br class="">; X86-BMI-NEXT:    movl %ecx, %edx<br class="">; X86-BMI-NEXT:    movl {{[0-9]+}}(%esp), %eax<br class="">; X86-BMI-NEXT:    movl %eax, %esi<br class="">-; X86-BMI-NEXT:    mulxl %esi, %eax, %ebp<br class="">+; X86-BMI-NEXT:    mulxl %eax, %eax, %ebp<br class="">; X86-BMI-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X86-BMI-NEXT:    movl %ebx, %edx<br class="">; X86-BMI-NEXT:    mulxl %esi, %eax, %esi<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/inline-asm-fpstack.ll Tue Feb 27 08:59:10 2018<br class="">@@ -161,6 +161,7 @@ define void @testPR4459(x86_fp80 %a) {<br class="">; CHECK-NEXT:    fstpt (%esp)<br class="">; CHECK-NEXT:    calll _ceil<br class="">; CHECK-NEXT:    fld %st(0)<br class="">+; CHECK-NEXT:    fxch %st(1)<br class="">; CHECK-NEXT:    ## InlineAsm Start<br class="">; CHECK-NEXT:    fistpl %st(0)<br class="">; CHECK-NEXT:    ## InlineAsm End<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/ipra-local-linkage.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/ipra-local-linkage.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/ipra-local-linkage.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/ipra-local-linkage.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/ipra-local-linkage.ll Tue Feb 27 08:59:10 2018<br class="">@@ -24,7 +24,7 @@ define void @bar(i32 %X) {<br class="">  call void @foo()<br class="">  ; CHECK-LABEL: bar:<br class="">  ; CHECK: callq foo<br class="">-  ; CHECK-NEXT: movl  %eax, %r15d<br class="">+  ; CHECK-NEXT: movl  %edi, %r15d<br class="">  call void asm sideeffect "movl  $0, %r12d", "{r15}~{r12}"(i32 %X)<br class="">  ret void<br class="">}<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/legalize-shift.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/legalize-shift.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/legalize-shift.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/legalize-shift.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/legalize-shift.ll Tue Feb 27 08:59:10 2018<br class="">@@ -10,7 +10,7 @@ define void @PR36250() {<br class="">; X86-NEXT:    roll %ecx<br class="">; X86-NEXT:    addl %eax, %eax<br class="">; X86-NEXT:    movl %ecx, %edx<br class="">-; X86-NEXT:    orl %edx, %edx<br class="">+; X86-NEXT:    orl %ecx, %edx<br class="">; X86-NEXT:    orl %ecx, %edx<br class="">; X86-NEXT:    orl %eax, %edx<br class="">; X86-NEXT:    orl %ecx, %edx<br class="">@@ -24,7 +24,7 @@ define void @PR36250() {<br class="">; X64-NEXT:    rolq %rcx<br class="">; X64-NEXT:    addq %rax, %rax<br class="">; X64-NEXT:    movq %rcx, %rdx<br class="">-; X64-NEXT:    orq %rdx, %rdx<br class="">+; X64-NEXT:    orq %rcx, %rdx<br class="">; X64-NEXT:    orq %rax, %rdx<br class="">; X64-NEXT:    orq %rcx, %rdx<br class="">; X64-NEXT:    sete (%rax)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/localescape.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/localescape.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/localescape.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/localescape.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/localescape.ll Tue Feb 27 08:59:10 2018<br class="">@@ -27,7 +27,7 @@ define void @print_framealloc_from_fp(i8<br class=""><br class="">; X64-LABEL: print_framealloc_from_fp:<br class="">; X64: movq %rcx, %[[parent_fp:[a-z]+]]<br class="">-; X64: movl .Lalloc_func$frame_escape_0(%[[parent_fp]]), %edx<br class="">+; X64: movl .Lalloc_func$frame_escape_0(%rcx), %edx<br class="">; X64: leaq {{.*}}(%rip), %[[str:[a-z]+]]<br class="">; X64: movq %[[str]], %rcx<br class="">; X64: callq printf<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/machine-cp.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/machine-cp.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/machine-cp.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/machine-cp.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/machine-cp.ll Tue Feb 27 08:59:10 2018<br class="">@@ -8,7 +8,7 @@ define i32 @t1(i32 %a, i32 %b) nounwind<br class="">; CHECK:       ## %bb.0: ## %entry<br class="">; CHECK-NEXT:    movl %esi, %edx<br class="">; CHECK-NEXT:    movl %edi, %eax<br class="">-; CHECK-NEXT:    testl %edx, %edx<br class="">+; CHECK-NEXT:    testl %esi, %esi<br class="">; CHECK-NEXT:    je LBB0_1<br class="">; CHECK-NEXT:    .p2align 4, 0x90<br class="">; CHECK-NEXT:  LBB0_2: ## %while.body<br class="">@@ -59,7 +59,7 @@ define i32 @t3(i64 %a, i64 %b) nounwind<br class="">; CHECK:       ## %bb.0: ## %entry<br class="">; CHECK-NEXT:    movq %rsi, %rdx<br class="">; CHECK-NEXT:    movq %rdi, %rax<br class="">-; CHECK-NEXT:    testq %rdx, %rdx<br class="">+; CHECK-NEXT:    testq %rsi, %rsi<br class="">; CHECK-NEXT:    je LBB2_1<br class="">; CHECK-NEXT:    .p2align 4, 0x90<br class="">; CHECK-NEXT:  LBB2_2: ## %while.body<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/mmx-arith.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-arith.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-arith.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/mmx-arith.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/mmx-arith.ll Tue Feb 27 08:59:10 2018<br class="">@@ -580,7 +580,7 @@ define <1 x i64> @test3(<1 x i64>* %a, <<br class="">; X32-NEXT:    # =>This Inner Loop Header: Depth=1<br class="">; X32-NEXT:    movl 8(%ebp), %ecx<br class="">; X32-NEXT:    movl %ecx, %esi<br class="">-; X32-NEXT:    movl (%esi,%ebx,8), %ecx<br class="">+; X32-NEXT:    movl (%ecx,%ebx,8), %ecx<br class="">; X32-NEXT:    movl 4(%esi,%ebx,8), %esi<br class="">; X32-NEXT:    movl 12(%ebp), %edi<br class="">; X32-NEXT:    addl (%edi,%ebx,8), %ecx<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/mul-i1024.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i1024.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i1024.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/mul-i1024.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/mul-i1024.ll Tue Feb 27 08:59:10 2018<br class="">@@ -38,7 +38,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl %edx, %eax<br class="">; X32-NEXT:    adcl %edi, %eax<br class="">; X32-NEXT:    movl %edi, %ecx<br class="">-; X32-NEXT:    movl %ecx, -204(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edi, -204(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, -892(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl 12(%ebp), %eax<br class="">; X32-NEXT:    movl 36(%eax), %eax<br class="">@@ -47,7 +47,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    mull %edx<br class="">; X32-NEXT:    movl %edx, -236(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, %edi<br class="">-; X32-NEXT:    movl %edi, -304(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, -304(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    addl %ecx, %edi<br class="">; X32-NEXT:    movl %edi, -80(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %eax<br class="">@@ -58,7 +58,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    xorl %ecx, %ecx<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %edx, %ecx<br class="">-; X32-NEXT:    movl %ecx, -124(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, -124(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, -184(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, %edx<br class="">; X32-NEXT:    movl -400(%ebp), %esi # 4-byte Reload<br class="">@@ -72,7 +72,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl %eax, -656(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    leal (%ebx,%edi), %eax<br class="">; X32-NEXT:    movl %edx, %edi<br class="">-; X32-NEXT:    leal (%ecx,%edi), %edx<br class="">+; X32-NEXT:    leal (%ecx,%edx), %edx<br class="">; X32-NEXT:    adcl %eax, %edx<br class="">; X32-NEXT:    movl %edx, -700(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    seto %al<br class="">@@ -123,7 +123,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    adcl %edi, %ebx<br class="">; X32-NEXT:    movl %ebx, -424(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edi, %ebx<br class="">-; X32-NEXT:    movl %ebx, -256(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edi, -256(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -100(%ebp), %eax # 4-byte Reload<br class="">; X32-NEXT:    addl %eax, -80(%ebp) # 4-byte Folded Spill<br class="">; X32-NEXT:    movl -204(%ebp), %eax # 4-byte Reload<br class="">@@ -148,7 +148,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movzbl %bh, %eax<br class="">; X32-NEXT:    adcl %edx, %eax<br class="">; X32-NEXT:    movl %eax, %edi<br class="">-; X32-NEXT:    movl %edi, -72(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, -72(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl 12(%ebp), %eax<br class="">; X32-NEXT:    movl 8(%eax), %eax<br class="">; X32-NEXT:    movl %eax, -108(%ebp) # 4-byte Spill<br class="">@@ -220,7 +220,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %eax, -364(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">-; X32-NEXT:    movl %ebx, -396(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, -396(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -324(%ebp), %edx # 4-byte Reload<br class="">; X32-NEXT:    movl %edx, %edi<br class="">; X32-NEXT:    addl %eax, %edi<br class="">@@ -252,7 +252,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %eax, %edi<br class="">; X32-NEXT:    movl %edx, %esi<br class="">-; X32-NEXT:    movl %esi, -84(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, -84(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl 20(%ecx), %eax<br class="">; X32-NEXT:    movl %eax, -252(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    mull %ebx<br class="">@@ -303,7 +303,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl -52(%ebp), %eax # 4-byte Reload<br class="">; X32-NEXT:    adcl %edx, %eax<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">-; X32-NEXT:    movl %ebx, -56(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, -56(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, -780(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -132(%ebp), %edx # 4-byte Reload<br class="">; X32-NEXT:    movl %edx, %eax<br class="">@@ -393,10 +393,10 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    xorl %ecx, %ecx<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %eax, %ecx<br class="">-; X32-NEXT:    movl %ecx, -160(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, -160(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, -268(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %ebx, %esi<br class="">-; X32-NEXT:    movl %esi, %eax<br class="">+; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    addl %ecx, %eax<br class="">; X32-NEXT:    movl -264(%ebp), %ebx # 4-byte Reload<br class="">; X32-NEXT:    movl %ebx, %ecx<br class="">@@ -425,7 +425,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    adcl -60(%ebp), %eax # 4-byte Folded Reload<br class="">; X32-NEXT:    movl %eax, -592(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %esi, %edx<br class="">-; X32-NEXT:    movl %edx, %eax<br class="">+; X32-NEXT:    movl %esi, %eax<br class="">; X32-NEXT:    movl -116(%ebp), %esi # 4-byte Reload<br class="">; X32-NEXT:    addl %esi, %eax<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">@@ -533,7 +533,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    xorl %ecx, %ecx<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %eax, %ebx<br class="">-; X32-NEXT:    movl %ebx, -336(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, -336(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %edi<br class="">; X32-NEXT:    movl 52(%esi), %eax<br class="">; X32-NEXT:    movl %eax, -144(%ebp) # 4-byte Spill<br class="">@@ -559,7 +559,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl -336(%ebp), %ebx # 4-byte Reload<br class="">; X32-NEXT:    addl %eax, %ebx<br class="">; X32-NEXT:    movl %edi, %edx<br class="">-; X32-NEXT:    movl %edx, -176(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edi, -176(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    adcl -360(%ebp), %edi # 4-byte Folded Reload<br class="">; X32-NEXT:    addl %ecx, %ebx<br class="">; X32-NEXT:    movl %ebx, -472(%ebp) # 4-byte Spill<br class="">@@ -590,12 +590,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    xorl %ecx, %ecx<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %edx, %esi<br class="">-; X32-NEXT:    movl %esi, -384(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, -384(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -116(%ebp), %edi # 4-byte Reload<br class="">; X32-NEXT:    movl %edi, %ecx<br class="">; X32-NEXT:    movl %eax, %edx<br class="">-; X32-NEXT:    movl %edx, -480(%ebp) # 4-byte Spill<br class="">-; X32-NEXT:    addl %edx, %ecx<br class="">+; X32-NEXT:    movl %eax, -480(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    addl %eax, %ecx<br class="">; X32-NEXT:    movl -84(%ebp), %ebx # 4-byte Reload<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    adcl %esi, %eax<br class="">@@ -642,8 +642,8 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl %eax, %ecx<br class="">; X32-NEXT:    addl %esi, %ecx<br class="">; X32-NEXT:    movl %edx, %esi<br class="">-; X32-NEXT:    movl %esi, -496(%ebp) # 4-byte Spill<br class="">-; X32-NEXT:    movl %esi, %ecx<br class="">+; X32-NEXT:    movl %edx, -496(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, %ecx<br class="">; X32-NEXT:    adcl %edi, %ecx<br class="">; X32-NEXT:    movl %ecx, -992(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, %ecx<br class="">@@ -761,7 +761,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    xorl %edx, %edx<br class="">; X32-NEXT:    mull %edx<br class="">; X32-NEXT:    movl %eax, %esi<br class="">-; X32-NEXT:    movl %esi, -484(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, -484(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, -488(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    addl %esi, %eax<br class="">@@ -793,8 +793,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    adcl -60(%ebp), %ebx # 4-byte Folded Reload<br class="">; X32-NEXT:    movl %ebx, -928(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl 8(%ebp), %ecx<br class="">-; X32-NEXT:    movl %ecx, %eax<br class="">-; X32-NEXT:    movl 84(%eax), %eax<br class="">+; X32-NEXT:    movl 84(%ecx), %eax<br class="">; X32-NEXT:    movl %eax, -544(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    xorl %ecx, %ecx<br class="">; X32-NEXT:    mull %ecx<br class="">@@ -871,7 +870,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    xorl %edx, %edx<br class="">; X32-NEXT:    mull %edx<br class="">; X32-NEXT:    movl %eax, %esi<br class="">-; X32-NEXT:    movl %esi, -556(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, -556(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, -560(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -524(%ebp), %eax # 4-byte Reload<br class="">; X32-NEXT:    movl %eax, %ebx<br class="">@@ -882,7 +881,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl %ebx, -732(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    adcl %edi, %esi<br class="">; X32-NEXT:    movl %esi, %edx<br class="">-; X32-NEXT:    movl %edx, -728(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %esi, -728(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    addl -136(%ebp), %eax # 4-byte Folded Reload<br class="">; X32-NEXT:    movl %eax, -712(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -668(%ebp), %ecx # 4-byte Reload<br class="">@@ -917,7 +916,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %eax, -564(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">-; X32-NEXT:    movl %ebx, -568(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, -568(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -500(%ebp), %edx # 4-byte Reload<br class="">; X32-NEXT:    movl %edx, %edi<br class="">; X32-NEXT:    addl %eax, %edi<br class="">@@ -983,7 +982,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movzbl -88(%ebp), %eax # 1-byte Folded Reload<br class="">; X32-NEXT:    adcl %edx, %eax<br class="">; X32-NEXT:    movl %ecx, %edx<br class="">-; X32-NEXT:    addl %edx, %ebx<br class="">+; X32-NEXT:    addl %ecx, %ebx<br class="">; X32-NEXT:    adcl %esi, %eax<br class="">; X32-NEXT:    movl %eax, -88(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -28(%ebp), %edi # 4-byte Reload<br class="">@@ -1038,7 +1037,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %edx, %edi<br class="">; X32-NEXT:    movl %eax, %ebx<br class="">-; X32-NEXT:    movl %ebx, %ecx<br class="">+; X32-NEXT:    movl %eax, %ecx<br class="">; X32-NEXT:    movl -396(%ebp), %esi # 4-byte Reload<br class="">; X32-NEXT:    addl %esi, %ecx<br class="">; X32-NEXT:    adcl $0, %edx<br class="">@@ -1052,7 +1051,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movzbl -16(%ebp), %ebx # 1-byte Folded Reload<br class="">; X32-NEXT:    adcl %edi, %ebx<br class="">; X32-NEXT:    movl %eax, %esi<br class="">-; X32-NEXT:    addl %esi, %edx<br class="">+; X32-NEXT:    addl %eax, %edx<br class="">; X32-NEXT:    adcl %ecx, %ebx<br class="">; X32-NEXT:    movl -64(%ebp), %eax # 4-byte Reload<br class="">; X32-NEXT:    addl -324(%ebp), %eax # 4-byte Folded Reload<br class="">@@ -1143,7 +1142,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movzbl %cl, %eax<br class="">; X32-NEXT:    adcl %esi, %eax<br class="">; X32-NEXT:    movl %edi, %esi<br class="">-; X32-NEXT:    addl %esi, %edx<br class="">+; X32-NEXT:    addl %edi, %edx<br class="">; X32-NEXT:    adcl %ebx, %eax<br class="">; X32-NEXT:    movl %eax, -112(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -136(%ebp), %edi # 4-byte Reload<br class="">@@ -1223,7 +1222,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movzbl %bl, %eax<br class="">; X32-NEXT:    adcl %edx, %eax<br class="">; X32-NEXT:    movl %ecx, %edx<br class="">-; X32-NEXT:    addl %edx, %esi<br class="">+; X32-NEXT:    addl %ecx, %esi<br class="">; X32-NEXT:    adcl %edi, %eax<br class="">; X32-NEXT:    movl %eax, -48(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -100(%ebp), %edi # 4-byte Reload<br class="">@@ -1697,7 +1696,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl %esi, %eax<br class="">; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %ebx, %esi<br class="">-; X32-NEXT:    movl %esi, -48(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %ebx, -48(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">; X32-NEXT:    addl %ecx, %eax<br class="">; X32-NEXT:    movl %eax, -64(%ebp) # 4-byte Spill<br class="">@@ -4479,7 +4478,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl %esi, %eax<br class="">; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %ebx, %esi<br class="">-; X32-NEXT:    movl %esi, -140(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %ebx, -140(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">; X32-NEXT:    addl %ecx, %eax<br class="">; X32-NEXT:    movl %eax, -56(%ebp) # 4-byte Spill<br class="">@@ -5199,7 +5198,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    addl %edi, %edx<br class="">; X32-NEXT:    movl 124(%ebx), %ebx<br class="">; X32-NEXT:    movl %ecx, %eax<br class="">-; X32-NEXT:    imull %eax, %ebx<br class="">+; X32-NEXT:    imull %ecx, %ebx<br class="">; X32-NEXT:    addl %edx, %ebx<br class="">; X32-NEXT:    movl -144(%ebp), %ecx # 4-byte Reload<br class="">; X32-NEXT:    addl %ecx, -96(%ebp) # 4-byte Folded Spill<br class="">@@ -6073,8 +6072,8 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl 108(%eax), %edx<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">-; X32-NEXT:    movl %ebx, -112(%ebp) # 4-byte Spill<br class="">-; X32-NEXT:    mull %ebx<br class="">+; X32-NEXT:    movl %edx, -112(%ebp) # 4-byte Spill<br class="">+; X32-NEXT:    mull %edx<br class="">; X32-NEXT:    movl %edx, %esi<br class="">; X32-NEXT:    addl %ecx, %eax<br class="">; X32-NEXT:    movl %eax, -128(%ebp) # 4-byte Spill<br class="">@@ -6113,7 +6112,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X32-NEXT:    movl -184(%ebp), %ecx # 4-byte Reload<br class="">; X32-NEXT:    movl %ecx, %eax<br class="">; X32-NEXT:    movl %ebx, %esi<br class="">-; X32-NEXT:    mull %esi<br class="">+; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %edx, -144(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, -280(%ebp) # 4-byte Spill<br class="">; X32-NEXT:    movl -60(%ebp), %ebx # 4-byte Reload<br class="">@@ -6754,7 +6753,6 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq $0, %rbp<br class="">; X64-NEXT:    addq %rcx, %rbx<br class="">; X64-NEXT:    movq %rbx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    movq %rcx, %r11<br class="">; X64-NEXT:    adcq %rdi, %rbp<br class="">; X64-NEXT:    setb %bl<br class="">; X64-NEXT:    movzbl %bl, %ebx<br class="">@@ -6764,12 +6762,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    mulq %r8<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rdx, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    movq %r11, %r12<br class="">-; X64-NEXT:    movq %r11, %r8<br class="">+; X64-NEXT:    movq %rcx, %r12<br class="">+; X64-NEXT:    movq %rcx, %r8<br class="">; X64-NEXT:    addq %rax, %r12<br class="">; X64-NEXT:    movq %rdi, %rax<br class="">; X64-NEXT:    movq %rdi, %r9<br class="">-; X64-NEXT:    movq %r9, (%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rdi, (%rsp) # 8-byte Spill<br class="">; X64-NEXT:    adcq %rdx, %rax<br class="">; X64-NEXT:    addq %rbp, %r12<br class="">; X64-NEXT:    movq %r12, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">@@ -6798,7 +6796,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %rdx, %rbx<br class="">; X64-NEXT:    movq 16(%rsi), %rax<br class="">; X64-NEXT:    movq %rsi, %r13<br class="">-; X64-NEXT:    movq %r13, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rsi, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">@@ -6811,7 +6809,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %rbx, %r11<br class="">; X64-NEXT:    movq %r8, %rax<br class="">; X64-NEXT:    movq %r8, %rbp<br class="">-; X64-NEXT:    movq %rbp, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %r8, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    addq %rdi, %rax<br class="">; X64-NEXT:    movq %r9, %rax<br class="">; X64-NEXT:    adcq %rcx, %rax<br class="">@@ -6824,7 +6822,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rax, %rbx<br class="">; X64-NEXT:    addq %rdi, %rax<br class="">; X64-NEXT:    movq %rdi, %r9<br class="">-; X64-NEXT:    movq %rsi, %rax<br class="">+; X64-NEXT:    movq %rdx, %rax<br class="">; X64-NEXT:    adcq %rcx, %rax<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq 32(%r13), %rax<br class="">@@ -6840,9 +6838,9 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %rdx, %rax<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rbp, %rax<br class="">-; X64-NEXT:    addq %r9, %rax<br class="">+; X64-NEXT:    addq %rdi, %rax<br class="">; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    movq %r9, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rdi, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rax # 8-byte Reload<br class="">; X64-NEXT:    adcq %r15, %rax<br class="">; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">@@ -6860,7 +6858,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    addq %rsi, %r11<br class="">; X64-NEXT:    movq %rdx, %rbp<br class="">; X64-NEXT:    adcq $0, %rbp<br class="">-; X64-NEXT:    addq %rcx, %r11<br class="">+; X64-NEXT:    addq %rbx, %r11<br class="">; X64-NEXT:    adcq %rsi, %rbp<br class="">; X64-NEXT:    movq %rsi, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    setb %bl<br class="">@@ -6881,11 +6879,11 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %rbx, %r10<br class="">; X64-NEXT:    movq %rcx, %rdx<br class="">; X64-NEXT:    movq %rcx, %r12<br class="">-; X64-NEXT:    movq %r12, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rcx, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    addq %r9, %rdx<br class="">; X64-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %r11, %r8<br class="">-; X64-NEXT:    adcq %r8, %r15<br class="">+; X64-NEXT:    adcq %r11, %r15<br class="">; X64-NEXT:    movq %r15, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    adcq %rax, %r14<br class="">; X64-NEXT:    movq %r14, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">@@ -6981,13 +6979,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %rdx, %r12<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">-; X64-NEXT:    movq %r10, %rbp<br class="">-; X64-NEXT:    mulq %rbp<br class="">+; X64-NEXT:    mulq %r10<br class="">; X64-NEXT:    movq %rdx, %rsi<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rdi # 8-byte Reload<br class="">; X64-NEXT:    movq %rdi, %rax<br class="">-; X64-NEXT:    mulq %rbp<br class="">+; X64-NEXT:    mulq %r10<br class="">; X64-NEXT:    movq %rdx, %rbp<br class="">; X64-NEXT:    movq %rax, %rbx<br class="">; X64-NEXT:    addq %rsi, %rbx<br class="">@@ -7014,7 +7011,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq $0, %r15<br class="">; X64-NEXT:    adcq $0, %r12<br class="">; X64-NEXT:    movq %r10, %rbx<br class="">-; X64-NEXT:    movq %rbx, %rax<br class="">+; X64-NEXT:    movq %r10, %rax<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r11 # 8-byte Reload<br class="">; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rdx, %rcx<br class="">@@ -7031,7 +7028,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rbx, %rax<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rcx, %rbx<br class="">-; X64-NEXT:    movq %rbx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rcx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rdx, %rcx<br class="">; X64-NEXT:    movq %rax, %r8<br class="">; X64-NEXT:    addq %rbp, %r8<br class="">@@ -7062,7 +7059,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">; X64-NEXT:    movq %r11, %rsi<br class="">-; X64-NEXT:    mulq %rsi<br class="">+; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rdx, %r11<br class="">; X64-NEXT:    movq %rax, %r13<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r12 # 8-byte Reload<br class="">@@ -7142,13 +7139,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %rdx, %r10<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">-; X64-NEXT:    movq %r11, %rbp<br class="">-; X64-NEXT:    mulq %rbp<br class="">+; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rdx, %rdi<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi # 8-byte Reload<br class="">; X64-NEXT:    movq %rsi, %rax<br class="">-; X64-NEXT:    mulq %rbp<br class="">+; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rdx, %rbp<br class="">; X64-NEXT:    movq %rax, %rbx<br class="">; X64-NEXT:    addq %rdi, %rbx<br class="">@@ -7278,7 +7274,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rdx, %rsi<br class="">; X64-NEXT:    movq %rax, %r14<br class="">; X64-NEXT:    movq %r8, %rbp<br class="">-; X64-NEXT:    movq %rbp, %rax<br class="">+; X64-NEXT:    movq %r8, %rax<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rcx, %r11<br class="">; X64-NEXT:    movq %rdx, %rbx<br class="">@@ -7338,7 +7334,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq $0, %r9<br class="">; X64-NEXT:    adcq $0, %r10<br class="">; X64-NEXT:    movq %rbp, %rsi<br class="">-; X64-NEXT:    movq %rsi, %rax<br class="">+; X64-NEXT:    movq %rbp, %rax<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rdx, %r14<br class="">@@ -7395,8 +7391,8 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq $0, %r15<br class="">; X64-NEXT:    movq %rbp, %rax<br class="">; X64-NEXT:    movq %r8, %rdi<br class="">-; X64-NEXT:    movq %rdi, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    mulq %rdi<br class="">+; X64-NEXT:    movq %r8, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    mulq %r8<br class="">; X64-NEXT:    movq %rdx, %r9<br class="">; X64-NEXT:    movq %rax, %r8<br class="">; X64-NEXT:    addq %rbx, %r8<br class="">@@ -7479,13 +7475,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rcx, %r14<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">-; X64-NEXT:    movq %r10, %rdi<br class="">-; X64-NEXT:    mulq %rdi<br class="">+; X64-NEXT:    mulq %r10<br class="">; X64-NEXT:    movq %rdx, %r11<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi # 8-byte Reload<br class="">; X64-NEXT:    movq %rsi, %rax<br class="">-; X64-NEXT:    mulq %rdi<br class="">+; X64-NEXT:    mulq %r10<br class="">; X64-NEXT:    movq %rdx, %rdi<br class="">; X64-NEXT:    movq %rax, %rbx<br class="">; X64-NEXT:    addq %r11, %rbx<br class="">@@ -7513,8 +7508,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %r8, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    adcq $0, %r14<br class="">; X64-NEXT:    movq %r14, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    movq %r13, %rbx<br class="">-; X64-NEXT:    movq %rbx, %rax<br class="">+; X64-NEXT:    movq %r13, %rax<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rdx, %r8<br class="">@@ -7527,7 +7521,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rax, %rcx<br class="">; X64-NEXT:    addq %r8, %rcx<br class="">; X64-NEXT:    adcq $0, %rsi<br class="">-; X64-NEXT:    movq %rbx, %rax<br class="">+; X64-NEXT:    movq %r13, %rax<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %r13 # 8-byte Reload<br class="">; X64-NEXT:    mulq %r13<br class="">; X64-NEXT:    movq %rdx, %rbx<br class="">@@ -7561,13 +7555,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    setb -{{[0-9]+}}(%rsp) # 1-byte Folded Spill<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rbx # 8-byte Reload<br class="">; X64-NEXT:    movq %rbx, %rax<br class="">-; X64-NEXT:    movq %r10, %rsi<br class="">-; X64-NEXT:    mulq %rsi<br class="">+; X64-NEXT:    mulq %r10<br class="">; X64-NEXT:    movq %rdx, %rcx<br class="">; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r8 # 8-byte Reload<br class="">; X64-NEXT:    movq %r8, %rax<br class="">-; X64-NEXT:    mulq %rsi<br class="">+; X64-NEXT:    mulq %r10<br class="">; X64-NEXT:    movq %rdx, %rsi<br class="">; X64-NEXT:    movq %rax, %rdi<br class="">; X64-NEXT:    addq %rcx, %rdi<br class="">@@ -7643,7 +7636,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %r9, %rax<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rcx, %r10<br class="">-; X64-NEXT:    movq %r10, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rcx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rdx, %rcx<br class="">; X64-NEXT:    movq %rax, %rdi<br class="">; X64-NEXT:    addq %rsi, %rdi<br class="">@@ -7655,16 +7648,16 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rax, %rbx<br class="">; X64-NEXT:    movq %rdx, %r14<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r12 # 8-byte Reload<br class="">-; X64-NEXT:    addq %rbx, %r12<br class="">+; X64-NEXT:    addq %rax, %r12<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %r15 # 8-byte Reload<br class="">-; X64-NEXT:    adcq %r14, %r15<br class="">+; X64-NEXT:    adcq %rdx, %r15<br class="">; X64-NEXT:    addq %rdi, %r12<br class="">; X64-NEXT:    adcq %rcx, %r15<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rcx # 8-byte Reload<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">; X64-NEXT:    movq %r11, %rsi<br class="">-; X64-NEXT:    movq %rsi, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    mulq %rsi<br class="">+; X64-NEXT:    movq %r11, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rdx, %r11<br class="">; X64-NEXT:    movq %rax, {{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %r9 # 8-byte Reload<br class="">@@ -7728,7 +7721,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rax, %r9<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rbp # 8-byte Reload<br class="">-; X64-NEXT:    addq %r9, %rbp<br class="">+; X64-NEXT:    addq %rax, %rbp<br class="">; X64-NEXT:    movq {{[0-9]+}}(%rsp), %rax # 8-byte Reload<br class="">; X64-NEXT:    adcq %rdx, %rax<br class="">; X64-NEXT:    addq %rsi, %rbp<br class="">@@ -7906,7 +7899,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq 88(%rsi), %rax<br class="">; X64-NEXT:    movq %rsi, %r9<br class="">; X64-NEXT:    movq %rax, %rsi<br class="">-; X64-NEXT:    movq %rsi, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rcx, %r11<br class="">; X64-NEXT:    movq %rdx, %rbp<br class="">@@ -7942,13 +7935,12 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    adcq %r8, %r10<br class="">; X64-NEXT:    addq %rbx, %rsi<br class="">; X64-NEXT:    adcq %rbp, %r10<br class="">-; X64-NEXT:    movq %r9, %rdi<br class="">-; X64-NEXT:    movq 64(%rdi), %r13<br class="">+; X64-NEXT:    movq 64(%r9), %r13<br class="">; X64-NEXT:    movq %r13, %rax<br class="">; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rdx, %rcx<br class="">-; X64-NEXT:    movq 72(%rdi), %r9<br class="">+; X64-NEXT:    movq 72(%r9), %r9<br class="">; X64-NEXT:    movq %r9, %rax<br class="">; X64-NEXT:    mulq %r11<br class="">; X64-NEXT:    movq %rdx, %rbp<br class="">@@ -7976,8 +7968,8 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    movq %rdx, %r11<br class="">; X64-NEXT:    movq %rax, %r15<br class="">; X64-NEXT:    movq %r12, %rcx<br class="">-; X64-NEXT:    addq %r15, %rcx<br class="">-; X64-NEXT:    adcq %r11, %r8<br class="">+; X64-NEXT:    addq %rax, %rcx<br class="">+; X64-NEXT:    adcq %rdx, %r8<br class="">; X64-NEXT:    addq %rbp, %rcx<br class="">; X64-NEXT:    adcq %rbx, %r8<br class="">; X64-NEXT:    addq -{{[0-9]+}}(%rsp), %rcx # 8-byte Folded Reload<br class="">@@ -8029,14 +8021,13 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    setb %r10b<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rsi # 8-byte Reload<br class="">; X64-NEXT:    movq %rsi, %rax<br class="">-; X64-NEXT:    movq %r8, %rdi<br class="">-; X64-NEXT:    mulq %rdi<br class="">+; X64-NEXT:    mulq %r8<br class="">; X64-NEXT:    movq %rdx, %rcx<br class="">; X64-NEXT:    movq %rax, %r9<br class="">; X64-NEXT:    movq -{{[0-9]+}}(%rsp), %rbp # 8-byte Reload<br class="">; X64-NEXT:    movq %rbp, %rax<br class="">-; X64-NEXT:    mulq %rdi<br class="">-; X64-NEXT:    movq %rdi, %r12<br class="">+; X64-NEXT:    mulq %r8<br class="">+; X64-NEXT:    movq %r8, %r12<br class="">; X64-NEXT:    movq %rdx, %rdi<br class="">; X64-NEXT:    movq %rax, %rbx<br class="">; X64-NEXT:    addq %rcx, %rbx<br class="">@@ -8075,7 +8066,7 @@ define void @test_1024(i1024* %a, i1024*<br class="">; X64-NEXT:    imulq %rcx, %rdi<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">; X64-NEXT:    movq %r12, %rsi<br class="">-; X64-NEXT:    mulq %rsi<br class="">+; X64-NEXT:    mulq %r12<br class="">; X64-NEXT:    movq %rax, %r9<br class="">; X64-NEXT:    addq %rdi, %rdx<br class="">; X64-NEXT:    movq 104(%rbp), %r8<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/mul-i256.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i256.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i256.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/mul-i256.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/mul-i256.ll Tue Feb 27 08:59:10 2018<br class="">@@ -44,7 +44,7 @@ define void @test(i256* %a, i256* %b, i2<br class="">; X32-NEXT:    movl %edi, %eax<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %ecx, %edi<br class="">-; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %ecx<br class="">; X32-NEXT:    addl %ebx, %eax<br class="">; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">@@ -62,9 +62,9 @@ define void @test(i256* %a, i256* %b, i2<br class="">; X32-NEXT:    movl %ecx, %eax<br class="">; X32-NEXT:    mull %edx<br class="">; X32-NEXT:    movl %edx, %ebp<br class="">-; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %eax, %esi<br class="">-; X32-NEXT:    movl %esi, (%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %eax, (%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload<br class="">; X32-NEXT:    xorl %edx, %edx<br class="">; X32-NEXT:    mull %edx<br class="">@@ -127,7 +127,7 @@ define void @test(i256* %a, i256* %b, i2<br class="">; X32-NEXT:    adcl $0, {{[0-9]+}}(%esp) # 4-byte Folded Spill<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax<br class="">; X32-NEXT:    movl %eax, %ecx<br class="">-; X32-NEXT:    movl 8(%ecx), %ebx<br class="">+; X32-NEXT:    movl 8(%eax), %ebx<br class="">; X32-NEXT:    movl %esi, %eax<br class="">; X32-NEXT:    movl %esi, %edi<br class="">; X32-NEXT:    mull %ebx<br class="">@@ -156,7 +156,7 @@ define void @test(i256* %a, i256* %b, i2<br class="">; X32-NEXT:    movzbl {{[0-9]+}}(%esp), %eax # 1-byte Folded Reload<br class="">; X32-NEXT:    adcl %eax, %esi<br class="">; X32-NEXT:    movl %ebx, %edi<br class="">-; X32-NEXT:    movl %edi, %eax<br class="">+; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    xorl %ecx, %ecx<br class="">; X32-NEXT:    mull %ecx<br class="">; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/mul-i512.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i512.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul-i512.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/mul-i512.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/mul-i512.ll Tue Feb 27 08:59:10 2018<br class="">@@ -31,7 +31,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    movl %edi, (%esp) # 4-byte Spill<br class="">; X32-NEXT:    adcl %ecx, %ebx<br class="">; X32-NEXT:    movl %ecx, %edi<br class="">-; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    setb %cl<br class="">; X32-NEXT:    addl %eax, %ebx<br class="">; X32-NEXT:    movzbl %cl, %ecx<br class="">@@ -55,7 +55,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %eax, %ebp<br class="">; X32-NEXT:    movl %edx, %edi<br class="">-; X32-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl 4(%ecx), %eax<br class="">; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %ecx, %esi<br class="">@@ -92,14 +92,13 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    adcl %edi, %eax<br class="">; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx<br class="">-; X32-NEXT:    movl %ecx, %eax<br class="">-; X32-NEXT:    movl (%eax), %eax<br class="">+; X32-NEXT:    movl (%ecx), %eax<br class="">; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    xorl %ebp, %ebp<br class="">; X32-NEXT:    mull %ebp<br class="">; X32-NEXT:    movl %edx, %ebx<br class="">; X32-NEXT:    movl %eax, %ecx<br class="">-; X32-NEXT:    movl %ecx, %edx<br class="">+; X32-NEXT:    movl %eax, %edx<br class="">; X32-NEXT:    addl %esi, %edx<br class="">; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">@@ -113,7 +112,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %ecx, %edi<br class="">; X32-NEXT:    movl %ecx, %ebp<br class="">-; X32-NEXT:    movl %ebp, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    addl %eax, %edi<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    adcl %edx, %eax<br class="">@@ -143,7 +142,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    adcl %ebx, %ecx<br class="">; X32-NEXT:    movl %ebx, %esi<br class="">-; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    setb %bl<br class="">; X32-NEXT:    addl %eax, %ecx<br class="">; X32-NEXT:    movzbl %bl, %ebx<br class="">@@ -278,7 +277,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    adcl %ebx, %ecx<br class="">; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill<br class="">; X32-NEXT:    movl %edi, %ebp<br class="">-; X32-NEXT:    movl %ebp, %eax<br class="">+; X32-NEXT:    movl %edi, %eax<br class="">; X32-NEXT:    mull %esi<br class="">; X32-NEXT:    movl %edx, %edi<br class="">; X32-NEXT:    movl %eax, %ebx<br class="">@@ -433,7 +432,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    adcl %edi, %ecx<br class="">; X32-NEXT:    setb {{[0-9]+}}(%esp) # 1-byte Folded Spill<br class="">; X32-NEXT:    movl %ebx, %edi<br class="">-; X32-NEXT:    movl %edi, %eax<br class="">+; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    mull %esi<br class="">; X32-NEXT:    movl %eax, %ebp<br class="">; X32-NEXT:    addl %ecx, %ebp<br class="">@@ -899,7 +898,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    movl %ecx, %eax<br class="">; X32-NEXT:    mull %esi<br class="">; X32-NEXT:    movl %esi, %ecx<br class="">-; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">+; X32-NEXT:    movl %esi, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl %edx, %esi<br class="">; X32-NEXT:    addl %ebx, %eax<br class="">; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">@@ -929,7 +928,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload<br class="">; X32-NEXT:    movl %ecx, %eax<br class="">; X32-NEXT:    movl %ebx, %esi<br class="">-; X32-NEXT:    mull %esi<br class="">+; X32-NEXT:    mull %ebx<br class="">; X32-NEXT:    movl %edx, %edi<br class="">; X32-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %ebx # 4-byte Reload<br class="">@@ -1077,7 +1076,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    addl %esi, %edx<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload<br class="">; X32-NEXT:    movl %edi, %eax<br class="">-; X32-NEXT:    imull %eax, %esi<br class="">+; X32-NEXT:    imull %edi, %esi<br class="">; X32-NEXT:    addl %edx, %esi<br class="">; X32-NEXT:    addl {{[0-9]+}}(%esp), %ecx # 4-byte Folded Reload<br class="">; X32-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">@@ -1177,7 +1176,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi<br class="">; X32-NEXT:    movl %esi, %ecx<br class="">-; X32-NEXT:    movl 40(%ecx), %ebx<br class="">+; X32-NEXT:    movl 40(%esi), %ebx<br class="">; X32-NEXT:    movl %ebx, %eax<br class="">; X32-NEXT:    movl %ebx, {{[0-9]+}}(%esp) # 4-byte Spill<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %esi # 4-byte Reload<br class="">@@ -1374,7 +1373,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X32-NEXT:    addl %edi, %edx<br class="">; X32-NEXT:    movl 60(%ebx), %ebx<br class="">; X32-NEXT:    movl %ecx, %eax<br class="">-; X32-NEXT:    imull %eax, %ebx<br class="">+; X32-NEXT:    imull %ecx, %ebx<br class="">; X32-NEXT:    addl %edx, %ebx<br class="">; X32-NEXT:    movl {{[0-9]+}}(%esp), %ecx # 4-byte Reload<br class="">; X32-NEXT:    addl %ecx, {{[0-9]+}}(%esp) # 4-byte Folded Spill<br class="">@@ -1546,7 +1545,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X64-NEXT:    movq 8(%rsi), %rbp<br class="">; X64-NEXT:    movq %r15, %rax<br class="">; X64-NEXT:    movq %rdx, %rsi<br class="">-; X64-NEXT:    mulq %rsi<br class="">+; X64-NEXT:    mulq %rdx<br class="">; X64-NEXT:    movq %rdx, %r9<br class="">; X64-NEXT:    movq %rax, %r8<br class="">; X64-NEXT:    movq %r11, %rax<br class="">@@ -1569,15 +1568,15 @@ define void @test_512(i512* %a, i512* %b<br class="">; X64-NEXT:    movq %r11, %rax<br class="">; X64-NEXT:    mulq %rbp<br class="">; X64-NEXT:    movq %rbp, %r14<br class="">-; X64-NEXT:    movq %r14, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rbp, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rdx, %rsi<br class="">; X64-NEXT:    movq %rax, %rbp<br class="">; X64-NEXT:    addq %rcx, %rbp<br class="">; X64-NEXT:    adcq %rbx, %rsi<br class="">; X64-NEXT:    xorl %ecx, %ecx<br class="">; X64-NEXT:    movq %r10, %rbx<br class="">-; X64-NEXT:    movq %rbx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">-; X64-NEXT:    movq %rbx, %rax<br class="">+; X64-NEXT:    movq %r10, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %r10, %rax<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rdx, %r13<br class="">; X64-NEXT:    movq %rax, %r10<br class="">@@ -1585,7 +1584,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rax, %r15<br class="">-; X64-NEXT:    movq %r15, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    addq %r10, %r15<br class="">; X64-NEXT:    adcq %r13, %rdx<br class="">; X64-NEXT:    addq %rbp, %r15<br class="">@@ -1624,8 +1623,8 @@ define void @test_512(i512* %a, i512* %b<br class="">; X64-NEXT:    mulq %rdx<br class="">; X64-NEXT:    movq %rdx, %r14<br class="">; X64-NEXT:    movq %rax, %r11<br class="">-; X64-NEXT:    addq %r11, %r10<br class="">-; X64-NEXT:    adcq %r14, %r13<br class="">+; X64-NEXT:    addq %rax, %r10<br class="">+; X64-NEXT:    adcq %rdx, %r13<br class="">; X64-NEXT:    addq %rbp, %r10<br class="">; X64-NEXT:    adcq %rsi, %r13<br class="">; X64-NEXT:    addq %r8, %r10<br class="">@@ -1637,7 +1636,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X64-NEXT:    movq 16(%rsi), %r8<br class="">; X64-NEXT:    movq %rcx, %rax<br class="">; X64-NEXT:    movq %rcx, %r9<br class="">-; X64-NEXT:    movq %r9, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">+; X64-NEXT:    movq %rcx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    mulq %r8<br class="">; X64-NEXT:    movq %rdx, %rdi<br class="">; X64-NEXT:    movq %rax, %r12<br class="">@@ -1668,7 +1667,7 @@ define void @test_512(i512* %a, i512* %b<br class="">; X64-NEXT:    mulq %rcx<br class="">; X64-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp) # 8-byte Spill<br class="">; X64-NEXT:    movq %rax, %rbp<br class="">-; X64-NEXT:    addq %rbp, %r11<br class="">+; X64-NEXT:    addq %rax, %r11<br class="">; X64-NEXT:    adcq %rdx, %r14<br class="">; X64-NEXT:    addq %r9, %r11<br class="">; X64-NEXT:    adcq %rbx, %r14<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/mul128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mul128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/mul128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/mul128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -8,7 +8,7 @@ define i128 @foo(i128 %t, i128 %u) {<br class="">; X64-NEXT:    movq %rdx, %r8<br class="">; X64-NEXT:    imulq %rdi, %rcx<br class="">; X64-NEXT:    movq %rdi, %rax<br class="">-; X64-NEXT:    mulq %r8<br class="">+; X64-NEXT:    mulq %rdx<br class="">; X64-NEXT:    addq %rcx, %rdx<br class="">; X64-NEXT:    imulq %r8, %rsi<br class="">; X64-NEXT:    addq %rsi, %rdx<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/mulvi32.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mulvi32.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mulvi32.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/mulvi32.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/mulvi32.ll Tue Feb 27 08:59:10 2018<br class="">@@ -234,7 +234,7 @@ define <4 x i64> @_mul4xi32toi64b(<4 x i<br class="">; SSE-LABEL: _mul4xi32toi64b:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movdqa %xmm0, %xmm2<br class="">-; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[1,1,3,3]<br class="">+; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]<br class="">; SSE-NEXT:    pmuludq %xmm1, %xmm2<br class="">; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]<br class="">; SSE-NEXT:    pmuludq %xmm0, %xmm1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/musttail-varargs.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/musttail-varargs.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/musttail-varargs.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/musttail-varargs.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/musttail-varargs.ll Tue Feb 27 08:59:10 2018<br class="">@@ -209,9 +209,9 @@ define void @f_thunk(i8* %this, ...) {<br class="">; WINDOWS-NEXT:    movq %r8, %rdi<br class="">; WINDOWS-NEXT:    movq %rdx, %rbx<br class="">; WINDOWS-NEXT:    movq %rcx, %rbp<br class="">-; WINDOWS-NEXT:    movq %rsi, {{[0-9]+}}(%rsp)<br class="">-; WINDOWS-NEXT:    movq %rdi, {{[0-9]+}}(%rsp)<br class="">-; WINDOWS-NEXT:    movq %rbx, {{[0-9]+}}(%rsp)<br class="">+; WINDOWS-NEXT:    movq %r9, {{[0-9]+}}(%rsp)<br class="">+; WINDOWS-NEXT:    movq %r8, {{[0-9]+}}(%rsp)<br class="">+; WINDOWS-NEXT:    movq %rdx, {{[0-9]+}}(%rsp)<br class="">; WINDOWS-NEXT:    leaq {{[0-9]+}}(%rsp), %rax<br class="">; WINDOWS-NEXT:    movq %rax, {{[0-9]+}}(%rsp)<br class="">; WINDOWS-NEXT:    callq get_f<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/pmul.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pmul.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pmul.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/pmul.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/pmul.ll Tue Feb 27 08:59:10 2018<br class="">@@ -9,7 +9,7 @@ define <16 x i8> @mul_v16i8c(<16 x i8> %<br class="">; SSE2-LABEL: mul_v16i8c:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm0[8],xmm1[9],xmm0[9],xmm1[10],xmm0[10],xmm1[11],xmm0[11],xmm1[12],xmm0[12],xmm1[13],xmm0[13],xmm1[14],xmm0[14],xmm1[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm1<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [117,117,117,117,117,117,117,117]<br class="">; SSE2-NEXT:    pmullw %xmm2, %xmm1<br class="">@@ -143,10 +143,10 @@ define <16 x i8> @mul_v16i8(<16 x i8> %i<br class="">; SSE2-LABEL: mul_v16i8:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm3<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm3 = xmm3[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm0[8],xmm3[9],xmm0[9],xmm3[10],xmm0[10],xmm3[11],xmm0[11],xmm3[12],xmm0[12],xmm3[13],xmm0[13],xmm3[14],xmm0[14],xmm3[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm3<br class="">; SSE2-NEXT:    pmullw %xmm2, %xmm3<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm2 = [255,255,255,255,255,255,255,255]<br class="">@@ -386,7 +386,7 @@ define <32 x i8> @mul_v32i8c(<32 x i8> %<br class="">; SSE2-LABEL: mul_v32i8c:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm0[8],xmm2[9],xmm0[9],xmm2[10],xmm0[10],xmm2[11],xmm0[11],xmm2[12],xmm0[12],xmm2[13],xmm0[13],xmm2[14],xmm0[14],xmm2[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [117,117,117,117,117,117,117,117]<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm2<br class="">@@ -398,7 +398,7 @@ define <32 x i8> @mul_v32i8c(<32 x i8> %<br class="">; SSE2-NEXT:    pand %xmm4, %xmm0<br class="">; SSE2-NEXT:    packuswb %xmm2, %xmm0<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm2<br class="">; SSE2-NEXT:    pand %xmm4, %xmm2<br class="">@@ -567,10 +567,10 @@ define <32 x i8> @mul_v32i8(<32 x i8> %i<br class="">; SSE2-LABEL: mul_v32i8:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm2, %xmm4<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm2[8],xmm4[9],xmm2[9],xmm4[10],xmm2[10],xmm4[11],xmm2[11],xmm4[12],xmm2[12],xmm4[13],xmm2[13],xmm4[14],xmm2[14],xmm4[15],xmm2[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm4<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm5<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm0[8],xmm5[9],xmm0[9],xmm5[10],xmm0[10],xmm5[11],xmm0[11],xmm5[12],xmm0[12],xmm5[13],xmm0[13],xmm5[14],xmm0[14],xmm5[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm5<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm5<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [255,255,255,255,255,255,255,255]<br class="">@@ -583,10 +583,10 @@ define <32 x i8> @mul_v32i8(<32 x i8> %i<br class="">; SSE2-NEXT:    pand %xmm4, %xmm0<br class="">; SSE2-NEXT:    packuswb %xmm5, %xmm0<br class="">; SSE2-NEXT:    movdqa %xmm3, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm3[8],xmm2[9],xmm3[9],xmm2[10],xmm3[10],xmm2[11],xmm3[11],xmm2[12],xmm3[12],xmm2[13],xmm3[13],xmm2[14],xmm3[14],xmm2[15],xmm3[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm5<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm1[8],xmm5[9],xmm1[9],xmm5[10],xmm1[10],xmm5[11],xmm1[11],xmm5[12],xmm1[12],xmm5[13],xmm1[13],xmm5[14],xmm1[14],xmm5[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm5<br class="">; SSE2-NEXT:    pmullw %xmm2, %xmm5<br class="">; SSE2-NEXT:    pand %xmm4, %xmm5<br class="">@@ -774,7 +774,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %<br class="">; SSE2-LABEL: mul_v64i8c:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm6<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8],xmm0[8],xmm6[9],xmm0[9],xmm6[10],xmm0[10],xmm6[11],xmm0[11],xmm6[12],xmm0[12],xmm6[13],xmm0[13],xmm6[14],xmm0[14],xmm6[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm6<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm4 = [117,117,117,117,117,117,117,117]<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm6<br class="">@@ -786,7 +786,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %<br class="">; SSE2-NEXT:    pand %xmm5, %xmm0<br class="">; SSE2-NEXT:    packuswb %xmm6, %xmm0<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm6<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8],xmm1[8],xmm6[9],xmm1[9],xmm6[10],xmm1[10],xmm6[11],xmm1[11],xmm6[12],xmm1[12],xmm6[13],xmm1[13],xmm6[14],xmm1[14],xmm6[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm6<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm6<br class="">; SSE2-NEXT:    pand %xmm5, %xmm6<br class="">@@ -796,7 +796,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %<br class="">; SSE2-NEXT:    pand %xmm5, %xmm1<br class="">; SSE2-NEXT:    packuswb %xmm6, %xmm1<br class="">; SSE2-NEXT:    movdqa %xmm2, %xmm6<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8],xmm2[8],xmm6[9],xmm2[9],xmm6[10],xmm2[10],xmm6[11],xmm2[11],xmm6[12],xmm2[12],xmm6[13],xmm2[13],xmm6[14],xmm2[14],xmm6[15],xmm2[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm6<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm6<br class="">; SSE2-NEXT:    pand %xmm5, %xmm6<br class="">@@ -806,7 +806,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %<br class="">; SSE2-NEXT:    pand %xmm5, %xmm2<br class="">; SSE2-NEXT:    packuswb %xmm6, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm3, %xmm6<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm6 = xmm6[8],xmm3[8],xmm6[9],xmm3[9],xmm6[10],xmm3[10],xmm6[11],xmm3[11],xmm6[12],xmm3[12],xmm6[13],xmm3[13],xmm6[14],xmm3[14],xmm6[15],xmm3[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm6<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm6<br class="">; SSE2-NEXT:    pand %xmm5, %xmm6<br class="">@@ -821,7 +821,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %<br class="">; SSE41:       # %bb.0: # %entry<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE41-NEXT:    pmovsxbw %xmm1, %xmm0<br class="">+; SSE41-NEXT:    pmovsxbw %xmm0, %xmm0<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm6 = [117,117,117,117,117,117,117,117]<br class="">; SSE41-NEXT:    pmullw %xmm6, %xmm0<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm7 = [255,255,255,255,255,255,255,255]<br class="">@@ -939,10 +939,10 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i<br class="">; SSE2-LABEL: mul_v64i8:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm4, %xmm8<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm8 = xmm8[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm8 = xmm8[8],xmm4[8],xmm8[9],xmm4[9],xmm8[10],xmm4[10],xmm8[11],xmm4[11],xmm8[12],xmm4[12],xmm8[13],xmm4[13],xmm8[14],xmm4[14],xmm8[15],xmm4[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm8<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm9<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm9 = xmm9[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm0[8],xmm9[9],xmm0[9],xmm9[10],xmm0[10],xmm9[11],xmm0[11],xmm9[12],xmm0[12],xmm9[13],xmm0[13],xmm9[14],xmm0[14],xmm9[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm9<br class="">; SSE2-NEXT:    pmullw %xmm8, %xmm9<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm8 = [255,255,255,255,255,255,255,255]<br class="">@@ -955,10 +955,10 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i<br class="">; SSE2-NEXT:    pand %xmm8, %xmm0<br class="">; SSE2-NEXT:    packuswb %xmm9, %xmm0<br class="">; SSE2-NEXT:    movdqa %xmm5, %xmm9<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm9 = xmm9[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm9 = xmm9[8],xmm5[8],xmm9[9],xmm5[9],xmm9[10],xmm5[10],xmm9[11],xmm5[11],xmm9[12],xmm5[12],xmm9[13],xmm5[13],xmm9[14],xmm5[14],xmm9[15],xmm5[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm9<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm4<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm1[8],xmm4[9],xmm1[9],xmm4[10],xmm1[10],xmm4[11],xmm1[11],xmm4[12],xmm1[12],xmm4[13],xmm1[13],xmm4[14],xmm1[14],xmm4[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm4<br class="">; SSE2-NEXT:    pmullw %xmm9, %xmm4<br class="">; SSE2-NEXT:    pand %xmm8, %xmm4<br class="">@@ -970,10 +970,10 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i<br class="">; SSE2-NEXT:    pand %xmm8, %xmm1<br class="">; SSE2-NEXT:    packuswb %xmm4, %xmm1<br class="">; SSE2-NEXT:    movdqa %xmm6, %xmm4<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm6[8],xmm4[9],xmm6[9],xmm4[10],xmm6[10],xmm4[11],xmm6[11],xmm4[12],xmm6[12],xmm4[13],xmm6[13],xmm4[14],xmm6[14],xmm4[15],xmm6[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm4<br class="">; SSE2-NEXT:    movdqa %xmm2, %xmm5<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm2[8],xmm5[9],xmm2[9],xmm5[10],xmm2[10],xmm5[11],xmm2[11],xmm5[12],xmm2[12],xmm5[13],xmm2[13],xmm5[14],xmm2[14],xmm5[15],xmm2[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm5<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm5<br class="">; SSE2-NEXT:    pand %xmm8, %xmm5<br class="">@@ -985,10 +985,10 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i<br class="">; SSE2-NEXT:    pand %xmm8, %xmm2<br class="">; SSE2-NEXT:    packuswb %xmm5, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm7, %xmm4<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm7[8],xmm4[9],xmm7[9],xmm4[10],xmm7[10],xmm4[11],xmm7[11],xmm4[12],xmm7[12],xmm4[13],xmm7[13],xmm4[14],xmm7[14],xmm4[15],xmm7[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm4<br class="">; SSE2-NEXT:    movdqa %xmm3, %xmm5<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm5 = xmm5[8],xmm3[8],xmm5[9],xmm3[9],xmm5[10],xmm3[10],xmm5[11],xmm3[11],xmm5[12],xmm3[12],xmm5[13],xmm3[13],xmm5[14],xmm3[14],xmm5[15],xmm3[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm5<br class="">; SSE2-NEXT:    pmullw %xmm4, %xmm5<br class="">; SSE2-NEXT:    pand %xmm8, %xmm5<br class="">@@ -1006,7 +1006,7 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm8<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSE41-NEXT:    pmovsxbw %xmm4, %xmm9<br class="">-; SSE41-NEXT:    pmovsxbw %xmm1, %xmm0<br class="">+; SSE41-NEXT:    pmovsxbw %xmm0, %xmm0<br class="">; SSE41-NEXT:    pmullw %xmm9, %xmm0<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm9 = [255,255,255,255,255,255,255,255]<br class="">; SSE41-NEXT:    pand %xmm9, %xmm0<br class="">@@ -1383,7 +1383,7 @@ define <8 x i64> @mul_v8i64_sext(<8 x i1<br class="">; SSE2:       # %bb.0:<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm4<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE2-NEXT:    punpckhwd {{.*#+}} xmm9 = xmm9[4],xmm1[4],xmm9[5],xmm1[5],xmm9[6],xmm1[6],xmm9[7],xmm1[7]<br class="">+; SSE2-NEXT:    punpckhwd {{.*#+}} xmm9 = xmm9[4],xmm0[4],xmm9[5],xmm0[5],xmm9[6],xmm0[6],xmm9[7],xmm0[7]<br class="">; SSE2-NEXT:    movdqa %xmm9, %xmm0<br class="">; SSE2-NEXT:    psrad $31, %xmm0<br class="">; SSE2-NEXT:    psrad $16, %xmm9<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/powi.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/powi.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/powi.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/powi.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/powi.ll Tue Feb 27 08:59:10 2018<br class="">@@ -5,7 +5,7 @@ define double @pow_wrapper(double %a) no<br class="">; CHECK-LABEL: pow_wrapper:<br class="">; CHECK:       # %bb.0:<br class="">; CHECK-NEXT:    movapd %xmm0, %xmm1<br class="">-; CHECK-NEXT:    mulsd %xmm1, %xmm1<br class="">+; CHECK-NEXT:    mulsd %xmm0, %xmm1<br class="">; CHECK-NEXT:    mulsd %xmm1, %xmm0<br class="">; CHECK-NEXT:    mulsd %xmm1, %xmm1<br class="">; CHECK-NEXT:    mulsd %xmm1, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/pr11334.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr11334.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr11334.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/pr11334.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/pr11334.ll Tue Feb 27 08:59:10 2018<br class="">@@ -25,7 +25,7 @@ define <3 x double> @v3f2d_ext_vec(<3 x<br class="">; SSE-NEXT:    cvtps2pd %xmm0, %xmm0<br class="">; SSE-NEXT:    movlps %xmm0, -{{[0-9]+}}(%rsp)<br class="">; SSE-NEXT:    movaps %xmm2, %xmm1<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm1 = xmm2[1],xmm1[1]<br class="">; SSE-NEXT:    fldl -{{[0-9]+}}(%rsp)<br class="">; SSE-NEXT:    movaps %xmm2, %xmm0<br class="">; SSE-NEXT:    retq<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/pr29112.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr29112.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr29112.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/pr29112.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/pr29112.ll Tue Feb 27 08:59:10 2018<br class="">@@ -49,13 +49,13 @@ define <4 x float> @bar(<4 x float>* %a1<br class="">; CHECK-NEXT:    vinsertps {{.*#+}} xmm2 = xmm2[0,1,2],xmm12[0]<br class="">; CHECK-NEXT:    vaddps %xmm3, %xmm2, %xmm2<br class="">; CHECK-NEXT:    vmovaps %xmm15, %xmm1<br class="">-; CHECK-NEXT:    vmovaps %xmm1, {{[0-9]+}}(%rsp) # 16-byte Spill<br class="">-; CHECK-NEXT:    vaddps %xmm0, %xmm1, %xmm9<br class="">+; CHECK-NEXT:    vmovaps %xmm15, {{[0-9]+}}(%rsp) # 16-byte Spill<br class="">+; CHECK-NEXT:    vaddps %xmm0, %xmm15, %xmm9<br class="">; CHECK-NEXT:    vaddps %xmm14, %xmm10, %xmm0<br class="">-; CHECK-NEXT:    vaddps %xmm1, %xmm1, %xmm8<br class="">+; CHECK-NEXT:    vaddps %xmm15, %xmm15, %xmm8<br class="">; CHECK-NEXT:    vaddps %xmm11, %xmm3, %xmm3<br class="">; CHECK-NEXT:    vaddps %xmm0, %xmm3, %xmm0<br class="">-; CHECK-NEXT:    vaddps %xmm0, %xmm1, %xmm0<br class="">+; CHECK-NEXT:    vaddps %xmm0, %xmm15, %xmm0<br class="">; CHECK-NEXT:    vmovaps %xmm8, {{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    vmovaps %xmm9, (%rsp)<br class="">; CHECK-NEXT:    vmovaps {{[0-9]+}}(%rsp), %xmm3 # 16-byte Reload<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/pr34080-2.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr34080-2.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr34080-2.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/pr34080-2.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/pr34080-2.ll Tue Feb 27 08:59:10 2018<br class="">@@ -23,7 +23,7 @@ define void @computeJD(%struct.DateTime*<br class="">; CHECK-NEXT:    movl %esi, %eax<br class="">; CHECK-NEXT:    imull %ecx<br class="">; CHECK-NEXT:    movl %edx, %ecx<br class="">-; CHECK-NEXT:    movl %ecx, %eax<br class="">+; CHECK-NEXT:    movl %edx, %eax<br class="">; CHECK-NEXT:    shrl $31, %eax<br class="">; CHECK-NEXT:    sarl $5, %ecx<br class="">; CHECK-NEXT:    addl %eax, %ecx<br class="">@@ -31,7 +31,7 @@ define void @computeJD(%struct.DateTime*<br class="">; CHECK-NEXT:    movl %esi, %eax<br class="">; CHECK-NEXT:    imull %edx<br class="">; CHECK-NEXT:    movl %edx, %edi<br class="">-; CHECK-NEXT:    movl %edi, %eax<br class="">+; CHECK-NEXT:    movl %edx, %eax<br class="">; CHECK-NEXT:    shrl $31, %eax<br class="">; CHECK-NEXT:    sarl $7, %edi<br class="">; CHECK-NEXT:    addl %eax, %edi<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/retpoline-external.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/retpoline-external.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/retpoline-external.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/retpoline-external.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/retpoline-external.ll Tue Feb 27 08:59:10 2018<br class="">@@ -19,7 +19,7 @@ entry:<br class="">; X64-LABEL: icall_reg:<br class="">; X64-DAG:   movq %rdi, %[[fp:[^ ]*]]<br class="">; X64-DAG:   movl %esi, %[[x:[^ ]*]]<br class="">-; X64:       movl %[[x]], %edi<br class="">+; X64:       movl %esi, %edi<br class="">; X64:       callq bar<br class="">; X64-DAG:   movl %[[x]], %edi<br class="">; X64-DAG:   movq %[[fp]], %r11<br class="">@@ -111,7 +111,7 @@ define void @vcall(%struct.Foo* %obj) #0<br class=""><br class="">; X64-LABEL: vcall:<br class="">; X64:       movq %rdi, %[[obj:[^ ]*]]<br class="">-; X64:       movq (%[[obj]]), %[[vptr:[^ ]*]]<br class="">+; X64:       movq (%rdi), %[[vptr:[^ ]*]]<br class="">; X64:       movq 8(%[[vptr]]), %[[fp:[^ ]*]]<br class="">; X64:       movq %[[fp]], %r11<br class="">; X64:       callq __x86_indirect_thunk_r11<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/retpoline.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/retpoline.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/retpoline.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/retpoline.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/retpoline.ll Tue Feb 27 08:59:10 2018<br class="">@@ -19,7 +19,7 @@ entry:<br class="">; X64-LABEL: icall_reg:<br class="">; X64-DAG:   movq %rdi, %[[fp:[^ ]*]]<br class="">; X64-DAG:   movl %esi, %[[x:[^ ]*]]<br class="">-; X64:       movl %[[x]], %edi<br class="">+; X64:       movl %esi, %edi<br class="">; X64:       callq bar<br class="">; X64-DAG:   movl %[[x]], %edi<br class="">; X64-DAG:   movq %[[fp]], %r11<br class="">@@ -111,7 +111,7 @@ define void @vcall(%struct.Foo* %obj) #0<br class=""><br class="">; X64-LABEL: vcall:<br class="">; X64:       movq %rdi, %[[obj:[^ ]*]]<br class="">-; X64:       movq (%[[obj]]), %[[vptr:[^ ]*]]<br class="">+; X64:       movq (%rdi), %[[vptr:[^ ]*]]<br class="">; X64:       movq 8(%[[vptr]]), %[[fp:[^ ]*]]<br class="">; X64:       movq %[[fp]], %r11<br class="">; X64:       callq __llvm_retpoline_r11<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/sad.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sad.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sad.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/sad.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/sad.ll Tue Feb 27 08:59:10 2018<br class="">@@ -670,7 +670,7 @@ define i32 @sad_avx64i8() nounwind {<br class="">; SSE2-NEXT:    paddd %xmm7, %xmm0<br class="">; SSE2-NEXT:    movdqa %xmm0, -{{[0-9]+}}(%rsp) # 16-byte Spill<br class="">; SSE2-NEXT:    movdqa %xmm13, %xmm1<br class="">-; SSE2-NEXT:    movdqa %xmm1, %xmm0<br class="">+; SSE2-NEXT:    movdqa %xmm13, %xmm0<br class="">; SSE2-NEXT:    psrad $31, %xmm0<br class="">; SSE2-NEXT:    paddd %xmm0, %xmm1<br class="">; SSE2-NEXT:    pxor %xmm0, %xmm1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/safestack.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/safestack.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/safestack.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/safestack.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/safestack.ll Tue Feb 27 08:59:10 2018<br class="">@@ -40,6 +40,6 @@ declare void @_Z7CapturePi(i32*)<br class=""><br class="">; LINUX-I386-PA: calll __safestack_pointer_address<br class="">; LINUX-I386-PA: movl %eax, %[[A:.*]]<br class="">-; LINUX-I386-PA: movl (%[[A]]), %[[B:.*]]<br class="">+; LINUX-I386-PA: movl (%eax), %[[B:.*]]<br class="">; LINUX-I386-PA: leal -16(%[[B]]), %[[C:.*]]<br class="">; LINUX-I386-PA: movl %[[C]], (%[[A]])<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/safestack_inline.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/safestack_inline.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/safestack_inline.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/safestack_inline.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/safestack_inline.ll Tue Feb 27 08:59:10 2018<br class="">@@ -25,6 +25,6 @@ declare void @_Z7CapturePi(i32*)<br class=""><br class="">; CALL: callq __safestack_pointer_address<br class="">; CALL: movq %rax, %[[A:.*]]<br class="">-; CALL: movq (%[[A]]), %[[B:.*]]<br class="">+; CALL: movq (%rax), %[[B:.*]]<br class="">; CALL: leaq -16(%[[B]]), %[[C:.*]]<br class="">; CALL: movq %[[C]], (%[[A]])<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/scalar_widen_div.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/scalar_widen_div.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/scalar_widen_div.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/scalar_widen_div.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/scalar_widen_div.ll Tue Feb 27 08:59:10 2018<br class="">@@ -11,7 +11,7 @@ define void @vectorDiv (<2 x i32> addrsp<br class="">; CHECK-NEXT:    movq %rdx, %r8<br class="">; CHECK-NEXT:    movq %rdi, -{{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    movq %rsi, -{{[0-9]+}}(%rsp)<br class="">-; CHECK-NEXT:    movq %r8, -{{[0-9]+}}(%rsp)<br class="">+; CHECK-NEXT:    movq %rdx, -{{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    movslq -{{[0-9]+}}(%rsp), %rcx<br class="">; CHECK-NEXT:    pmovsxdq (%rdi,%rcx,8), %xmm0<br class="">; CHECK-NEXT:    pmovsxdq (%rsi,%rcx,8), %xmm1<br class="">@@ -403,7 +403,7 @@ define void @test_int_div(<3 x i32>* %de<br class="">; CHECK-LABEL: test_int_div:<br class="">; CHECK:       # %bb.0: # %entry<br class="">; CHECK-NEXT:    movl %edx, %r9d<br class="">-; CHECK-NEXT:    testl %r9d, %r9d<br class="">+; CHECK-NEXT:    testl %edx, %edx<br class="">; CHECK-NEXT:    jle .LBB12_3<br class="">; CHECK-NEXT:  # %bb.1: # %bb.nph<br class="">; CHECK-NEXT:    xorl %ecx, %ecx<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/select.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/select.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/select.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/select.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/select.ll Tue Feb 27 08:59:10 2018<br class="">@@ -22,8 +22,7 @@ define i32 @test1(%0* %p, %0* %q, i1 %r)<br class="">; MCU-NEXT:    jne .LBB0_1<br class="">; MCU-NEXT:  # %bb.2:<br class="">; MCU-NEXT:    addl $8, %edx<br class="">-; MCU-NEXT:    movl %edx, %eax<br class="">-; MCU-NEXT:    movl (%eax), %eax<br class="">+; MCU-NEXT:    movl (%edx), %eax<br class="">; MCU-NEXT:    retl<br class="">; MCU-NEXT:  .LBB0_1:<br class="">; MCU-NEXT:    addl $8, %eax<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/shrink-wrap-chkstk.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/shrink-wrap-chkstk.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/shrink-wrap-chkstk.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/shrink-wrap-chkstk.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/shrink-wrap-chkstk.ll Tue Feb 27 08:59:10 2018<br class="">@@ -61,7 +61,7 @@ false:<br class=""><br class="">; CHECK-LABEL: @use_eax_before_prologue@8: # @use_eax_before_prologue<br class="">; CHECK: movl %ecx, %eax<br class="">-; CHECK: cmpl %edx, %eax<br class="">+; CHECK: cmpl %edx, %ecx<br class="">; CHECK: jge LBB1_2<br class="">; CHECK: pushl %eax<br class="">; CHECK: movl $4092, %eax<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/slow-pmulld.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/slow-pmulld.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/slow-pmulld.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/slow-pmulld.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/slow-pmulld.ll Tue Feb 27 08:59:10 2018<br class="">@@ -614,7 +614,7 @@ define <16 x i32> @test_mul_v16i32_v16i1<br class="">; SLOW32-NEXT:    movdqa %xmm1, %xmm3<br class="">; SLOW32-NEXT:    movdqa %xmm0, %xmm1<br class="">; SLOW32-NEXT:    movdqa {{.*#+}} xmm2 = [18778,18778,18778,18778,18778,18778,18778,18778]<br class="">-; SLOW32-NEXT:    movdqa %xmm1, %xmm4<br class="">+; SLOW32-NEXT:    movdqa %xmm0, %xmm4<br class="">; SLOW32-NEXT:    pmulhuw %xmm2, %xmm4<br class="">; SLOW32-NEXT:    pmullw %xmm2, %xmm1<br class="">; SLOW32-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -633,7 +633,7 @@ define <16 x i32> @test_mul_v16i32_v16i1<br class="">; SLOW64-NEXT:    movdqa %xmm1, %xmm3<br class="">; SLOW64-NEXT:    movdqa %xmm0, %xmm1<br class="">; SLOW64-NEXT:    movdqa {{.*#+}} xmm2 = [18778,18778,18778,18778,18778,18778,18778,18778]<br class="">-; SLOW64-NEXT:    movdqa %xmm1, %xmm4<br class="">+; SLOW64-NEXT:    movdqa %xmm0, %xmm4<br class="">; SLOW64-NEXT:    pmulhuw %xmm2, %xmm4<br class="">; SLOW64-NEXT:    pmullw %xmm2, %xmm1<br class="">; SLOW64-NEXT:    movdqa %xmm1, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/sqrt-fastmath.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sqrt-fastmath.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sqrt-fastmath.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/sqrt-fastmath.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/sqrt-fastmath.ll Tue Feb 27 08:59:10 2018<br class="">@@ -201,7 +201,7 @@ define float @f32_estimate(float %x) #1<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    rsqrtss %xmm0, %xmm1<br class="">; SSE-NEXT:    movaps %xmm1, %xmm2<br class="">-; SSE-NEXT:    mulss %xmm2, %xmm2<br class="">+; SSE-NEXT:    mulss %xmm1, %xmm2<br class="">; SSE-NEXT:    mulss %xmm0, %xmm2<br class="">; SSE-NEXT:    addss {{.*}}(%rip), %xmm2<br class="">; SSE-NEXT:    mulss {{.*}}(%rip), %xmm1<br class="">@@ -247,7 +247,7 @@ define <4 x float> @v4f32_estimate(<4 x<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    rsqrtps %xmm0, %xmm1<br class="">; SSE-NEXT:    movaps %xmm1, %xmm2<br class="">-; SSE-NEXT:    mulps %xmm2, %xmm2<br class="">+; SSE-NEXT:    mulps %xmm1, %xmm2<br class="">; SSE-NEXT:    mulps %xmm0, %xmm2<br class="">; SSE-NEXT:    addps {{.*}}(%rip), %xmm2<br class="">; SSE-NEXT:    mulps {{.*}}(%rip), %xmm1<br class="">@@ -297,7 +297,7 @@ define <8 x float> @v8f32_estimate(<8 x<br class="">; SSE-NEXT:    rsqrtps %xmm0, %xmm3<br class="">; SSE-NEXT:    movaps {{.*#+}} xmm4 = [-5.000000e-01,-5.000000e-01,-5.000000e-01,-5.000000e-01]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm2<br class="">-; SSE-NEXT:    mulps %xmm2, %xmm2<br class="">+; SSE-NEXT:    mulps %xmm3, %xmm2<br class="">; SSE-NEXT:    mulps %xmm0, %xmm2<br class="">; SSE-NEXT:    movaps {{.*#+}} xmm0 = [-3.000000e+00,-3.000000e+00,-3.000000e+00,-3.000000e+00]<br class="">; SSE-NEXT:    addps %xmm0, %xmm2<br class="">@@ -305,7 +305,7 @@ define <8 x float> @v8f32_estimate(<8 x<br class="">; SSE-NEXT:    mulps %xmm3, %xmm2<br class="">; SSE-NEXT:    rsqrtps %xmm1, %xmm5<br class="">; SSE-NEXT:    movaps %xmm5, %xmm3<br class="">-; SSE-NEXT:    mulps %xmm3, %xmm3<br class="">+; SSE-NEXT:    mulps %xmm5, %xmm3<br class="">; SSE-NEXT:    mulps %xmm1, %xmm3<br class="">; SSE-NEXT:    addps %xmm0, %xmm3<br class="">; SSE-NEXT:    mulps %xmm4, %xmm3<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/sse-scalar-fp-arith.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse-scalar-fp-arith.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse-scalar-fp-arith.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/sse-scalar-fp-arith.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/sse-scalar-fp-arith.ll Tue Feb 27 08:59:10 2018<br class="">@@ -1084,8 +1084,7 @@ define <4 x float> @add_ss_mask(<4 x flo<br class="">; SSE2-NEXT:    testb $1, %dil<br class="">; SSE2-NEXT:    jne .LBB62_1<br class="">; SSE2-NEXT:  # %bb.2:<br class="">-; SSE2-NEXT:    movaps %xmm2, %xmm1<br class="">-; SSE2-NEXT:    movss {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]<br class="">+; SSE2-NEXT:    movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]<br class="">; SSE2-NEXT:    retq<br class="">; SSE2-NEXT:  .LBB62_1:<br class="">; SSE2-NEXT:    addss %xmm0, %xmm1<br class="">@@ -1097,8 +1096,7 @@ define <4 x float> @add_ss_mask(<4 x flo<br class="">; SSE41-NEXT:    testb $1, %dil<br class="">; SSE41-NEXT:    jne .LBB62_1<br class="">; SSE41-NEXT:  # %bb.2:<br class="">-; SSE41-NEXT:    movaps %xmm2, %xmm1<br class="">-; SSE41-NEXT:    blendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2,3]<br class="">+; SSE41-NEXT:    blendps {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]<br class="">; SSE41-NEXT:    retq<br class="">; SSE41-NEXT:  .LBB62_1:<br class="">; SSE41-NEXT:    addss %xmm0, %xmm1<br class="">@@ -1138,8 +1136,7 @@ define <2 x double> @add_sd_mask(<2 x do<br class="">; SSE2-NEXT:    testb $1, %dil<br class="">; SSE2-NEXT:    jne .LBB63_1<br class="">; SSE2-NEXT:  # %bb.2:<br class="">-; SSE2-NEXT:    movapd %xmm2, %xmm1<br class="">-; SSE2-NEXT:    movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]<br class="">+; SSE2-NEXT:    movsd {{.*#+}} xmm0 = xmm2[0],xmm0[1]<br class="">; SSE2-NEXT:    retq<br class="">; SSE2-NEXT:  .LBB63_1:<br class="">; SSE2-NEXT:    addsd %xmm0, %xmm1<br class="">@@ -1151,8 +1148,7 @@ define <2 x double> @add_sd_mask(<2 x do<br class="">; SSE41-NEXT:    testb $1, %dil<br class="">; SSE41-NEXT:    jne .LBB63_1<br class="">; SSE41-NEXT:  # %bb.2:<br class="">-; SSE41-NEXT:    movaps %xmm2, %xmm1<br class="">-; SSE41-NEXT:    blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]<br class="">+; SSE41-NEXT:    blendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3]<br class="">; SSE41-NEXT:    retq<br class="">; SSE41-NEXT:  .LBB63_1:<br class="">; SSE41-NEXT:    addsd %xmm0, %xmm1<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/sse1.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse1.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse1.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/sse1.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/sse1.ll Tue Feb 27 08:59:10 2018<br class="">@@ -16,7 +16,7 @@ define <2 x float> @test4(<2 x float> %A<br class="">; X32-LABEL: test4:<br class="">; X32:       # %bb.0: # %entry<br class="">; X32-NEXT:    movaps %xmm0, %xmm2<br class="">-; X32-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1,2,3]<br class="">+; X32-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm0[2,3]<br class="">; X32-NEXT:    addss %xmm1, %xmm0<br class="">; X32-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1,2,3]<br class="">; X32-NEXT:    subss %xmm1, %xmm2<br class="">@@ -26,7 +26,7 @@ define <2 x float> @test4(<2 x float> %A<br class="">; X64-LABEL: test4:<br class="">; X64:       # %bb.0: # %entry<br class="">; X64-NEXT:    movaps %xmm0, %xmm2<br class="">-; X64-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1,2,3]<br class="">+; X64-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm0[2,3]<br class="">; X64-NEXT:    addss %xmm1, %xmm0<br class="">; X64-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1,2,3]<br class="">; X64-NEXT:    subss %xmm1, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/sse3-avx-addsub-2.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse3-avx-addsub-2.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse3-avx-addsub-2.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/sse3-avx-addsub-2.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/sse3-avx-addsub-2.ll Tue Feb 27 08:59:10 2018<br class="">@@ -406,9 +406,9 @@ define <4 x float> @test16(<4 x float> %<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">; SSE-NEXT:    subss %xmm0, %xmm2<br class="">; SSE-NEXT:    movaps %xmm0, %xmm3<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm3[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm0[1],xmm3[1]<br class="">; SSE-NEXT:    movaps %xmm1, %xmm4<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm4 = xmm4[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm4 = xmm1[1],xmm4[1]<br class="">; SSE-NEXT:    subss %xmm4, %xmm3<br class="">; SSE-NEXT:    movshdup {{.*#+}} xmm4 = xmm0[1,1,3,3]<br class="">; SSE-NEXT:    addss %xmm0, %xmm4<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll Tue Feb 27 08:59:10 2018<br class="">@@ -114,7 +114,7 @@ define void @test6(i32 %a) gc "statepoin<br class="">; CHECK-NEXT:    .cfi_def_cfa_offset 32<br class="">; CHECK-NEXT:    .cfi_offset %rbx, -16<br class="">; CHECK-NEXT:    movl %edi, %ebx<br class="">-; CHECK-NEXT:    movl %ebx, {{[0-9]+}}(%rsp)<br class="">+; CHECK-NEXT:    movl %edi, {{[0-9]+}}(%rsp)<br class="">; CHECK-NEXT:    callq _baz<br class="">; CHECK-NEXT:  Ltmp6:<br class="">; CHECK-NEXT:    callq _bar<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/statepoint-stack-usage.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-stack-usage.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-stack-usage.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/statepoint-stack-usage.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/statepoint-stack-usage.ll Tue Feb 27 08:59:10 2018<br class="">@@ -61,9 +61,9 @@ define i32 @back_to_back_deopt(i32 %a, i<br class="">  gc "statepoint-example" {<br class="">; CHECK-LABEL: back_to_back_deopt<br class="">; The exact stores don't matter, but there need to be three stack slots created<br class="">-; CHECK-DAG: movl<span class="apple-tab-span">    <span class="Apple-converted-space"> </span></span>%ebx, 12(%rsp)<br class="">-; CHECK-DAG: movl<span class="apple-tab-span">    <span class="Apple-converted-space"> </span></span>%ebp, 8(%rsp)<br class="">-; CHECK-DAG: movl<span class="apple-tab-span">    <span class="Apple-converted-space"> </span></span>%r14d, 4(%rsp)<br class="">+; CHECK-DAG: movl<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>%edi, 12(%rsp)<br class="">+; CHECK-DAG: movl<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>%esi, 8(%rsp)<br class="">+; CHECK-DAG: movl<span class="apple-tab-span">   <span class="Apple-converted-space"> </span></span>%edx, 4(%rsp)<br class="">; CHECK: callq<br class="">; CHECK-DAG: movl<span class="apple-tab-span">      <span class="Apple-converted-space"> </span></span>%ebx, 12(%rsp)<br class="">; CHECK-DAG: movl<span class="apple-tab-span">      <span class="Apple-converted-space"> </span></span>%ebp, 8(%rsp)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vec_fp_to_int.ll Tue Feb 27 08:59:10 2018<br class="">@@ -1016,12 +1016,12 @@ define <4 x i64> @fptosi_4f32_to_4i64(<8<br class="">; SSE-NEXT:    cvttss2si %xmm0, %rax<br class="">; SSE-NEXT:    movq %rax, %xmm2<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm0[2,3]<br class="">; SSE-NEXT:    cvttss2si %xmm1, %rax<br class="">; SSE-NEXT:    movq %rax, %xmm1<br class="">; SSE-NEXT:    punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm1[0]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[2,3]<br class="">; SSE-NEXT:    cvttss2si %xmm1, %rax<br class="">; SSE-NEXT:    movq %rax, %xmm3<br class="">; SSE-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]<br class="">@@ -1124,12 +1124,12 @@ define <4 x i64> @fptosi_8f32_to_4i64(<8<br class="">; SSE-NEXT:    cvttss2si %xmm0, %rax<br class="">; SSE-NEXT:    movq %rax, %xmm2<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm0[2,3]<br class="">; SSE-NEXT:    cvttss2si %xmm1, %rax<br class="">; SSE-NEXT:    movq %rax, %xmm1<br class="">; SSE-NEXT:    punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm1[0]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[2,3]<br class="">; SSE-NEXT:    cvttss2si %xmm1, %rax<br class="">; SSE-NEXT:    movq %rax, %xmm3<br class="">; SSE-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]<br class="">@@ -1314,11 +1314,11 @@ define <4 x i32> @fptoui_4f32_to_4i32(<4<br class="">; SSE-LABEL: fptoui_4f32_to_4i32:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[2,3]<br class="">; SSE-NEXT:    cvttss2si %xmm1, %rax<br class="">; SSE-NEXT:    movd %eax, %xmm1<br class="">; SSE-NEXT:    movaps %xmm0, %xmm2<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm2[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm2 = xmm0[1],xmm2[1]<br class="">; SSE-NEXT:    cvttss2si %xmm2, %rax<br class="">; SSE-NEXT:    movd %eax, %xmm2<br class="">; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]<br class="">@@ -1556,7 +1556,7 @@ define <8 x i32> @fptoui_8f32_to_8i32(<8<br class="">; SSE-NEXT:    cvttss2si %xmm0, %rax<br class="">; SSE-NEXT:    movd %eax, %xmm0<br class="">; SSE-NEXT:    movaps %xmm2, %xmm3<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm3[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm2[1],xmm3[1]<br class="">; SSE-NEXT:    cvttss2si %xmm3, %rax<br class="">; SSE-NEXT:    movd %eax, %xmm3<br class="">; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]<br class="">@@ -1568,11 +1568,11 @@ define <8 x i32> @fptoui_8f32_to_8i32(<8<br class="">; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]<br class="">; SSE-NEXT:    punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm3[0]<br class="">; SSE-NEXT:    movaps %xmm1, %xmm2<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,1],xmm1[2,3]<br class="">; SSE-NEXT:    cvttss2si %xmm2, %rax<br class="">; SSE-NEXT:    movd %eax, %xmm2<br class="">; SSE-NEXT:    movaps %xmm1, %xmm3<br class="">-; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm3[1,1]<br class="">+; SSE-NEXT:    movhlps {{.*#+}} xmm3 = xmm1[1],xmm3[1]<br class="">; SSE-NEXT:    cvttss2si %xmm3, %rax<br class="">; SSE-NEXT:    movd %eax, %xmm3<br class="">; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]<br class="">@@ -1683,7 +1683,7 @@ define <4 x i64> @fptoui_4f32_to_4i64(<8<br class="">; SSE-NEXT:    cmovaeq %rcx, %rdx<br class="">; SSE-NEXT:    movq %rdx, %xmm2<br class="">; SSE-NEXT:    movaps %xmm0, %xmm3<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm0[2,3]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm4<br class="">; SSE-NEXT:    subss %xmm1, %xmm4<br class="">; SSE-NEXT:    cvttss2si %xmm4, %rcx<br class="">@@ -1694,7 +1694,7 @@ define <4 x i64> @fptoui_4f32_to_4i64(<8<br class="">; SSE-NEXT:    movq %rdx, %xmm3<br class="">; SSE-NEXT:    punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm3<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1],xmm0[2,3]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm4<br class="">; SSE-NEXT:    subss %xmm1, %xmm4<br class="">; SSE-NEXT:    cvttss2si %xmm4, %rcx<br class="">@@ -1861,7 +1861,7 @@ define <4 x i64> @fptoui_8f32_to_4i64(<8<br class="">; SSE-NEXT:    cmovaeq %rcx, %rdx<br class="">; SSE-NEXT:    movq %rdx, %xmm2<br class="">; SSE-NEXT:    movaps %xmm0, %xmm3<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm0[2,3]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm4<br class="">; SSE-NEXT:    subss %xmm1, %xmm4<br class="">; SSE-NEXT:    cvttss2si %xmm4, %rcx<br class="">@@ -1872,7 +1872,7 @@ define <4 x i64> @fptoui_8f32_to_4i64(<8<br class="">; SSE-NEXT:    movq %rdx, %xmm3<br class="">; SSE-NEXT:    punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm3[0]<br class="">; SSE-NEXT:    movaps %xmm0, %xmm3<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1,2,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,1],xmm0[2,3]<br class="">; SSE-NEXT:    movaps %xmm3, %xmm4<br class="">; SSE-NEXT:    subss %xmm1, %xmm4<br class="">; SSE-NEXT:    cvttss2si %xmm4, %rcx<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vec_int_to_fp.ll Tue Feb 27 08:59:10 2018<br class="">@@ -1591,7 +1591,7 @@ define <4 x float> @uitofp_2i64_to_4f32(<br class="">; SSE-LABEL: uitofp_2i64_to_4f32:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE-NEXT:    movq %xmm1, %rax<br class="">+; SSE-NEXT:    movq %xmm0, %rax<br class="">; SSE-NEXT:    testq %rax, %rax<br class="">; SSE-NEXT:    js .LBB39_1<br class="">; SSE-NEXT:  # %bb.2:<br class="">@@ -1819,7 +1819,7 @@ define <4 x float> @uitofp_4i64_to_4f32_<br class="">; SSE-LABEL: uitofp_4i64_to_4f32_undef:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE-NEXT:    movq %xmm1, %rax<br class="">+; SSE-NEXT:    movq %xmm0, %rax<br class="">; SSE-NEXT:    testq %rax, %rax<br class="">; SSE-NEXT:    js .LBB41_1<br class="">; SSE-NEXT:  # %bb.2:<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vec_minmax_uint.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_minmax_uint.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_minmax_uint.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vec_minmax_uint.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vec_minmax_uint.ll Tue Feb 27 08:59:10 2018<br class="">@@ -1006,7 +1006,7 @@ define <4 x i64> @min_lt_v4i64(<4 x i64><br class="">; SSE42:       # %bb.0:<br class="">; SSE42-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE42-NEXT:    movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]<br class="">-; SSE42-NEXT:    movdqa %xmm4, %xmm6<br class="">+; SSE42-NEXT:    movdqa %xmm0, %xmm6<br class="">; SSE42-NEXT:    pxor %xmm5, %xmm6<br class="">; SSE42-NEXT:    movdqa %xmm2, %xmm0<br class="">; SSE42-NEXT:    pxor %xmm5, %xmm0<br class="">@@ -1426,7 +1426,7 @@ define <4 x i64> @min_le_v4i64(<4 x i64><br class="">; SSE42:       # %bb.0:<br class="">; SSE42-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE42-NEXT:    movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]<br class="">-; SSE42-NEXT:    movdqa %xmm4, %xmm6<br class="">+; SSE42-NEXT:    movdqa %xmm0, %xmm6<br class="">; SSE42-NEXT:    pxor %xmm5, %xmm6<br class="">; SSE42-NEXT:    movdqa %xmm2, %xmm0<br class="">; SSE42-NEXT:    pxor %xmm5, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vec_shift4.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_shift4.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_shift4.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vec_shift4.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vec_shift4.ll Tue Feb 27 08:59:10 2018<br class="">@@ -35,7 +35,7 @@ define <2 x i64> @shl2(<16 x i8> %r, <16<br class="">; X32:       # %bb.0: # %entry<br class="">; X32-NEXT:    movdqa %xmm0, %xmm2<br class="">; X32-NEXT:    psllw $5, %xmm1<br class="">-; X32-NEXT:    movdqa %xmm2, %xmm3<br class="">+; X32-NEXT:    movdqa %xmm0, %xmm3<br class="">; X32-NEXT:    psllw $4, %xmm3<br class="">; X32-NEXT:    pand {{\.LCPI.*}}, %xmm3<br class="">; X32-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -47,7 +47,7 @@ define <2 x i64> @shl2(<16 x i8> %r, <16<br class="">; X32-NEXT:    movdqa %xmm1, %xmm0<br class="">; X32-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">; X32-NEXT:    movdqa %xmm2, %xmm3<br class="">-; X32-NEXT:    paddb %xmm3, %xmm3<br class="">+; X32-NEXT:    paddb %xmm2, %xmm3<br class="">; X32-NEXT:    paddb %xmm1, %xmm1<br class="">; X32-NEXT:    movdqa %xmm1, %xmm0<br class="">; X32-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">@@ -58,7 +58,7 @@ define <2 x i64> @shl2(<16 x i8> %r, <16<br class="">; X64:       # %bb.0: # %entry<br class="">; X64-NEXT:    movdqa %xmm0, %xmm2<br class="">; X64-NEXT:    psllw $5, %xmm1<br class="">-; X64-NEXT:    movdqa %xmm2, %xmm3<br class="">+; X64-NEXT:    movdqa %xmm0, %xmm3<br class="">; X64-NEXT:    psllw $4, %xmm3<br class="">; X64-NEXT:    pand {{.*}}(%rip), %xmm3<br class="">; X64-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -70,7 +70,7 @@ define <2 x i64> @shl2(<16 x i8> %r, <16<br class="">; X64-NEXT:    movdqa %xmm1, %xmm0<br class="">; X64-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">; X64-NEXT:    movdqa %xmm2, %xmm3<br class="">-; X64-NEXT:    paddb %xmm3, %xmm3<br class="">+; X64-NEXT:    paddb %xmm2, %xmm3<br class="">; X64-NEXT:    paddb %xmm1, %xmm1<br class="">; X64-NEXT:    movdqa %xmm1, %xmm0<br class="">; X64-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-blend.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-blend.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-blend.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-blend.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-blend.ll Tue Feb 27 08:59:10 2018<br class="">@@ -954,7 +954,7 @@ define <4 x i32> @blend_neg_logic_v4i32_<br class="">; SSE41:       # %bb.0: # %entry<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSE41-NEXT:    pxor %xmm3, %xmm3<br class="">-; SSE41-NEXT:    psubd %xmm2, %xmm3<br class="">+; SSE41-NEXT:    psubd %xmm0, %xmm3<br class="">; SSE41-NEXT:    movaps %xmm1, %xmm0<br class="">; SSE41-NEXT:    blendvps %xmm0, %xmm2, %xmm3<br class="">; SSE41-NEXT:    movaps %xmm3, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-idiv-sdiv-128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-idiv-sdiv-128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-idiv-sdiv-128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-idiv-sdiv-128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-idiv-sdiv-128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -177,13 +177,13 @@ define <16 x i8> @test_div7_16i8(<16 x i<br class="">; SSE2-LABEL: test_div7_16i8:<br class="">; SSE2:       # %bb.0:<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm0[8],xmm2[9],xmm0[9],xmm2[10],xmm0[10],xmm2[11],xmm0[11],xmm2[12],xmm0[12],xmm2[13],xmm0[13],xmm2[14],xmm0[14],xmm2[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [65427,65427,65427,65427,65427,65427,65427,65427]<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm2<br class="">; SSE2-NEXT:    psrlw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE2-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]<br class="">+; SSE2-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]<br class="">; SSE2-NEXT:    psraw $8, %xmm1<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm1<br class="">; SSE2-NEXT:    psrlw $8, %xmm1<br class="">@@ -501,13 +501,13 @@ define <16 x i8> @test_rem7_16i8(<16 x i<br class="">; SSE2-LABEL: test_rem7_16i8:<br class="">; SSE2:       # %bb.0:<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm0[8],xmm2[9],xmm0[9],xmm2[10],xmm0[10],xmm2[11],xmm0[11],xmm2[12],xmm0[12],xmm2[13],xmm0[13],xmm2[14],xmm0[14],xmm2[15],xmm0[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [65427,65427,65427,65427,65427,65427,65427,65427]<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm2<br class="">; SSE2-NEXT:    psrlw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE2-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]<br class="">+; SSE2-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]<br class="">; SSE2-NEXT:    psraw $8, %xmm1<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm1<br class="">; SSE2-NEXT:    psrlw $8, %xmm1<br class="">@@ -523,7 +523,7 @@ define <16 x i8> @test_rem7_16i8(<16 x i<br class="">; SSE2-NEXT:    pand {{.*}}(%rip), %xmm1<br class="">; SSE2-NEXT:    paddb %xmm2, %xmm1<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [7,7,7,7,7,7,7,7]<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-idiv-udiv-128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-idiv-udiv-128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-idiv-udiv-128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-idiv-udiv-128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-idiv-udiv-128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -497,7 +497,7 @@ define <16 x i8> @test_rem7_16i8(<16 x i<br class="">; SSE2-NEXT:    psrlw $2, %xmm1<br class="">; SSE2-NEXT:    pand {{.*}}(%rip), %xmm1<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm2<br class="">-; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]<br class="">+; SSE2-NEXT:    punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]<br class="">; SSE2-NEXT:    psraw $8, %xmm2<br class="">; SSE2-NEXT:    movdqa {{.*#+}} xmm3 = [7,7,7,7,7,7,7,7]<br class="">; SSE2-NEXT:    pmullw %xmm3, %xmm2<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-mul.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-mul.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-mul.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-mul.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-mul.ll Tue Feb 27 08:59:10 2018<br class="">@@ -178,7 +178,7 @@ define <16 x i8> @mul_v16i8_1_2_4_8_1_2_<br class="">; X86-LABEL: mul_v16i8_1_2_4_8_1_2_4_8_1_2_4_8_1_2_4_8:<br class="">; X86:       # %bb.0:<br class="">; X86-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X86-NEXT:    movdqa %xmm1, %xmm2<br class="">+; X86-NEXT:    movdqa %xmm0, %xmm2<br class="">; X86-NEXT:    psllw $4, %xmm2<br class="">; X86-NEXT:    pand {{\.LCPI.*}}, %xmm2<br class="">; X86-NEXT:    movdqa {{.*#+}} xmm0 = [8192,24640,8192,24640,8192,24640,8192,24640]<br class="">@@ -189,7 +189,7 @@ define <16 x i8> @mul_v16i8_1_2_4_8_1_2_<br class="">; X86-NEXT:    paddb %xmm0, %xmm0<br class="">; X86-NEXT:    pblendvb %xmm0, %xmm2, %xmm1<br class="">; X86-NEXT:    movdqa %xmm1, %xmm2<br class="">-; X86-NEXT:    paddb %xmm2, %xmm2<br class="">+; X86-NEXT:    paddb %xmm1, %xmm2<br class="">; X86-NEXT:    paddb %xmm0, %xmm0<br class="">; X86-NEXT:    pblendvb %xmm0, %xmm2, %xmm1<br class="">; X86-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -198,7 +198,7 @@ define <16 x i8> @mul_v16i8_1_2_4_8_1_2_<br class="">; X64-LABEL: mul_v16i8_1_2_4_8_1_2_4_8_1_2_4_8_1_2_4_8:<br class="">; X64:       # %bb.0:<br class="">; X64-NEXT:    movdqa %xmm0, %xmm1<br class="">-; X64-NEXT:    movdqa %xmm1, %xmm2<br class="">+; X64-NEXT:    movdqa %xmm0, %xmm2<br class="">; X64-NEXT:    psllw $4, %xmm2<br class="">; X64-NEXT:    pand {{.*}}(%rip), %xmm2<br class="">; X64-NEXT:    movdqa {{.*#+}} xmm0 = [8192,24640,8192,24640,8192,24640,8192,24640]<br class="">@@ -209,7 +209,7 @@ define <16 x i8> @mul_v16i8_1_2_4_8_1_2_<br class="">; X64-NEXT:    paddb %xmm0, %xmm0<br class="">; X64-NEXT:    pblendvb %xmm0, %xmm2, %xmm1<br class="">; X64-NEXT:    movdqa %xmm1, %xmm2<br class="">-; X64-NEXT:    paddb %xmm2, %xmm2<br class="">+; X64-NEXT:    paddb %xmm1, %xmm2<br class="">; X64-NEXT:    paddb %xmm0, %xmm0<br class="">; X64-NEXT:    pblendvb %xmm0, %xmm2, %xmm1<br class="">; X64-NEXT:    movdqa %xmm1, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-rotate-128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-rotate-128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-rotate-128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-rotate-128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-rotate-128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -359,7 +359,7 @@ define <8 x i16> @var_rotate_v8i16(<8 x<br class="">; SSE41-NEXT:    psllw $4, %xmm1<br class="">; SSE41-NEXT:    por %xmm0, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm4<br class="">-; SSE41-NEXT:    paddw %xmm4, %xmm4<br class="">+; SSE41-NEXT:    paddw %xmm1, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm6<br class="">; SSE41-NEXT:    psllw $8, %xmm6<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm5<br class="">@@ -384,7 +384,7 @@ define <8 x i16> @var_rotate_v8i16(<8 x<br class="">; SSE41-NEXT:    psllw $4, %xmm2<br class="">; SSE41-NEXT:    por %xmm0, %xmm2<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm1<br class="">-; SSE41-NEXT:    paddw %xmm1, %xmm1<br class="">+; SSE41-NEXT:    paddw %xmm2, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm4<br class="">; SSE41-NEXT:    psrlw $8, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm0<br class="">@@ -629,10 +629,10 @@ define <16 x i8> @var_rotate_v16i8(<16 x<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm2 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]<br class="">; SSE41-NEXT:    psubb %xmm3, %xmm2<br class="">; SSE41-NEXT:    psllw $5, %xmm3<br class="">-; SSE41-NEXT:    movdqa %xmm1, %xmm5<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm5<br class="">; SSE41-NEXT:    psllw $4, %xmm5<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm5<br class="">-; SSE41-NEXT:    movdqa %xmm1, %xmm4<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm5, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm4, %xmm5<br class="">@@ -642,13 +642,13 @@ define <16 x i8> @var_rotate_v16i8(<16 x<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm5, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm4, %xmm5<br class="">-; SSE41-NEXT:    paddb %xmm5, %xmm5<br class="">+; SSE41-NEXT:    paddb %xmm4, %xmm5<br class="">; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm5, %xmm4<br class="">; SSE41-NEXT:    psllw $5, %xmm2<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm3<br class="">-; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddb %xmm2, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm5<br class="">; SSE41-NEXT:    psrlw $4, %xmm5<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm5<br class="">@@ -1202,7 +1202,7 @@ define <16 x i8> @constant_rotate_v16i8(<br class="">; SSE41-LABEL: constant_rotate_v16i8:<br class="">; SSE41:       # %bb.0:<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSE41-NEXT:    psllw $4, %xmm3<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm3<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm0 = [8192,24640,41088,57536,57600,41152,24704,8256]<br class="">@@ -1214,7 +1214,7 @@ define <16 x i8> @constant_rotate_v16i8(<br class="">; SSE41-NEXT:    paddb %xmm0, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm3<br class="">-; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddb %xmm2, %xmm3<br class="">; SSE41-NEXT:    paddb %xmm0, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-sext.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-sext.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-sext.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-sext.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-sext.ll Tue Feb 27 08:59:10 2018<br class="">@@ -243,7 +243,7 @@ define <8 x i32> @sext_16i8_to_8i32(<16<br class="">; SSSE3-LABEL: sext_16i8_to_8i32:<br class="">; SSSE3:       # %bb.0: # %entry<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]<br class="">+; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]<br class="">; SSSE3-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]<br class="">; SSSE3-NEXT:    psrad $24, %xmm0<br class="">; SSSE3-NEXT:    pshufb {{.*#+}} xmm1 = xmm1[u,u,u,4,u,u,u,5,u,u,u,6,u,u,u,7]<br class="">@@ -312,7 +312,7 @@ define <16 x i32> @sext_16i8_to_16i32(<1<br class="">; SSSE3-LABEL: sext_16i8_to_16i32:<br class="">; SSSE3:       # %bb.0: # %entry<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm3<br class="">-; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1],xmm0[2],xmm3[2],xmm0[3],xmm3[3],xmm0[4],xmm3[4],xmm0[5],xmm3[5],xmm0[6],xmm3[6],xmm0[7],xmm3[7]<br class="">+; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]<br class="">; SSSE3-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]<br class="">; SSSE3-NEXT:    psrad $24, %xmm0<br class="">; SSSE3-NEXT:    punpckhbw {{.*#+}} xmm1 = xmm1[8],xmm3[8],xmm1[9],xmm3[9],xmm1[10],xmm3[10],xmm1[11],xmm3[11],xmm1[12],xmm3[12],xmm1[13],xmm3[13],xmm1[14],xmm3[14],xmm1[15],xmm3[15]<br class="">@@ -443,7 +443,7 @@ define <4 x i64> @sext_16i8_to_4i64(<16<br class="">; SSSE3-LABEL: sext_16i8_to_4i64:<br class="">; SSSE3:       # %bb.0: # %entry<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]<br class="">+; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]<br class="">; SSSE3-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSSE3-NEXT:    psrad $31, %xmm2<br class="">@@ -499,7 +499,7 @@ define <8 x i64> @sext_16i8_to_8i64(<16<br class="">; SSE2-LABEL: sext_16i8_to_8i64:<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE2-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]<br class="">+; SSE2-NEXT:    punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]<br class="">; SSE2-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3]<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSE2-NEXT:    psrad $31, %xmm2<br class="">@@ -1108,7 +1108,7 @@ define <8 x i64> @sext_8i32_to_8i64(<8 x<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm2<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSE2-NEXT:    psrad $31, %xmm3<br class="">-; SSE2-NEXT:    movdqa %xmm2, %xmm4<br class="">+; SSE2-NEXT:    movdqa %xmm1, %xmm4<br class="">; SSE2-NEXT:    psrad $31, %xmm4<br class="">; SSE2-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[2,3,0,1]<br class="">; SSE2-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]<br class="">@@ -1127,7 +1127,7 @@ define <8 x i64> @sext_8i32_to_8i64(<8 x<br class="">; SSSE3-NEXT:    movdqa %xmm1, %xmm2<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSSE3-NEXT:    psrad $31, %xmm3<br class="">-; SSSE3-NEXT:    movdqa %xmm2, %xmm4<br class="">+; SSSE3-NEXT:    movdqa %xmm1, %xmm4<br class="">; SSSE3-NEXT:    psrad $31, %xmm4<br class="">; SSSE3-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[2,3,0,1]<br class="">; SSSE3-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-shift-ashr-128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -273,7 +273,7 @@ define <8 x i16> @var_shift_v8i16(<8 x i<br class="">; SSE41-NEXT:    psllw $4, %xmm1<br class="">; SSE41-NEXT:    por %xmm0, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class="">-; SSE41-NEXT:    paddw %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddw %xmm1, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm4<br class="">; SSE41-NEXT:    psraw $8, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-shift-lshr-128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shift-lshr-128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shift-lshr-128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-shift-lshr-128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-shift-lshr-128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -243,7 +243,7 @@ define <8 x i16> @var_shift_v8i16(<8 x i<br class="">; SSE41-NEXT:    psllw $4, %xmm1<br class="">; SSE41-NEXT:    por %xmm0, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class="">-; SSE41-NEXT:    paddw %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddw %xmm1, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm4<br class="">; SSE41-NEXT:    psrlw $8, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -408,7 +408,7 @@ define <16 x i8> @var_shift_v16i8(<16 x<br class="">; SSE41:       # %bb.0:<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSE41-NEXT:    psllw $5, %xmm1<br class="">-; SSE41-NEXT:    movdqa %xmm2, %xmm3<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSE41-NEXT:    psrlw $4, %xmm3<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -701,7 +701,7 @@ define <16 x i8> @splatvar_shift_v16i8(<<br class="">; SSE41-NEXT:    pshufb %xmm0, %xmm1<br class="">; SSE41-NEXT:    psllw $5, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class="">-; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddb %xmm1, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm4<br class="">; SSE41-NEXT:    psrlw $4, %xmm4<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm4<br class="">@@ -1147,7 +1147,7 @@ define <16 x i8> @constant_shift_v16i8(<<br class="">; SSE41-LABEL: constant_shift_v16i8:<br class="">; SSE41:       # %bb.0:<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE41-NEXT:    movdqa %xmm1, %xmm2<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSE41-NEXT:    psrlw $4, %xmm2<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm2<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm0 = [8192,24640,41088,57536,49376,32928,16480,32]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-shift-shl-128.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shift-shl-128.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shift-shl-128.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-shift-shl-128.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-shift-shl-128.ll Tue Feb 27 08:59:10 2018<br class="">@@ -200,7 +200,7 @@ define <8 x i16> @var_shift_v8i16(<8 x i<br class="">; SSE41-NEXT:    psllw $4, %xmm1<br class="">; SSE41-NEXT:    por %xmm0, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class="">-; SSE41-NEXT:    paddw %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddw %xmm1, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm4<br class="">; SSE41-NEXT:    psllw $8, %xmm4<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -362,7 +362,7 @@ define <16 x i8> @var_shift_v16i8(<16 x<br class="">; SSE41:       # %bb.0:<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSE41-NEXT:    psllw $5, %xmm1<br class="">-; SSE41-NEXT:    movdqa %xmm2, %xmm3<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSE41-NEXT:    psllw $4, %xmm3<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -374,7 +374,7 @@ define <16 x i8> @var_shift_v16i8(<16 x<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm3<br class="">-; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddb %xmm2, %xmm3<br class="">; SSE41-NEXT:    paddb %xmm1, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm3, %xmm2<br class="">@@ -649,7 +649,7 @@ define <16 x i8> @splatvar_shift_v16i8(<<br class="">; SSE41-NEXT:    pshufb %xmm0, %xmm1<br class="">; SSE41-NEXT:    psllw $5, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm3<br class="">-; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">+; SSE41-NEXT:    paddb %xmm1, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm4<br class="">; SSE41-NEXT:    psllw $4, %xmm4<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm4<br class="">@@ -661,7 +661,7 @@ define <16 x i8> @splatvar_shift_v16i8(<<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm1, %xmm2<br class="">; SSE41-NEXT:    movdqa %xmm2, %xmm1<br class="">-; SSE41-NEXT:    paddb %xmm1, %xmm1<br class="">+; SSE41-NEXT:    paddb %xmm2, %xmm1<br class="">; SSE41-NEXT:    paddb %xmm3, %xmm3<br class="">; SSE41-NEXT:    movdqa %xmm3, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm1, %xmm2<br class="">@@ -1001,7 +1001,7 @@ define <16 x i8> @constant_shift_v16i8(<<br class="">; SSE41-LABEL: constant_shift_v16i8:<br class="">; SSE41:       # %bb.0:<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">-; SSE41-NEXT:    movdqa %xmm1, %xmm2<br class="">+; SSE41-NEXT:    movdqa %xmm0, %xmm2<br class="">; SSE41-NEXT:    psllw $4, %xmm2<br class="">; SSE41-NEXT:    pand {{.*}}(%rip), %xmm2<br class="">; SSE41-NEXT:    movdqa {{.*#+}} xmm0 = [8192,24640,41088,57536,49376,32928,16480,32]<br class="">@@ -1012,7 +1012,7 @@ define <16 x i8> @constant_shift_v16i8(<<br class="">; SSE41-NEXT:    paddb %xmm0, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm2, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm2<br class="">-; SSE41-NEXT:    paddb %xmm2, %xmm2<br class="">+; SSE41-NEXT:    paddb %xmm1, %xmm2<br class="">; SSE41-NEXT:    paddb %xmm0, %xmm0<br class="">; SSE41-NEXT:    pblendvb %xmm0, %xmm2, %xmm1<br class="">; SSE41-NEXT:    movdqa %xmm1, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-shuffle-combining.ll Tue Feb 27 08:59:10 2018<br class="">@@ -2703,7 +2703,7 @@ define <4 x float> @PR22377(<4 x float><br class="">; SSE-LABEL: PR22377:<br class="">; SSE:       # %bb.0: # %entry<br class="">; SSE-NEXT:    movaps %xmm0, %xmm1<br class="">-; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,3,1,3]<br class="">+; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,3],xmm0[1,3]<br class="">; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2,0,2]<br class="">; SSE-NEXT:    addps %xmm0, %xmm1<br class="">; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll Tue Feb 27 08:59:10 2018<br class="">@@ -5511,7 +5511,7 @@ define <4 x i32> @mul_add_const_v4i64_v4<br class="">; SSE-LABEL: mul_add_const_v4i64_v4i32:<br class="">; SSE:       # %bb.0:<br class="">; SSE-NEXT:    movdqa %xmm0, %xmm2<br class="">-; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm2[0,1,1,3]<br class="">+; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,1,1,3]<br class="">; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm2[2,1,3,3]<br class="">; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[0,1,1,3]<br class="">; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,1,3,3]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vector-zext.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-zext.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vector-zext.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vector-zext.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vector-zext.ll Tue Feb 27 08:59:10 2018<br class="">@@ -247,7 +247,7 @@ define <16 x i32> @zext_16i8_to_16i32(<1<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSE2-NEXT:    pxor %xmm4, %xmm4<br class="">-; SSE2-NEXT:    movdqa %xmm3, %xmm1<br class="">+; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSE2-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm0<br class="">; SSE2-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3]<br class="">@@ -262,7 +262,7 @@ define <16 x i32> @zext_16i8_to_16i32(<1<br class="">; SSSE3:       # %bb.0: # %entry<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSSE3-NEXT:    pxor %xmm4, %xmm4<br class="">-; SSSE3-NEXT:    movdqa %xmm3, %xmm1<br class="">+; SSSE3-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSSE3-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]<br class="">; SSSE3-NEXT:    movdqa %xmm1, %xmm0<br class="">; SSSE3-NEXT:    punpcklwd {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1],xmm0[2],xmm4[2],xmm0[3],xmm4[3]<br class="">@@ -400,7 +400,7 @@ define <8 x i64> @zext_16i8_to_8i64(<16<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSE2-NEXT:    pxor %xmm4, %xmm4<br class="">-; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm1[1,1,2,3]<br class="">+; SSE2-NEXT:    pshufd {{.*#+}} xmm3 = xmm0[1,1,2,3]<br class="">; SSE2-NEXT:    punpcklbw {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3],xmm1[4],xmm4[4],xmm1[5],xmm4[5],xmm1[6],xmm4[6],xmm1[7],xmm4[7]<br class="">; SSE2-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3]<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm0<br class="">@@ -701,7 +701,7 @@ define <8 x i64> @zext_8i16_to_8i64(<8 x<br class="">; SSE2:       # %bb.0: # %entry<br class="">; SSE2-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSE2-NEXT:    pxor %xmm4, %xmm4<br class="">-; SSE2-NEXT:    movdqa %xmm3, %xmm1<br class="">+; SSE2-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSE2-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3]<br class="">; SSE2-NEXT:    movdqa %xmm1, %xmm0<br class="">; SSE2-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]<br class="">@@ -716,7 +716,7 @@ define <8 x i64> @zext_8i16_to_8i64(<8 x<br class="">; SSSE3:       # %bb.0: # %entry<br class="">; SSSE3-NEXT:    movdqa %xmm0, %xmm3<br class="">; SSSE3-NEXT:    pxor %xmm4, %xmm4<br class="">-; SSSE3-NEXT:    movdqa %xmm3, %xmm1<br class="">+; SSSE3-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSSE3-NEXT:    punpcklwd {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1],xmm1[2],xmm4[2],xmm1[3],xmm4[3]<br class="">; SSSE3-NEXT:    movdqa %xmm1, %xmm0<br class="">; SSSE3-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]<br class="">@@ -1583,7 +1583,7 @@ define <8 x i32> @shuf_zext_8i16_to_8i32<br class="">; SSE41:       # %bb.0: # %entry<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSE41-NEXT:    pxor %xmm2, %xmm2<br class="">-; SSE41-NEXT:    pmovzxwd {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero<br class="">+; SSE41-NEXT:    pmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero<br class="">; SSE41-NEXT:    punpckhwd {{.*#+}} xmm1 = xmm1[4],xmm2[4],xmm1[5],xmm2[5],xmm1[6],xmm2[6],xmm1[7],xmm2[7]<br class="">; SSE41-NEXT:    retq<br class="">;<br class="">@@ -1631,7 +1631,7 @@ define <4 x i64> @shuf_zext_4i32_to_4i64<br class="">; SSE41:       # %bb.0: # %entry<br class="">; SSE41-NEXT:    movdqa %xmm0, %xmm1<br class="">; SSE41-NEXT:    pxor %xmm2, %xmm2<br class="">-; SSE41-NEXT:    pmovzxdq {{.*#+}} xmm0 = xmm1[0],zero,xmm1[1],zero<br class="">+; SSE41-NEXT:    pmovzxdq {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero<br class="">; SSE41-NEXT:    punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]<br class="">; SSE41-NEXT:    retq<br class="">;<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/vselect-minmax.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vselect-minmax.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vselect-minmax.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/vselect-minmax.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/vselect-minmax.ll Tue Feb 27 08:59:10 2018<br class="">@@ -5015,7 +5015,7 @@ define <8 x i64> @test125(<8 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm9<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm9, %xmm10<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm10<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm10<br class="">; SSE4-NEXT:    movdqa %xmm4, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm0<br class="">@@ -5162,7 +5162,7 @@ define <8 x i64> @test126(<8 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm9<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm9, %xmm10<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm10<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm10<br class="">; SSE4-NEXT:    movdqa %xmm4, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm0<br class="">@@ -7483,7 +7483,7 @@ define <8 x i64> @test159(<8 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm9<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm9, %xmm10<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm10<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm10<br class="">; SSE4-NEXT:    movdqa %xmm4, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm0<br class="">@@ -7630,7 +7630,7 @@ define <8 x i64> @test160(<8 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm9<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm8 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm9, %xmm10<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm10<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm10<br class="">; SSE4-NEXT:    movdqa %xmm4, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm8, %xmm0<br class="">@@ -8041,7 +8041,7 @@ define <4 x i64> @test165(<4 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm4, %xmm6<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm6<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm6<br class="">; SSE4-NEXT:    movdqa %xmm2, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm0<br class="">@@ -8130,7 +8130,7 @@ define <4 x i64> @test166(<4 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm4, %xmm6<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm6<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm6<br class="">; SSE4-NEXT:    movdqa %xmm2, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm0<br class="">@@ -8865,7 +8865,7 @@ define <4 x i64> @test175(<4 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm4, %xmm6<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm6<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm6<br class="">; SSE4-NEXT:    movdqa %xmm2, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm0<br class="">@@ -8954,7 +8954,7 @@ define <4 x i64> @test176(<4 x i64> %a,<br class="">; SSE4:       # %bb.0: # %entry<br class="">; SSE4-NEXT:    movdqa %xmm0, %xmm4<br class="">; SSE4-NEXT:    movdqa {{.*#+}} xmm5 = [9223372036854775808,9223372036854775808]<br class="">-; SSE4-NEXT:    movdqa %xmm4, %xmm6<br class="">+; SSE4-NEXT:    movdqa %xmm0, %xmm6<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm6<br class="">; SSE4-NEXT:    movdqa %xmm2, %xmm0<br class="">; SSE4-NEXT:    pxor %xmm5, %xmm0<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/widen_conv-3.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/widen_conv-3.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/widen_conv-3.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/widen_conv-3.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/widen_conv-3.ll Tue Feb 27 08:59:10 2018<br class="">@@ -74,7 +74,7 @@ define void @convert_v3i8_to_v3f32(<3 x<br class="">; X86-SSE2-NEXT:    cvtdq2ps %xmm0, %xmm0<br class="">; X86-SSE2-NEXT:    movss %xmm0, (%eax)<br class="">; X86-SSE2-NEXT:    movaps %xmm0, %xmm1<br class="">-; X86-SSE2-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; X86-SSE2-NEXT:    movhlps {{.*#+}} xmm1 = xmm0[1],xmm1[1]<br class="">; X86-SSE2-NEXT:    movss %xmm1, 8(%eax)<br class="">; X86-SSE2-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,2,3]<br class="">; X86-SSE2-NEXT:    movss %xmm0, 4(%eax)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/widen_conv-4.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/widen_conv-4.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/widen_conv-4.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/widen_conv-4.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/widen_conv-4.ll Tue Feb 27 08:59:10 2018<br class="">@@ -19,7 +19,7 @@ define void @convert_v7i16_v7f32(<7 x fl<br class="">; X86-SSE2-NEXT:    movups %xmm0, (%eax)<br class="">; X86-SSE2-NEXT:    movss %xmm2, 16(%eax)<br class="">; X86-SSE2-NEXT:    movaps %xmm2, %xmm0<br class="">-; X86-SSE2-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]<br class="">+; X86-SSE2-NEXT:    movhlps {{.*#+}} xmm0 = xmm2[1],xmm0[1]<br class="">; X86-SSE2-NEXT:    movss %xmm0, 24(%eax)<br class="">; X86-SSE2-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1,2,3]<br class="">; X86-SSE2-NEXT:    movss %xmm2, 20(%eax)<br class="">@@ -100,7 +100,7 @@ define void @convert_v3i8_to_v3f32(<3 x<br class="">; X86-SSE2-NEXT:    cvtdq2ps %xmm0, %xmm0<br class="">; X86-SSE2-NEXT:    movss %xmm0, (%eax)<br class="">; X86-SSE2-NEXT:    movaps %xmm0, %xmm1<br class="">-; X86-SSE2-NEXT:    movhlps {{.*#+}} xmm1 = xmm1[1,1]<br class="">+; X86-SSE2-NEXT:    movhlps {{.*#+}} xmm1 = xmm0[1],xmm1[1]<br class="">; X86-SSE2-NEXT:    movss %xmm1, 8(%eax)<br class="">; X86-SSE2-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,2,3]<br class="">; X86-SSE2-NEXT:    movss %xmm0, 4(%eax)<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/win64_frame.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/win64_frame.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/win64_frame.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/win64_frame.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/win64_frame.ll Tue Feb 27 08:59:10 2018<br class="">@@ -238,7 +238,7 @@ define i64 @f10(i64* %foo, i64 %bar, i64<br class="">; PUSHF-NEXT:    .seh_setframe 5, 32<br class="">; PUSHF-NEXT:    .seh_endprologue<br class="">; PUSHF-NEXT:    movq %rdx, %rsi<br class="">-; PUSHF-NEXT:    movq %rsi, %rax<br class="">+; PUSHF-NEXT:    movq %rdx, %rax<br class="">; PUSHF-NEXT:    lock cmpxchgq %r8, (%rcx)<br class="">; PUSHF-NEXT:    pushfq<br class="">; PUSHF-NEXT:    popq %rdi<br class="">@@ -269,7 +269,7 @@ define i64 @f10(i64* %foo, i64 %bar, i64<br class="">; SAHF-NEXT:    .seh_setframe 5, 32<br class="">; SAHF-NEXT:    .seh_endprologue<br class="">; SAHF-NEXT:    movq %rdx, %rsi<br class="">-; SAHF-NEXT:    movq %rsi, %rax<br class="">+; SAHF-NEXT:    movq %rdx, %rax<br class="">; SAHF-NEXT:    lock cmpxchgq %r8, (%rcx)<br class="">; SAHF-NEXT:    seto %al<br class="">; SAHF-NEXT:    lahf<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/x86-interleaved-access.ll Tue Feb 27 08:59:10 2018<br class="">@@ -1757,7 +1757,7 @@ define void @interleaved_store_vf64_i8_s<br class="">; AVX1-NEXT:    vmovups %ymm1, -{{[0-9]+}}(%rsp) # 32-byte Spill<br class="">; AVX1-NEXT:    vpunpcklwd {{.*#+}} xmm4 = xmm9[0],xmm12[0],xmm9[1],xmm12[1],xmm9[2],xmm12[2],xmm9[3],xmm12[3]<br class="">; AVX1-NEXT:    vmovdqa %xmm8, %xmm2<br class="">-; AVX1-NEXT:    vpunpcklwd {{.*#+}} xmm8 = xmm2[0],xmm14[0],xmm2[1],xmm14[1],xmm2[2],xmm14[2],xmm2[3],xmm14[3]<br class="">+; AVX1-NEXT:    vpunpcklwd {{.*#+}} xmm8 = xmm8[0],xmm14[0],xmm8[1],xmm14[1],xmm8[2],xmm14[2],xmm8[3],xmm14[3]<br class="">; AVX1-NEXT:    vinsertf128 $1, %xmm4, %ymm8, %ymm13<br class="">; AVX1-NEXT:    vpunpckhwd {{.*#+}} xmm15 = xmm15[4],xmm5[4],xmm15[5],xmm5[5],xmm15[6],xmm5[6],xmm15[7],xmm5[7]<br class="">; AVX1-NEXT:    vpunpckhwd {{.*#+}} xmm10 = xmm10[4],xmm0[4],xmm10[5],xmm0[5],xmm10[6],xmm0[6],xmm10[7],xmm0[7]<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/x86-shrink-wrap-unwind.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-shrink-wrap-unwind.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-shrink-wrap-unwind.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/x86-shrink-wrap-unwind.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/x86-shrink-wrap-unwind.ll Tue Feb 27 08:59:10 2018<br class="">@@ -23,7 +23,7 @@ target triple = "x86_64-apple-macosx"<br class="">; Compare the arguments and jump to exit.<br class="">; After the prologue is set.<br class="">; CHECK: movl %edi, [[ARG0CPY:%e[a-z]+]]<br class="">-; CHECK-NEXT: cmpl %esi, [[ARG0CPY]]<br class="">+; CHECK-NEXT: cmpl %esi, %edi<br class="">; CHECK-NEXT: jge [[EXIT_LABEL:LBB[0-9_]+]]<br class="">;<br class="">; Store %a in the alloca.<br class="">@@ -69,7 +69,7 @@ attributes #0 = { "no-frame-pointer-elim<br class="">; Compare the arguments and jump to exit.<br class="">; After the prologue is set.<br class="">; CHECK: movl %edi, [[ARG0CPY:%e[a-z]+]]<br class="">-; CHECK-NEXT: cmpl %esi, [[ARG0CPY]]<br class="">+; CHECK-NEXT: cmpl %esi, %edi<br class="">; CHECK-NEXT: jge [[EXIT_LABEL:LBB[0-9_]+]]<br class="">;<br class="">; Prologue code.<br class="">@@ -115,7 +115,7 @@ attributes #1 = { "no-frame-pointer-elim<br class="">; Compare the arguments and jump to exit.<br class="">; After the prologue is set.<br class="">; CHECK: movl %edi, [[ARG0CPY:%e[a-z]+]]<br class="">-; CHECK-NEXT: cmpl %esi, [[ARG0CPY]]<br class="">+; CHECK-NEXT: cmpl %esi, %edi<br class="">; CHECK-NEXT: jge [[EXIT_LABEL:LBB[0-9_]+]]<br class="">;<br class="">; Prologue code.<br class=""><br class="">Modified: llvm/trunk/test/CodeGen/X86/x86-shrink-wrapping.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-shrink-wrapping.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/x86-shrink-wrapping.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/CodeGen/X86/x86-shrink-wrapping.ll (original)<br class="">+++ llvm/trunk/test/CodeGen/X86/x86-shrink-wrapping.ll Tue Feb 27 08:59:10 2018<br class="">@@ -17,7 +17,7 @@ target triple = "x86_64-apple-macosx"<br class="">; Compare the arguments and jump to exit.<br class="">; No prologue needed.<br class="">; ENABLE: movl %edi, [[ARG0CPY:%e[a-z]+]]<br class="">-; ENABLE-NEXT: cmpl %esi, [[ARG0CPY]]<br class="">+; ENABLE-NEXT: cmpl %esi, %edi<br class="">; ENABLE-NEXT: jge [[EXIT_LABEL:LBB[0-9_]+]]<br class="">;<br class="">; Prologue code.<br class="">@@ -27,7 +27,7 @@ target triple = "x86_64-apple-macosx"<br class="">; Compare the arguments and jump to exit.<br class="">; After the prologue is set.<br class="">; DISABLE: movl %edi, [[ARG0CPY:%e[a-z]+]]<br class="">-; DISABLE-NEXT: cmpl %esi, [[ARG0CPY]]<br class="">+; DISABLE-NEXT: cmpl %esi, %edi<br class="">; DISABLE-NEXT: jge [[EXIT_LABEL:LBB[0-9_]+]]<br class="">;<br class="">; Store %a in the alloca.<br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/COFF/fpo-shrink-wrap.ll Tue Feb 27 08:59:10 2018<br class="">@@ -15,7 +15,7 @@<br class="">; ASM:         .cv_fpo_proc    @shrink_wrap_basic@16 8<br class="">; ASM:         .cv_loc 0 1 3 9                 # t.c:3:9<br class="">; ASM:         movl    %ecx, %eax<br class="">-; ASM:         cmpl    %edx, %eax<br class="">+; ASM:         cmpl    %edx, %ecx<br class="">; ASM:         jl      [[EPILOGUE:LBB0_[0-9]+]]<br class=""><br class="">; ASM:         pushl   %ebx<br class=""><br class="">Modified: llvm/trunk/test/DebugInfo/X86/spill-nospill.ll<br class="">URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/spill-nospill.ll?rev=326208&r1=326207&r2=326208&view=diff" class="" style="color: purple; text-decoration: underline;">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/spill-nospill.ll?rev=326208&r1=326207&r2=326208&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/DebugInfo/X86/spill-nospill.ll (original)<br class="">+++ llvm/trunk/test/DebugInfo/X86/spill-nospill.ll Tue Feb 27 08:59:10 2018<br class="">@@ -30,7 +30,7 @@<br class="">; CHECK: callq   g<br class="">; CHECK: movl    %eax, %[[CSR:[^ ]*]]<br class="">; CHECK: #DEBUG_VALUE: f:y <- $esi<br class="">-; CHECK: movl    %[[CSR]], %ecx<br class="">+; CHECK: movl    %eax, %ecx<br class="">; CHECK: callq   g<br class="">; CHECK: movl    %[[CSR]], %ecx<br class="">; CHECK: callq   g<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="" style="color: purple; text-decoration: underline;">llvm-commits@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" class="" style="color: purple; text-decoration: underline;">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></div></div></div></blockquote></div></div></div></div></div></blockquote></div><br class="" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">_______________________________________________</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">llvm-commits mailing list</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><a href="mailto:llvm-commits@lists.llvm.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">llvm-commits@lists.llvm.org</a><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></div></blockquote></div><br class=""></body></html>