[llvm] 3fb5b18 - Revert 24633ea and 760e7d0 "Enable FoldImmediate for X86"
via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 24 00:08:51 PDT 2023
Author: Mogball
Date: 2023-10-24T07:08:38Z
New Revision: 3fb5b18e81d81d675f8ed57372e2f7ad60a1d548
URL: https://github.com/llvm/llvm-project/commit/3fb5b18e81d81d675f8ed57372e2f7ad60a1d548
DIFF: https://github.com/llvm/llvm-project/commit/3fb5b18e81d81d675f8ed57372e2f7ad60a1d548.diff
LOG: Revert 24633ea and 760e7d0 "Enable FoldImmediate for X86"
This reverts commits 24633eac38d46cd4b253ba53258165ee08d886cd
and 760e7d00d142ba85fcf48c00e0acc14a355da7c3.
I have confirmed that these commits are introducing a new crash in the
peephole optimizer. I have minimized a test case, which you can find
below.
```llvmir
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "/mnt/big/modular/Kernels/mojo/Mogg/MOGG.mojo"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
declare dso_local void @foo({ { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } }, { ptr }, { ptr, i64, i8 })
define dso_local void @bad_fn(ptr %0, ptr %1, ptr %2) {
%4 = load i64, ptr null, align 8
%5 = insertvalue [4 x i64] poison, i64 12, 1
%6 = insertvalue [4 x i64] %5, i64 poison, 2
%7 = insertvalue [4 x i64] %6, i64 poison, 3
%8 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } poison, [4 x i64] %7, 1
%9 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %8, [4 x i64] poison, 2
%10 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %9, i1 poison, 3
%11 = icmp ne i64 %4, 1
%12 = or i1 false, %11
%13 = select i1 %12, i64 %4, i64 0
%14 = zext i1 %12 to i64
%15 = insertvalue [4 x i64] poison, i64 12, 1
%16 = insertvalue [4 x i64] %15, i64 poison, 2
%17 = insertvalue [4 x i64] %16, i64 %13, 3
%18 = insertvalue [4 x i64] poison, i64 %14, 3
%19 = icmp eq i64 0, 0
%20 = icmp eq i64 0, 0
%21 = icmp eq i64 %13, 0
%22 = and i1 %20, %19
%23 = select i1 %22, i1 %21, i1 false
%24 = select i1 %23, i1 %12, i1 false
%25 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } poison, [4 x i64] %17, 1
%26 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %25, [4 x i64] %18, 2
%27 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %26, i1 %24, 3
%28 = insertvalue { { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } } undef, { ptr, [4 x i64], [4 x i64], i1 } %10, 0
%29 = insertvalue { { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } } %28, { ptr, [4 x i64], [4 x i64], i1 } %27, 1
br label %31
30: ; preds = %3
br label %softmax_pass
31: ; preds = %31
%exitcond.not.i = icmp eq i64 poison, 3
br i1 %exitcond.not.i, label %37, label %31
32: ; preds = %31
br i1 poison, label %34, label %33
33: ; preds = %32
br label %34
34: ; preds = %33, %32
br i1 poison, label %35, label %36
35: ; preds = %34
br label %softmax_pass
36: ; preds = %34
br i1 poison, label %37, label %.critedge.i
37: ; preds = %36
br i1 poison, label %38, label %.critedge.i
38: ; preds = %37
br i1 poison, label %40, label %39
39: ; preds = %38
br label %40
40: ; preds = %39, %38
br i1 poison, label %.lr.ph28.i, label %._crit_edge.i
.lr.ph28.i: ; preds = %40
br label %41
41: ; preds = %51, %.lr.ph28.i
br i1 poison, label %.thread, label %42
42: ; preds = %41
br i1 poison, label %43, label %44
43: ; preds = %42
br label %45
44: ; preds = %42
br label %45
45: ; preds = %44, %43
br i1 poison, label %46, label %.thread
46: ; preds = %45
br label %47
.thread: ; preds = %45, %41
br label %47
47: ; preds = %.thread, %46
br i1 poison, label %51, label %48
48: ; preds = %47
br i1 poison, label %49, label %50
49: ; preds = %48
br label %51
50: ; preds = %48
br label %51
51: ; preds = %50, %49, %47
call void @foo({ { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } } %29, { ptr } poison, { ptr, i64, i8 } poison)
br i1 poison, label %._crit_edge.i, label %41
._crit_edge.i: ; preds = %51, %40
br label %softmax_pass
.critedge.i: ; preds = %37, %36
br i1 poison, label %.lr.ph.i, label %softmax_pass
.lr.ph.i: ; preds = %.lr.ph.i, %.critedge.i
store { ptr, [4 x i64], [4 x i64], i1 } %10, ptr poison, align 8
br i1 poison, label %.lr.ph.i, label %softmax_pass
softmax_pass: ; preds = %.lr.ph.i, %.critedge.i, %._crit_edge.i, %35, %30
ret void
}
```
Added:
Modified:
llvm/lib/CodeGen/PeepholeOptimizer.cpp
llvm/lib/Target/X86/X86InstrInfo.cpp
llvm/lib/Target/X86/X86InstrInfo.h
llvm/test/CodeGen/AMDGPU/peephole-fold-imm.mir
llvm/test/CodeGen/X86/GlobalISel/phi.ll
llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
llvm/test/CodeGen/X86/fast-isel-freeze.ll
llvm/test/CodeGen/X86/pcsections-atomics.ll
llvm/test/CodeGen/X86/physreg-pairs.ll
llvm/test/CodeGen/X86/popcnt.ll
llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
llvm/test/CodeGen/X86/remat-phys-dead.ll
llvm/test/CodeGen/X86/select_const_i128.ll
llvm/test/CodeGen/X86/shrink_vmul.ll
llvm/test/CodeGen/X86/speculative-load-hardening-call-and-ret.ll
llvm/test/CodeGen/X86/swifterror.ll
llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
Removed:
llvm/test/CodeGen/X86/foldimmediate-size.ll
llvm/test/CodeGen/X86/foldimmediate.mir
llvm/test/CodeGen/X86/peephole-copy.mir
################################################################################
diff --git a/llvm/lib/CodeGen/PeepholeOptimizer.cpp b/llvm/lib/CodeGen/PeepholeOptimizer.cpp
index 09ae2680f5516ba..a08cc78f11b1b08 100644
--- a/llvm/lib/CodeGen/PeepholeOptimizer.cpp
+++ b/llvm/lib/CodeGen/PeepholeOptimizer.cpp
@@ -202,8 +202,7 @@ namespace {
bool isMoveImmediate(MachineInstr &MI, SmallSet<Register, 4> &ImmDefRegs,
DenseMap<Register, MachineInstr *> &ImmDefMIs);
bool foldImmediate(MachineInstr &MI, SmallSet<Register, 4> &ImmDefRegs,
- DenseMap<Register, MachineInstr *> &ImmDefMIs,
- bool &Deleted);
+ DenseMap<Register, MachineInstr *> &ImmDefMIs);
/// Finds recurrence cycles, but only ones that formulated around
/// a def operand and a use operand that are tied. If there is a use
@@ -218,11 +217,8 @@ namespace {
/// set \p CopyMIs. If this virtual register was previously seen as a
/// copy, replace the uses of this copy with the previously seen copy's
/// destination register.
- /// \p LocalMIs contains all previous seen instructions. An optimized away
- /// instruction should be deleted from LocalMIs.
bool foldRedundantCopy(MachineInstr &MI,
- DenseMap<RegSubRegPair, MachineInstr *> &CopyMIs,
- SmallPtrSetImpl<MachineInstr *> &LocalMIs);
+ DenseMap<RegSubRegPair, MachineInstr *> &CopyMIs);
/// Is the register \p Reg a non-allocatable physical register?
bool isNAPhysCopy(Register Reg);
@@ -1355,19 +1351,18 @@ bool PeepholeOptimizer::isMoveImmediate(
MachineInstr &MI, SmallSet<Register, 4> &ImmDefRegs,
DenseMap<Register, MachineInstr *> &ImmDefMIs) {
const MCInstrDesc &MCID = MI.getDesc();
- if (MCID.getNumDefs() != 1 || !MI.getOperand(0).isReg())
+ if (!MI.isMoveImmediate())
return false;
- Register Reg = MI.getOperand(0).getReg();
- if (!Reg.isVirtual())
- return false;
-
- int64_t ImmVal;
- if (!MI.isMoveImmediate() && !TII->getConstValDefinedInReg(MI, Reg, ImmVal))
+ if (MCID.getNumDefs() != 1)
return false;
+ Register Reg = MI.getOperand(0).getReg();
+ if (Reg.isVirtual()) {
+ ImmDefMIs.insert(std::make_pair(Reg, &MI));
+ ImmDefRegs.insert(Reg);
+ return true;
+ }
- ImmDefMIs.insert(std::make_pair(Reg, &MI));
- ImmDefRegs.insert(Reg);
- return true;
+ return false;
}
/// Try folding register operands that are defined by move immediate
@@ -1375,8 +1370,7 @@ bool PeepholeOptimizer::isMoveImmediate(
/// and only if the def and use are in the same BB.
bool PeepholeOptimizer::foldImmediate(
MachineInstr &MI, SmallSet<Register, 4> &ImmDefRegs,
- DenseMap<Register, MachineInstr *> &ImmDefMIs, bool &Deleted) {
- Deleted = false;
+ DenseMap<Register, MachineInstr *> &ImmDefMIs) {
for (unsigned i = 0, e = MI.getDesc().getNumOperands(); i != e; ++i) {
MachineOperand &MO = MI.getOperand(i);
if (!MO.isReg() || MO.isDef())
@@ -1390,19 +1384,6 @@ bool PeepholeOptimizer::foldImmediate(
assert(II != ImmDefMIs.end() && "couldn't find immediate definition");
if (TII->FoldImmediate(MI, *II->second, Reg, MRI)) {
++NumImmFold;
- // FoldImmediate can delete ImmDefMI if MI was its only user. If ImmDefMI
- // is not deleted, and we happened to get a same MI, we can delete MI and
- // replace its users.
- if (MRI->getVRegDef(Reg) &&
- MI.isIdenticalTo(*II->second, MachineInstr::IgnoreVRegDefs)) {
- Register DstReg = MI.getOperand(0).getReg();
- if (DstReg.isVirtual() &&
- MRI->getRegClass(DstReg) == MRI->getRegClass(Reg)) {
- MRI->replaceRegWith(DstReg, Reg);
- MI.eraseFromParent();
- Deleted = true;
- }
- }
return true;
}
}
@@ -1424,8 +1405,7 @@ bool PeepholeOptimizer::foldImmediate(
//
// Should replace %2 uses with %1:sub1
bool PeepholeOptimizer::foldRedundantCopy(
- MachineInstr &MI, DenseMap<RegSubRegPair, MachineInstr *> &CopyMIs,
- SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
+ MachineInstr &MI, DenseMap<RegSubRegPair, MachineInstr *> &CopyMIs) {
assert(MI.isCopy() && "expected a COPY machine instruction");
Register SrcReg = MI.getOperand(1).getReg();
@@ -1445,10 +1425,6 @@ bool PeepholeOptimizer::foldRedundantCopy(
}
MachineInstr *PrevCopy = CopyMIs.find(SrcPair)->second;
- // A COPY instruction can be deleted or changed by other optimizations.
- // Check if the previous COPY instruction is existing and still a COPY.
- if (!LocalMIs.count(PrevCopy) || !PrevCopy->isCopy())
- return false;
assert(SrcSubReg == PrevCopy->getOperand(1).getSubReg() &&
"Unexpected mismatching subreg!");
@@ -1756,7 +1732,7 @@ bool PeepholeOptimizer::runOnMachineFunction(MachineFunction &MF) {
continue;
}
- if (MI->isCopy() && (foldRedundantCopy(*MI, CopySrcMIs, LocalMIs) ||
+ if (MI->isCopy() && (foldRedundantCopy(*MI, CopySrcMIs) ||
foldRedundantNAPhysCopy(*MI, NAPhysToVirtMIs))) {
LocalMIs.erase(MI);
LLVM_DEBUG(dbgs() << "Deleting redundant copy: " << *MI << "\n");
@@ -1774,14 +1750,8 @@ bool PeepholeOptimizer::runOnMachineFunction(MachineFunction &MF) {
// next iteration sees the new instructions.
MII = MI;
++MII;
- if (SeenMoveImm) {
- bool Deleted;
- Changed |= foldImmediate(*MI, ImmDefRegs, ImmDefMIs, Deleted);
- if (Deleted) {
- LocalMIs.erase(MI);
- continue;
- }
- }
+ if (SeenMoveImm)
+ Changed |= foldImmediate(*MI, ImmDefRegs, ImmDefMIs);
}
// Check whether MI is a load candidate for folding into a later
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 4c6854da0ada3d2..8e42ef54b67ac11 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -3867,42 +3867,12 @@ bool X86InstrInfo::verifyInstruction(const MachineInstr &MI,
bool X86InstrInfo::getConstValDefinedInReg(const MachineInstr &MI,
const Register Reg,
int64_t &ImmVal) const {
- Register MovReg = Reg;
- const MachineInstr *MovMI = &MI;
-
- // Follow use-def for SUBREG_TO_REG to find the real move immediate
- // instruction. It is quite common for x86-64.
- if (MI.isSubregToReg()) {
- // We use following pattern to setup 64b immediate.
- // %8:gr32 = MOV32r0 implicit-def dead $eflags
- // %6:gr64 = SUBREG_TO_REG 0, killed %8:gr32, %subreg.sub_32bit
- if (!MI.getOperand(1).isImm())
- return false;
- unsigned FillBits = MI.getOperand(1).getImm();
- unsigned SubIdx = MI.getOperand(3).getImm();
- MovReg = MI.getOperand(2).getReg();
- if (SubIdx != X86::sub_32bit || FillBits != 0)
- return false;
- const MachineRegisterInfo &MRI = MI.getParent()->getParent()->getRegInfo();
- MovMI = MRI.getUniqueVRegDef(MovReg);
- if (!MovMI)
- return false;
- }
-
- if (MovMI->getOpcode() == X86::MOV32r0 &&
- MovMI->getOperand(0).getReg() == MovReg) {
- ImmVal = 0;
- return true;
- }
-
- if (MovMI->getOpcode() != X86::MOV32ri &&
- MovMI->getOpcode() != X86::MOV64ri &&
- MovMI->getOpcode() != X86::MOV32ri64 && MovMI->getOpcode() != X86::MOV8ri)
+ if (MI.getOpcode() != X86::MOV32ri && MI.getOpcode() != X86::MOV64ri)
return false;
// Mov Src can be a global address.
- if (!MovMI->getOperand(1).isImm() || MovMI->getOperand(0).getReg() != MovReg)
+ if (!MI.getOperand(1).isImm() || MI.getOperand(0).getReg() != Reg)
return false;
- ImmVal = MovMI->getOperand(1).getImm();
+ ImmVal = MI.getOperand(1).getImm();
return true;
}
@@ -4799,310 +4769,6 @@ MachineInstr *X86InstrInfo::optimizeLoadInstr(MachineInstr &MI,
return nullptr;
}
-/// Convert an ALUrr opcode to corresponding ALUri opcode. Such as
-/// ADD32rr ==> ADD32ri
-/// ShiftRotate will be set to true if the Opcode is shift or rotate.
-/// If the ALUri can be further changed to COPY when the immediate is 0, set
-/// CanConvert2Copy to true.
-static unsigned ConvertALUrr2ALUri(unsigned Opcode, bool &CanConvert2Copy,
- bool &ShiftRotate) {
- CanConvert2Copy = false;
- ShiftRotate = false;
- unsigned NewOpcode = 0;
- switch (Opcode) {
- case X86::ADD64rr:
- NewOpcode = X86::ADD64ri32;
- CanConvert2Copy = true;
- break;
- case X86::ADC64rr:
- NewOpcode = X86::ADC64ri32;
- break;
- case X86::SUB64rr:
- NewOpcode = X86::SUB64ri32;
- CanConvert2Copy = true;
- break;
- case X86::SBB64rr:
- NewOpcode = X86::SBB64ri32;
- break;
- case X86::AND64rr:
- NewOpcode = X86::AND64ri32;
- break;
- case X86::OR64rr:
- NewOpcode = X86::OR64ri32;
- CanConvert2Copy = true;
- break;
- case X86::XOR64rr:
- NewOpcode = X86::XOR64ri32;
- CanConvert2Copy = true;
- break;
- case X86::TEST64rr:
- NewOpcode = X86::TEST64ri32;
- break;
- case X86::CMP64rr:
- NewOpcode = X86::CMP64ri32;
- break;
- case X86::SHR64rCL:
- NewOpcode = X86::SHR64ri;
- ShiftRotate = true;
- break;
- case X86::SHL64rCL:
- NewOpcode = X86::SHL64ri;
- ShiftRotate = true;
- break;
- case X86::SAR64rCL:
- NewOpcode = X86::SAR64ri;
- ShiftRotate = true;
- break;
- case X86::ROL64rCL:
- NewOpcode = X86::ROL64ri;
- ShiftRotate = true;
- break;
- case X86::ROR64rCL:
- NewOpcode = X86::ROR64ri;
- ShiftRotate = true;
- break;
- case X86::RCL64rCL:
- NewOpcode = X86::RCL64ri;
- ShiftRotate = true;
- break;
- case X86::RCR64rCL:
- NewOpcode = X86::RCR64ri;
- ShiftRotate = true;
- break;
- case X86::ADD32rr:
- NewOpcode = X86::ADD32ri;
- CanConvert2Copy = true;
- break;
- case X86::ADC32rr:
- NewOpcode = X86::ADC32ri;
- break;
- case X86::SUB32rr:
- NewOpcode = X86::SUB32ri;
- CanConvert2Copy = true;
- break;
- case X86::SBB32rr:
- NewOpcode = X86::SBB32ri;
- break;
- case X86::AND32rr:
- NewOpcode = X86::AND32ri;
- break;
- case X86::OR32rr:
- NewOpcode = X86::OR32ri;
- CanConvert2Copy = true;
- break;
- case X86::XOR32rr:
- NewOpcode = X86::XOR32ri;
- CanConvert2Copy = true;
- break;
- case X86::TEST32rr:
- NewOpcode = X86::TEST32ri;
- break;
- case X86::CMP32rr:
- NewOpcode = X86::CMP32ri;
- break;
- case X86::SHR32rCL:
- NewOpcode = X86::SHR32ri;
- ShiftRotate = true;
- break;
- case X86::SHL32rCL:
- NewOpcode = X86::SHL32ri;
- ShiftRotate = true;
- break;
- case X86::SAR32rCL:
- NewOpcode = X86::SAR32ri;
- ShiftRotate = true;
- break;
- case X86::ROL32rCL:
- NewOpcode = X86::ROL32ri;
- ShiftRotate = true;
- break;
- case X86::ROR32rCL:
- NewOpcode = X86::ROR32ri;
- ShiftRotate = true;
- break;
- case X86::RCL32rCL:
- NewOpcode = X86::RCL32ri;
- ShiftRotate = true;
- break;
- case X86::RCR32rCL:
- NewOpcode = X86::RCR32ri;
- ShiftRotate = true;
- break;
- }
- return NewOpcode;
-}
-
-/// Real implementation of FoldImmediate.
-/// Reg is assigned ImmVal in DefMI, and is used in UseMI.
-/// If MakeChange is true, this function tries to replace Reg by ImmVal in
-/// UseMI. If MakeChange is false, just check if folding is possible.
-/// Return true if folding is successful or possible.
-bool X86InstrInfo::FoldImmediateImpl(MachineInstr &UseMI, MachineInstr *DefMI,
- Register Reg, int64_t ImmVal,
- MachineRegisterInfo *MRI,
- bool MakeChange) const {
- bool Modified = false;
- bool ShiftRotate = false;
- // When ImmVal is 0, some instructions can be changed to COPY.
- bool CanChangeToCopy = false;
- unsigned Opc = UseMI.getOpcode();
-
- // 64 bit operations accept sign extended 32 bit immediates.
- // 32 bit operations accept all 32 bit immediates, so we don't need to check
- // them.
- const TargetRegisterClass *RC = nullptr;
- if (Reg.isVirtual())
- RC = MRI->getRegClass(Reg);
- if ((Reg.isPhysical() && X86::GR64RegClass.contains(Reg)) ||
- (Reg.isVirtual() && X86::GR64RegClass.hasSubClassEq(RC))) {
- if (!isInt<32>(ImmVal))
- return false;
- }
-
- if (UseMI.findRegisterUseOperand(Reg)->getSubReg())
- return false;
- // Immediate has larger code size than register. So avoid folding the
- // immediate if it has more than 1 use and we are optimizing for size.
- if (UseMI.getMF()->getFunction().hasOptSize() && Reg.isVirtual() &&
- !MRI->hasOneNonDBGUse(Reg))
- return false;
-
- unsigned NewOpc;
- if (Opc == TargetOpcode::COPY) {
- Register ToReg = UseMI.getOperand(0).getReg();
- const TargetRegisterClass *RC = nullptr;
- if (ToReg.isVirtual())
- RC = MRI->getRegClass(ToReg);
- bool GR32Reg = (ToReg.isVirtual() && X86::GR32RegClass.hasSubClassEq(RC)) ||
- (ToReg.isPhysical() && X86::GR32RegClass.contains(ToReg));
- bool GR64Reg = (ToReg.isVirtual() && X86::GR64RegClass.hasSubClassEq(RC)) ||
- (ToReg.isPhysical() && X86::GR64RegClass.contains(ToReg));
- bool GR8Reg = (ToReg.isVirtual() && X86::GR8RegClass.hasSubClassEq(RC)) ||
- (ToReg.isPhysical() && X86::GR8RegClass.contains(ToReg));
-
- if (ImmVal == 0) {
- // We have MOV32r0 only.
- if (!GR32Reg)
- return false;
- }
-
- if (GR64Reg) {
- if (isUInt<32>(ImmVal))
- NewOpc = X86::MOV32ri64;
- else
- NewOpc = X86::MOV64ri;
- } else if (GR32Reg) {
- NewOpc = X86::MOV32ri;
- if (ImmVal == 0) {
- // MOV32r0 clobbers EFLAGS.
- const TargetRegisterInfo *TRI = &getRegisterInfo();
- if (UseMI.getParent()->computeRegisterLiveness(TRI, X86::EFLAGS, UseMI)
- != MachineBasicBlock::LQR_Dead)
- return false;
-
- // MOV32r0 is
diff erent than other cases because it doesn't encode the
- // immediate in the instruction. So we directly modify it here.
- if (!MakeChange)
- return true;
- UseMI.setDesc(get(X86::MOV32r0));
- UseMI.removeOperand(UseMI.findRegisterUseOperandIdx(Reg));
- UseMI.addOperand(MachineOperand::CreateReg(X86::EFLAGS, /*isDef=*/ true,
- /*isImp=*/ true,
- /*isKill=*/ false,
- /*isDead=*/ true));
- Modified = true;
- }
- } else if (GR8Reg)
- NewOpc = X86::MOV8ri;
- else
- return false;
- } else
- NewOpc = ConvertALUrr2ALUri(Opc, CanChangeToCopy, ShiftRotate);
-
- if (!NewOpc)
- return false;
-
- // For SUB instructions the immediate can only be the second source operand.
- if ((NewOpc == X86::SUB64ri32 || NewOpc == X86::SUB32ri ||
- NewOpc == X86::SBB64ri32 || NewOpc == X86::SBB32ri) &&
- UseMI.findRegisterUseOperandIdx(Reg) != 2)
- return false;
- // For CMP instructions the immediate can only be at index 1.
- if ((NewOpc == X86::CMP64ri32 || NewOpc == X86::CMP32ri) &&
- UseMI.findRegisterUseOperandIdx(Reg) != 1)
- return false;
-
- if (ShiftRotate) {
- unsigned RegIdx = UseMI.findRegisterUseOperandIdx(Reg);
- if (RegIdx < 2)
- return false;
- if (!isInt<8>(ImmVal))
- return false;
- assert(Reg == X86::CL);
-
- if (!MakeChange)
- return true;
- UseMI.setDesc(get(NewOpc));
- UseMI.removeOperand(RegIdx);
- UseMI.addOperand(MachineOperand::CreateImm(ImmVal));
- // Reg is physical register $cl, so we don't know if DefMI is dead through
- // MRI. Let the caller handle it, or pass dead-mi-elimination can delete
- // the dead physical register define instruction.
- return true;
- }
-
- if (!MakeChange)
- return true;
-
- if (!Modified) {
- // Modify the instruction.
- if (ImmVal == 0 && CanChangeToCopy &&
- UseMI.registerDefIsDead(X86::EFLAGS)) {
- // %100 = add %101, 0
- // ==>
- // %100 = COPY %101
- UseMI.setDesc(get(TargetOpcode::COPY));
- UseMI.removeOperand(UseMI.findRegisterUseOperandIdx(Reg));
- UseMI.removeOperand(UseMI.findRegisterDefOperandIdx(X86::EFLAGS));
- UseMI.untieRegOperand(0);
- UseMI.clearFlag(MachineInstr::MIFlag::NoSWrap);
- UseMI.clearFlag(MachineInstr::MIFlag::NoUWrap);
- } else {
- unsigned Op1 = 1, Op2 = CommuteAnyOperandIndex;
- unsigned ImmOpNum = 2;
- if (!UseMI.getOperand(0).isDef()) {
- Op1 = 0; // TEST, CMP
- ImmOpNum = 1;
- }
- if (Opc == TargetOpcode::COPY)
- ImmOpNum = 1;
- if (findCommutedOpIndices(UseMI, Op1, Op2) &&
- UseMI.getOperand(Op1).getReg() == Reg)
- commuteInstruction(UseMI);
-
- assert(UseMI.getOperand(ImmOpNum).getReg() == Reg);
- UseMI.setDesc(get(NewOpc));
- UseMI.getOperand(ImmOpNum).ChangeToImmediate(ImmVal);
- }
- }
-
- if (Reg.isVirtual() && MRI->use_nodbg_empty(Reg))
- DefMI->eraseFromBundle();
-
- return true;
-}
-
-/// FoldImmediate - 'Reg' is known to be defined by a move immediate
-/// instruction, try to fold the immediate into the use instruction.
-bool X86InstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
- Register Reg, MachineRegisterInfo *MRI) const {
- int64_t ImmVal;
- if (!getConstValDefinedInReg(DefMI, Reg, ImmVal))
- return false;
-
- return FoldImmediateImpl(UseMI, &DefMI, Reg, ImmVal, MRI, true);
-}
-
/// Expand a single-def pseudo instruction to a two-addr
/// instruction with two undef reads of the register being defined.
/// This is used for mapping:
diff --git a/llvm/lib/Target/X86/X86InstrInfo.h b/llvm/lib/Target/X86/X86InstrInfo.h
index e1199e20c318e24..7552410c8d5799e 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.h
+++ b/llvm/lib/Target/X86/X86InstrInfo.h
@@ -550,15 +550,6 @@ class X86InstrInfo final : public X86GenInstrInfo {
Register &FoldAsLoadDefReg,
MachineInstr *&DefMI) const override;
- bool FoldImmediateImpl(MachineInstr &UseMI, MachineInstr *DefMI, Register Reg,
- int64_t ImmVal, MachineRegisterInfo *MRI,
- bool MakeChange) const;
-
- /// Reg is known to be defined by a move immediate instruction, try to fold
- /// the immediate into the use instruction.
- bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, Register Reg,
- MachineRegisterInfo *MRI) const override;
-
std::pair<unsigned, unsigned>
decomposeMachineOperandsTargetFlags(unsigned TF) const override;
diff --git a/llvm/test/CodeGen/AMDGPU/peephole-fold-imm.mir b/llvm/test/CodeGen/AMDGPU/peephole-fold-imm.mir
index ade192bde4dcaa3..204c1367d84d874 100644
--- a/llvm/test/CodeGen/AMDGPU/peephole-fold-imm.mir
+++ b/llvm/test/CodeGen/AMDGPU/peephole-fold-imm.mir
@@ -8,6 +8,7 @@ body: |
; GCN-LABEL: name: fold_simm_virtual
; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0
+ ; GCN-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 0
; GCN-NEXT: SI_RETURN_TO_EPILOG
%0:sreg_32 = S_MOV_B32 0
%1:sreg_32 = COPY killed %0
diff --git a/llvm/test/CodeGen/X86/GlobalISel/phi.ll b/llvm/test/CodeGen/X86/GlobalISel/phi.ll
index b29540f00259813..d2ce98d0fb41ad0 100644
--- a/llvm/test/CodeGen/X86/GlobalISel/phi.ll
+++ b/llvm/test/CodeGen/X86/GlobalISel/phi.ll
@@ -4,7 +4,8 @@
define i8 @test_i8(i32 %a, i8 %f, i8 %t) {
; ALL-LABEL: test_i8:
; ALL: # %bb.0: # %entry
-; ALL-NEXT: cmpl $0, %edi
+; ALL-NEXT: xorl %ecx, %ecx
+; ALL-NEXT: cmpl %ecx, %edi
; ALL-NEXT: setg %cl
; ALL-NEXT: testb $1, %cl
; ALL-NEXT: je .LBB0_2
@@ -34,7 +35,8 @@ cond.end: ; preds = %cond.false, %cond.t
define i16 @test_i16(i32 %a, i16 %f, i16 %t) {
; ALL-LABEL: test_i16:
; ALL: # %bb.0: # %entry
-; ALL-NEXT: cmpl $0, %edi
+; ALL-NEXT: xorl %ecx, %ecx
+; ALL-NEXT: cmpl %ecx, %edi
; ALL-NEXT: setg %cl
; ALL-NEXT: testb $1, %cl
; ALL-NEXT: je .LBB1_2
@@ -65,7 +67,8 @@ define i32 @test_i32(i32 %a, i32 %f, i32 %t) {
; ALL-LABEL: test_i32:
; ALL: # %bb.0: # %entry
; ALL-NEXT: movl %esi, %eax
-; ALL-NEXT: cmpl $0, %edi
+; ALL-NEXT: xorl %ecx, %ecx
+; ALL-NEXT: cmpl %ecx, %edi
; ALL-NEXT: setg %cl
; ALL-NEXT: testb $1, %cl
; ALL-NEXT: je .LBB2_1
@@ -93,7 +96,8 @@ define i64 @test_i64(i32 %a, i64 %f, i64 %t) {
; ALL-LABEL: test_i64:
; ALL: # %bb.0: # %entry
; ALL-NEXT: movq %rsi, %rax
-; ALL-NEXT: cmpl $0, %edi
+; ALL-NEXT: xorl %ecx, %ecx
+; ALL-NEXT: cmpl %ecx, %edi
; ALL-NEXT: setg %cl
; ALL-NEXT: testb $1, %cl
; ALL-NEXT: je .LBB3_1
@@ -120,7 +124,8 @@ cond.end: ; preds = %cond.false, %cond.t
define float @test_float(i32 %a, float %f, float %t) {
; ALL-LABEL: test_float:
; ALL: # %bb.0: # %entry
-; ALL-NEXT: cmpl $0, %edi
+; ALL-NEXT: xorl %eax, %eax
+; ALL-NEXT: cmpl %eax, %edi
; ALL-NEXT: setg %al
; ALL-NEXT: testb $1, %al
; ALL-NEXT: je .LBB4_1
@@ -147,7 +152,8 @@ cond.end: ; preds = %cond.false, %cond.t
define double @test_double(i32 %a, double %f, double %t) {
; ALL-LABEL: test_double:
; ALL: # %bb.0: # %entry
-; ALL-NEXT: cmpl $0, %edi
+; ALL-NEXT: xorl %eax, %eax
+; ALL-NEXT: cmpl %eax, %edi
; ALL-NEXT: setg %al
; ALL-NEXT: testb $1, %al
; ALL-NEXT: je .LBB5_1
diff --git a/llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll b/llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
index e12ca56023a7f2c..d26f4b7044cf3c0 100644
--- a/llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
+++ b/llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
@@ -178,15 +178,15 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: pushl %edi
; X86-NEXT: pushl %esi
; X86-NEXT: subl $152, %esp
-; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
+; X86-NEXT: movl {{[0-9]+}}(%esp), %ebp
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl %ecx, %eax
; X86-NEXT: sarl $31, %eax
-; X86-NEXT: movl %edx, %edi
-; X86-NEXT: sarl $31, %edi
+; X86-NEXT: movl %ebp, %edx
+; X86-NEXT: sarl $31, %edx
; X86-NEXT: movl %eax, %esi
; X86-NEXT: xorl %ecx, %esi
-; X86-NEXT: movl %esi, %ebp
+; X86-NEXT: movl %esi, %edi
; X86-NEXT: movl %eax, %ecx
; X86-NEXT: xorl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl %ecx, %ebx
@@ -195,67 +195,66 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl %eax, %esi
; X86-NEXT: xorl {{[0-9]+}}(%esp), %esi
; X86-NEXT: subl %eax, %esi
-; X86-NEXT: movl %esi, (%esp) # 4-byte Spill
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: sbbl %eax, %ecx
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: sbbl %eax, %ebx
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: sbbl %eax, %ebp
-; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %edi, %esi
-; X86-NEXT: xorl %edx, %esi
-; X86-NEXT: movl %edi, %edx
-; X86-NEXT: xorl {{[0-9]+}}(%esp), %edx
-; X86-NEXT: movl %edi, %ebx
+; X86-NEXT: movl %ebx, (%esp) # 4-byte Spill
+; X86-NEXT: sbbl %eax, %edi
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %edx, %edi
+; X86-NEXT: xorl %ebp, %edi
+; X86-NEXT: movl %edx, %ebx
; X86-NEXT: xorl {{[0-9]+}}(%esp), %ebx
-; X86-NEXT: movl %edi, %ebp
+; X86-NEXT: movl %edx, %esi
+; X86-NEXT: xorl {{[0-9]+}}(%esp), %esi
+; X86-NEXT: movl %edx, %ebp
; X86-NEXT: xorl {{[0-9]+}}(%esp), %ebp
-; X86-NEXT: subl %edi, %ebp
-; X86-NEXT: sbbl %edi, %ebx
-; X86-NEXT: sbbl %edi, %edx
-; X86-NEXT: sbbl %edi, %esi
-; X86-NEXT: xorl %eax, %edi
-; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %ebx, %eax
-; X86-NEXT: orl %esi, %eax
+; X86-NEXT: subl %edx, %ebp
+; X86-NEXT: sbbl %edx, %esi
+; X86-NEXT: sbbl %edx, %ebx
+; X86-NEXT: sbbl %edx, %edi
+; X86-NEXT: xorl %eax, %edx
+; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %esi, %eax
+; X86-NEXT: orl %edi, %eax
; X86-NEXT: movl %ebp, %ecx
-; X86-NEXT: orl %edx, %ecx
-; X86-NEXT: movl %edx, %edi
+; X86-NEXT: orl %ebx, %ecx
; X86-NEXT: orl %eax, %ecx
; X86-NEXT: sete %cl
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
-; X86-NEXT: movl (%esp), %edx # 4-byte Reload
-; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
+; X86-NEXT: orl (%esp), %edx # 4-byte Folded Reload
; X86-NEXT: orl %eax, %edx
; X86-NEXT: sete %al
; X86-NEXT: orb %cl, %al
; X86-NEXT: movb %al, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
-; X86-NEXT: bsrl %esi, %edx
+; X86-NEXT: bsrl %edi, %edx
; X86-NEXT: xorl $31, %edx
-; X86-NEXT: bsrl %edi, %ecx
+; X86-NEXT: bsrl %ebx, %ecx
; X86-NEXT: xorl $31, %ecx
; X86-NEXT: addl $32, %ecx
-; X86-NEXT: testl %esi, %esi
+; X86-NEXT: testl %edi, %edi
; X86-NEXT: cmovnel %edx, %ecx
-; X86-NEXT: bsrl %ebx, %edx
+; X86-NEXT: bsrl %esi, %edx
; X86-NEXT: xorl $31, %edx
; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: bsrl %ebp, %ebp
; X86-NEXT: xorl $31, %ebp
; X86-NEXT: addl $32, %ebp
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: testl %ebx, %ebx
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: testl %esi, %esi
; X86-NEXT: cmovnel %edx, %ebp
; X86-NEXT: addl $64, %ebp
+; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: orl %esi, %edi
+; X86-NEXT: orl %edi, %ebx
; X86-NEXT: cmovnel %ecx, %ebp
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
; X86-NEXT: bsrl %edi, %edx
; X86-NEXT: xorl $31, %edx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
+; X86-NEXT: movl (%esp), %eax # 4-byte Reload
; X86-NEXT: bsrl %eax, %ecx
; X86-NEXT: xorl $31, %ecx
; X86-NEXT: addl $32, %ecx
@@ -264,7 +263,7 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
; X86-NEXT: bsrl %ebx, %esi
; X86-NEXT: xorl $31, %esi
-; X86-NEXT: bsrl (%esp), %edx # 4-byte Folded Reload
+; X86-NEXT: bsrl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
; X86-NEXT: xorl $31, %edx
; X86-NEXT: addl $32, %edx
; X86-NEXT: testl %ebx, %ebx
@@ -273,137 +272,149 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl %eax, %esi
; X86-NEXT: orl %edi, %esi
; X86-NEXT: cmovnel %ecx, %edx
-; X86-NEXT: xorl %esi, %esi
+; X86-NEXT: xorl %ebx, %ebx
; X86-NEXT: subl %edx, %ebp
-; X86-NEXT: movl $0, %ebx
-; X86-NEXT: sbbl %ebx, %ebx
-; X86-NEXT: movl $0, %edx
-; X86-NEXT: sbbl %edx, %edx
; X86-NEXT: movl $0, %eax
; X86-NEXT: sbbl %eax, %eax
+; X86-NEXT: movl $0, %edx
+; X86-NEXT: sbbl %edx, %edx
+; X86-NEXT: movl $0, %esi
+; X86-NEXT: sbbl %esi, %esi
; X86-NEXT: movl $127, %ecx
; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: cmpl %ebp, %ecx
+; X86-NEXT: movl %esi, %ebp
; X86-NEXT: movl $0, %ecx
-; X86-NEXT: sbbl %ebx, %ecx
+; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: sbbl %eax, %ecx
; X86-NEXT: movl $0, %ecx
; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: sbbl %edx, %ecx
; X86-NEXT: movl $0, %ecx
-; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: sbbl %eax, %ecx
+; X86-NEXT: sbbl %esi, %ecx
; X86-NEXT: setb %cl
; X86-NEXT: orb {{[-0-9]+}}(%e{{[sb]}}p), %cl # 1-byte Folded Reload
-; X86-NEXT: cmovnel %esi, %edi
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
-; X86-NEXT: cmovnel %esi, %edx
+; X86-NEXT: cmovnel %ebx, %edi
+; X86-NEXT: movl (%esp), %edx # 4-byte Reload
+; X86-NEXT: cmovnel %ebx, %edx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: cmovnel %esi, %eax
-; X86-NEXT: cmovel (%esp), %esi # 4-byte Folded Reload
-; X86-NEXT: movl {{[0-9]+}}(%esp), %ebp
-; X86-NEXT: jne .LBB4_8
-; X86-NEXT: # %bb.1: # %_udiv-special-cases
-; X86-NEXT: movl %ebx, %ecx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
-; X86-NEXT: xorl $127, %ebx
-; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
-; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
+; X86-NEXT: cmovnel %ebx, %eax
+; X86-NEXT: cmovel {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
+; X86-NEXT: movl %ebx, %esi
+; X86-NEXT: jne .LBB4_1
+; X86-NEXT: # %bb.8: # %_udiv-special-cases
+; X86-NEXT: movl %ebp, %ebx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
+; X86-NEXT: xorl $127, %ebp
+; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
+; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: orl %ebx, %ecx
-; X86-NEXT: je .LBB4_8
-; X86-NEXT: # %bb.2: # %udiv-bb1
-; X86-NEXT: movl (%esp), %eax # 4-byte Reload
-; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
+; X86-NEXT: orl %ebp, %ecx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: je .LBB4_9
+; X86-NEXT: # %bb.5: # %udiv-bb1
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
+; X86-NEXT: movl (%esp), %eax # 4-byte Reload
+; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: # kill: def $al killed $al killed $eax
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
+; X86-NEXT: movl %ecx, %eax
+; X86-NEXT: movl %ecx, %ebp
; X86-NEXT: xorb $127, %al
; X86-NEXT: movb %al, %ch
; X86-NEXT: andb $7, %ch
; X86-NEXT: shrb $3, %al
; X86-NEXT: andb $15, %al
; X86-NEXT: negb %al
-; X86-NEXT: movsbl %al, %ebx
-; X86-NEXT: movl 144(%esp,%ebx), %edx
-; X86-NEXT: movl 148(%esp,%ebx), %edi
+; X86-NEXT: movsbl %al, %edi
+; X86-NEXT: movl 144(%esp,%edi), %edx
+; X86-NEXT: movl 148(%esp,%edi), %esi
; X86-NEXT: movb %ch, %cl
-; X86-NEXT: shldl %cl, %edx, %edi
+; X86-NEXT: shldl %cl, %edx, %esi
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: shll %cl, %edx
; X86-NEXT: notb %cl
-; X86-NEXT: movl 140(%esp,%ebx), %eax
+; X86-NEXT: movl 140(%esp,%edi), %eax
; X86-NEXT: movl %eax, %esi
; X86-NEXT: shrl %esi
; X86-NEXT: shrl %cl, %esi
; X86-NEXT: orl %edx, %esi
; X86-NEXT: movl %esi, %edx
-; X86-NEXT: movl 136(%esp,%ebx), %esi
+; X86-NEXT: movl 136(%esp,%edi), %esi
; X86-NEXT: movb %ch, %cl
; X86-NEXT: shldl %cl, %esi, %eax
; X86-NEXT: shll %cl, %esi
; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: addl $1, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
+; X86-NEXT: addl $1, %ebp
+; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: adcl $0, %ecx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
-; X86-NEXT: adcl $0, %ebx
-; X86-NEXT: adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
-; X86-NEXT: jae .LBB4_3
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
+; X86-NEXT: adcl $0, %edi
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
+; X86-NEXT: adcl $0, %esi
+; X86-NEXT: jae .LBB4_2
; X86-NEXT: # %bb.6:
-; X86-NEXT: xorl %ebx, %ebx
-; X86-NEXT: xorl %esi, %esi
+; X86-NEXT: xorl %ebp, %ebp
+; X86-NEXT: xorl %ecx, %ecx
; X86-NEXT: jmp .LBB4_7
-; X86-NEXT: .LBB4_3: # %udiv-preheader
-; X86-NEXT: movl (%esp), %esi # 4-byte Reload
-; X86-NEXT: movl %esi, {{[0-9]+}}(%esp)
+; X86-NEXT: .LBB4_1:
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: jmp .LBB4_9
+; X86-NEXT: .LBB4_2: # %udiv-preheader
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
; X86-NEXT: movl %esi, {{[0-9]+}}(%esp)
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
; X86-NEXT: movl %esi, {{[0-9]+}}(%esp)
+; X86-NEXT: movl (%esp), %esi # 4-byte Reload
+; X86-NEXT: movl %esi, {{[0-9]+}}(%esp)
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
; X86-NEXT: movl %esi, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
-; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movb %bl, %ch
; X86-NEXT: andb $7, %ch
; X86-NEXT: movb %bl, %cl
; X86-NEXT: shrb $3, %cl
; X86-NEXT: andb $15, %cl
-; X86-NEXT: movzbl %cl, %ebp
-; X86-NEXT: movl 100(%esp,%ebp), %esi
-; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl 96(%esp,%ebp), %ebx
-; X86-NEXT: movl %ebp, %eax
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movzbl %cl, %ebx
+; X86-NEXT: movl 100(%esp,%ebx), %esi
+; X86-NEXT: movl %esi, (%esp) # 4-byte Spill
+; X86-NEXT: movl 96(%esp,%ebx), %edi
; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %ebx, %edx
+; X86-NEXT: movl %edi, %ebp
; X86-NEXT: movb %ch, %cl
-; X86-NEXT: shrdl %cl, %esi, %edx
-; X86-NEXT: movl 88(%esp,%ebp), %ebp
-; X86-NEXT: movl 92(%esp,%eax), %esi
-; X86-NEXT: movl %esi, %eax
+; X86-NEXT: shrdl %cl, %esi, %ebp
+; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
+; X86-NEXT: movl 88(%esp,%ebx), %esi
+; X86-NEXT: movl 92(%esp,%ebx), %ebx
+; X86-NEXT: movl %ebx, %eax
; X86-NEXT: shrl %cl, %eax
; X86-NEXT: notb %cl
-; X86-NEXT: addl %ebx, %ebx
-; X86-NEXT: shll %cl, %ebx
-; X86-NEXT: orl %eax, %ebx
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: addl %edi, %edi
+; X86-NEXT: shll %cl, %edi
+; X86-NEXT: orl %eax, %edi
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movb %ch, %cl
-; X86-NEXT: shrl %cl, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
-; X86-NEXT: shrdl %cl, %esi, %ebp
+; X86-NEXT: shrl %cl, (%esp) # 4-byte Folded Spill
+; X86-NEXT: shrdl %cl, %ebx, %esi
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: addl $-1, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
@@ -413,117 +424,115 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: adcl $-1, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: movl %ecx, %eax
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: adcl $-1, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: xorl %esi, %esi
; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
; X86-NEXT: .p2align 4, 0x90
-; X86-NEXT: .LBB4_4: # %udiv-do-while
+; X86-NEXT: .LBB4_3: # %udiv-do-while
; X86-NEXT: # =>This Inner Loop Header: Depth=1
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
-; X86-NEXT: shldl $1, %edx, %ebx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
-; X86-NEXT: shldl $1, %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
+; X86-NEXT: movl %ebp, %edx
+; X86-NEXT: shldl $1, %ebp, (%esp) # 4-byte Folded Spill
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
; X86-NEXT: shldl $1, %ebp, %edx
-; X86-NEXT: shldl $1, %edi, %ebp
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: shldl $1, %eax, %edi
-; X86-NEXT: orl %esi, %edi
-; X86-NEXT: movl %edi, (%esp) # 4-byte Spill
-; X86-NEXT: movl %ecx, %edi
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: shldl $1, %ebx, %ebp
+; X86-NEXT: shldl $1, %esi, %ebx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: shldl $1, %ecx, %eax
-; X86-NEXT: orl %esi, %eax
-; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: shldl $1, %ecx, %esi
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: shldl $1, %eax, %ecx
-; X86-NEXT: orl %esi, %ecx
+; X86-NEXT: orl %eax, %esi
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
+; X86-NEXT: shldl $1, %edi, %ecx
+; X86-NEXT: orl %eax, %ecx
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: addl %eax, %eax
-; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
-; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: cmpl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: sbbl %edx, %ecx
+; X86-NEXT: shldl $1, %ecx, %edi
+; X86-NEXT: orl %eax, %edi
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: addl %ecx, %ecx
+; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
+; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: cmpl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: sbbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
+; X86-NEXT: sbbl %ebp, %ecx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
+; X86-NEXT: sbbl %edx, %ecx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: sbbl %ebx, %ecx
+; X86-NEXT: sbbl (%esp), %ecx # 4-byte Folded Reload
; X86-NEXT: sarl $31, %ecx
; X86-NEXT: movl %ecx, %eax
; X86-NEXT: andl $1, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %ecx, %esi
-; X86-NEXT: andl %edi, %esi
+; X86-NEXT: movl %ecx, %eax
+; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
+; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %ecx, %edi
; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
; X86-NEXT: movl %ecx, %eax
; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
; X86-NEXT: andl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
-; X86-NEXT: subl %ecx, %ebp
-; X86-NEXT: sbbl %eax, %edx
-; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
-; X86-NEXT: sbbl %edi, %edx
-; X86-NEXT: movl (%esp), %edi # 4-byte Reload
-; X86-NEXT: sbbl %esi, %ebx
+; X86-NEXT: subl %ecx, %ebx
; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: sbbl %eax, %ebp
+; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: sbbl %edi, %edx
+; X86-NEXT: movl %edx, %ebp
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
+; X86-NEXT: sbbl %eax, (%esp) # 4-byte Folded Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: addl $-1, %ecx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: adcl $-1, %eax
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
-; X86-NEXT: adcl $-1, %esi
-; X86-NEXT: adcl $-1, %ebx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
+; X86-NEXT: adcl $-1, %edi
+; X86-NEXT: adcl $-1, %edx
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: orl %ebx, %eax
+; X86-NEXT: orl %edx, %eax
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: orl %esi, %ecx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: orl %edi, %ecx
; X86-NEXT: orl %eax, %ecx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: jne .LBB4_4
-; X86-NEXT: # %bb.5:
+; X86-NEXT: jne .LBB4_3
+; X86-NEXT: # %bb.4:
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: movl {{[0-9]+}}(%esp), %ebp
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
; X86-NEXT: .LBB4_7: # %udiv-loop-exit
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
; X86-NEXT: shldl $1, %edx, %edi
-; X86-NEXT: orl %esi, %edi
+; X86-NEXT: orl %ecx, %edi
; X86-NEXT: shldl $1, %eax, %edx
-; X86-NEXT: orl %esi, %edx
-; X86-NEXT: movl %esi, %ecx
+; X86-NEXT: orl %ecx, %edx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
; X86-NEXT: shldl $1, %esi, %eax
; X86-NEXT: orl %ecx, %eax
; X86-NEXT: addl %esi, %esi
-; X86-NEXT: orl %ebx, %esi
-; X86-NEXT: .LBB4_8: # %udiv-end
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: xorl %ecx, %edi
-; X86-NEXT: xorl %ecx, %edx
-; X86-NEXT: xorl %ecx, %eax
-; X86-NEXT: xorl %ecx, %esi
-; X86-NEXT: subl %ecx, %esi
+; X86-NEXT: orl %ebp, %esi
+; X86-NEXT: .LBB4_9: # %udiv-end
+; X86-NEXT: xorl %ebx, %edi
+; X86-NEXT: xorl %ebx, %edx
+; X86-NEXT: xorl %ebx, %eax
+; X86-NEXT: xorl %ebx, %esi
+; X86-NEXT: subl %ebx, %esi
; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: sbbl %ecx, %eax
+; X86-NEXT: sbbl %ebx, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: sbbl %ecx, %edx
-; X86-NEXT: sbbl %ecx, %edi
-; X86-NEXT: movl %edi, (%esp) # 4-byte Spill
-; X86-NEXT: movl %esi, (%ebp)
-; X86-NEXT: movl %eax, 4(%ebp)
-; X86-NEXT: movl %edx, 8(%ebp)
-; X86-NEXT: movl %edi, 12(%ebp)
+; X86-NEXT: sbbl %ebx, %edx
+; X86-NEXT: sbbl %ebx, %edi
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT: movl %esi, (%ecx)
+; X86-NEXT: movl %eax, 4(%ecx)
+; X86-NEXT: movl %edx, 8(%ecx)
+; X86-NEXT: movl %edi, 12(%ecx)
; X86-NEXT: movl {{[0-9]+}}(%esp), %edi
; X86-NEXT: movl {{[0-9]+}}(%esp), %ebp
; X86-NEXT: movl %edx, %ebx
@@ -532,7 +541,7 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %esi, %eax
; X86-NEXT: mull %edi
-; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %eax, (%esp) # 4-byte Spill
; X86-NEXT: movl %edx, %edi
; X86-NEXT: addl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Folded Reload
; X86-NEXT: adcl $0, %ecx
@@ -553,10 +562,10 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: adcl %eax, %edx
; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
-; X86-NEXT: movl (%esp), %ecx # 4-byte Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: imull %eax, %ecx
; X86-NEXT: mull %ebx
-; X86-NEXT: movl %eax, (%esp) # 4-byte Spill
+; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: imull {{[0-9]+}}(%esp), %ebx
; X86-NEXT: addl %edx, %ebx
; X86-NEXT: addl %ecx, %ebx
@@ -568,12 +577,12 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: mull %edx
; X86-NEXT: addl %edx, %ebp
; X86-NEXT: addl %ecx, %ebp
-; X86-NEXT: addl (%esp), %eax # 4-byte Folded Reload
+; X86-NEXT: addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
; X86-NEXT: adcl %ebx, %ebp
; X86-NEXT: addl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
; X86-NEXT: adcl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
-; X86-NEXT: subl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
+; X86-NEXT: subl (%esp), %edx # 4-byte Folded Reload
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: sbbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
; X86-NEXT: movl {{[0-9]+}}(%esp), %esi
diff --git a/llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll b/llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
index ae57d31167ba69a..ebb95f16a723c4c 100644
--- a/llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
+++ b/llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
@@ -304,7 +304,7 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl 128(%esp,%eax), %esi
; X86-NEXT: movb %ch, %cl
; X86-NEXT: shldl %cl, %edx, %esi
-; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %esi, (%esp) # 4-byte Spill
; X86-NEXT: shll %cl, %edx
; X86-NEXT: notb %cl
; X86-NEXT: movl 120(%esp,%eax), %ebp
@@ -319,10 +319,10 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: shll %cl, %ebp
; X86-NEXT: addl $1, %edi
; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: adcl $0, %ecx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: adcl $0, %eax
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
+; X86-NEXT: adcl $0, %edi
; X86-NEXT: adcl $0, %ebx
; X86-NEXT: jae .LBB4_3
; X86-NEXT: # %bb.6:
@@ -331,14 +331,14 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl %edx, %ebx
; X86-NEXT: jmp .LBB4_7
; X86-NEXT: .LBB4_3: # %udiv-preheader
-; X86-NEXT: movl {{[0-9]+}}(%esp), %edi
-; X86-NEXT: movl %edi, {{[0-9]+}}(%esp)
-; X86-NEXT: movl {{[0-9]+}}(%esp), %edi
-; X86-NEXT: movl %edi, {{[0-9]+}}(%esp)
-; X86-NEXT: movl {{[0-9]+}}(%esp), %edi
-; X86-NEXT: movl %edi, {{[0-9]+}}(%esp)
-; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT: movl %ecx, {{[0-9]+}}(%esp)
+; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT: movl %ecx, {{[0-9]+}}(%esp)
+; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
+; X86-NEXT: movl %ecx, {{[0-9]+}}(%esp)
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: movl %ecx, {{[0-9]+}}(%esp)
; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
@@ -348,23 +348,22 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: movb %al, %ch
; X86-NEXT: andb $7, %ch
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: # kill: def $al killed $al killed $eax
; X86-NEXT: shrb $3, %al
; X86-NEXT: andb $15, %al
; X86-NEXT: movzbl %al, %eax
-; X86-NEXT: movl 80(%esp,%eax), %edi
-; X86-NEXT: movl %edi, (%esp) # 4-byte Spill
+; X86-NEXT: movl 80(%esp,%eax), %ebp
; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl 76(%esp,%eax), %edi
; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %edi, %ebx
; X86-NEXT: movb %ch, %cl
-; X86-NEXT: movl (%esp), %edx # 4-byte Reload
-; X86-NEXT: shrdl %cl, %edx, %ebx
+; X86-NEXT: shrdl %cl, %ebp, %ebx
; X86-NEXT: movl 68(%esp,%eax), %esi
-; X86-NEXT: movl 72(%esp,%eax), %eax
-; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl 72(%esp,%eax), %edx
+; X86-NEXT: movl %edx, %eax
; X86-NEXT: shrl %cl, %eax
; X86-NEXT: notb %cl
; X86-NEXT: addl %edi, %edi
@@ -372,10 +371,8 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: orl %eax, %edi
; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movb %ch, %cl
-; X86-NEXT: movl (%esp), %edx # 4-byte Reload
-; X86-NEXT: shrl %cl, %edx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: shrdl %cl, %eax, %esi
+; X86-NEXT: shrl %cl, %ebp
+; X86-NEXT: shrdl %cl, %edx, %esi
; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
; X86-NEXT: addl $-1, %eax
@@ -386,20 +383,19 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NEXT: adcl $-1, %ecx
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
-; X86-NEXT: adcl $-1, %ecx
-; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl {{[0-9]+}}(%esp), %esi
+; X86-NEXT: adcl $-1, %esi
+; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
+; X86-NEXT: movl (%esp), %esi # 4-byte Reload
; X86-NEXT: .p2align 4, 0x90
; X86-NEXT: .LBB4_4: # %udiv-do-while
; X86-NEXT: # =>This Inner Loop Header: Depth=1
-; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: shldl $1, %ebx, %edx
-; X86-NEXT: movl %edx, (%esp) # 4-byte Spill
+; X86-NEXT: movl %ebx, (%esp) # 4-byte Spill
+; X86-NEXT: shldl $1, %ebx, %ebp
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
-; X86-NEXT: shldl $1, %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
+; X86-NEXT: shldl $1, %ebx, (%esp) # 4-byte Folded Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
; X86-NEXT: shldl $1, %edx, %ebx
; X86-NEXT: shldl $1, %esi, %edx
@@ -411,25 +407,27 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: shldl $1, %ecx, %eax
; X86-NEXT: orl %edi, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: shldl $1, %ebp, %ecx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
+; X86-NEXT: shldl $1, %eax, %ecx
; X86-NEXT: orl %edi, %ecx
; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: addl %ebp, %ebp
-; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
-; X86-NEXT: movl %ebp, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: addl %eax, %eax
+; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
+; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: cmpl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: sbbl %ebx, %ecx
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
-; X86-NEXT: sbbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: sbbl (%esp), %ecx # 4-byte Folded Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
+; X86-NEXT: sbbl %ebp, %ecx
; X86-NEXT: sarl $31, %ecx
; X86-NEXT: movl %ecx, %eax
; X86-NEXT: andl $1, %eax
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %ecx, %ebp
-; X86-NEXT: andl {{[0-9]+}}(%esp), %ebp
+; X86-NEXT: movl %ecx, %eax
+; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
+; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %ecx, %edi
; X86-NEXT: andl {{[0-9]+}}(%esp), %edi
; X86-NEXT: movl %ecx, %eax
@@ -439,35 +437,36 @@ define i128 @scalar_i128(i128 %x, i128 %y, ptr %divdst) nounwind {
; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: sbbl %eax, %ebx
; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: movl (%esp), %ebx # 4-byte Reload
; X86-NEXT: sbbl %edi, %ebx
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
-; X86-NEXT: sbbl %ebp, (%esp) # 4-byte Folded Spill
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
+; X86-NEXT: sbbl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Folded Reload
+; X86-NEXT: movl %ebp, (%esp) # 4-byte Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: addl $-1, %ecx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: adcl $-1, %eax
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
-; X86-NEXT: adcl $-1, %edi
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
; X86-NEXT: adcl $-1, %edx
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
+; X86-NEXT: adcl $-1, %edi
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: orl %edx, %eax
-; X86-NEXT: movl (%esp), %edx # 4-byte Reload
-; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
-; X86-NEXT: orl %edi, %ecx
+; X86-NEXT: orl %edi, %eax
+; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: orl %edx, %ecx
+; X86-NEXT: movl (%esp), %ebp # 4-byte Reload
; X86-NEXT: orl %eax, %ecx
; X86-NEXT: jne .LBB4_4
; X86-NEXT: # %bb.5:
-; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
+; X86-NEXT: movl %esi, (%esp) # 4-byte Spill
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
+; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebp # 4-byte Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
; X86-NEXT: .LBB4_7: # %udiv-loop-exit
-; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
+; X86-NEXT: movl (%esp), %edx # 4-byte Reload
; X86-NEXT: shldl $1, %esi, %edx
; X86-NEXT: orl %eax, %edx
; X86-NEXT: shldl $1, %ebx, %esi
diff --git a/llvm/test/CodeGen/X86/fast-isel-freeze.ll b/llvm/test/CodeGen/X86/fast-isel-freeze.ll
index 031bccb0187721d..8308a28e00a1d87 100644
--- a/llvm/test/CodeGen/X86/fast-isel-freeze.ll
+++ b/llvm/test/CodeGen/X86/fast-isel-freeze.ll
@@ -11,8 +11,8 @@ define i32 @freeze(i32 %t) {
;
; FAST-LABEL: freeze:
; FAST: # %bb.0:
-; FAST-NEXT: movl %edi, %eax
-; FAST-NEXT: xorl $10, %eax
+; FAST-NEXT: movl $10, %eax
+; FAST-NEXT: xorl %edi, %eax
; FAST-NEXT: retq
%1 = freeze i32 %t
%2 = freeze i32 10
diff --git a/llvm/test/CodeGen/X86/foldimmediate-size.ll b/llvm/test/CodeGen/X86/foldimmediate-size.ll
deleted file mode 100644
index 8d4c0a462d02ddd..000000000000000
--- a/llvm/test/CodeGen/X86/foldimmediate-size.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3
-; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s
-
-; When optimize for size, the constant $858993459 is moved into a register,
-; and use that register in following two andl instructions.
-
-define i32 @cnt32_optsize(i32 %x) nounwind readnone optsize {
-; CHECK-LABEL: cnt32_optsize:
-; CHECK: # %bb.0:
-; CHECK-NEXT: movl %edi, %eax
-; CHECK-NEXT: shrl %eax
-; CHECK-NEXT: andl $1431655765, %eax # imm = 0x55555555
-; CHECK-NEXT: subl %eax, %edi
-; CHECK-NEXT: movl $858993459, %eax # imm = 0x33333333
-; CHECK-NEXT: movl %edi, %ecx
-; CHECK-NEXT: andl %eax, %ecx
-; CHECK-NEXT: shrl $2, %edi
-; CHECK-NEXT: andl %eax, %edi
-; CHECK-NEXT: addl %ecx, %edi
-; CHECK-NEXT: movl %edi, %eax
-; CHECK-NEXT: shrl $4, %eax
-; CHECK-NEXT: addl %edi, %eax
-; CHECK-NEXT: andl $252645135, %eax # imm = 0xF0F0F0F
-; CHECK-NEXT: imull $16843009, %eax, %eax # imm = 0x1010101
-; CHECK-NEXT: shrl $24, %eax
-; CHECK-NEXT: retq
- %cnt = tail call i32 @llvm.ctpop.i32(i32 %x)
- ret i32 %cnt
-}
-
-; When optimize for speed, the constant $858993459 can be directly folded into
-; two andl instructions.
-
-define i32 @cnt32_optspeed(i32 %x) nounwind readnone {
-; CHECK-LABEL: cnt32_optspeed:
-; CHECK: # %bb.0:
-; CHECK-NEXT: movl %edi, %eax
-; CHECK-NEXT: shrl %eax
-; CHECK-NEXT: andl $1431655765, %eax # imm = 0x55555555
-; CHECK-NEXT: subl %eax, %edi
-; CHECK-NEXT: movl %edi, %eax
-; CHECK-NEXT: andl $858993459, %eax # imm = 0x33333333
-; CHECK-NEXT: shrl $2, %edi
-; CHECK-NEXT: andl $858993459, %edi # imm = 0x33333333
-; CHECK-NEXT: addl %eax, %edi
-; CHECK-NEXT: movl %edi, %eax
-; CHECK-NEXT: shrl $4, %eax
-; CHECK-NEXT: addl %edi, %eax
-; CHECK-NEXT: andl $252645135, %eax # imm = 0xF0F0F0F
-; CHECK-NEXT: imull $16843009, %eax, %eax # imm = 0x1010101
-; CHECK-NEXT: shrl $24, %eax
-; CHECK-NEXT: retq
- %cnt = tail call i32 @llvm.ctpop.i32(i32 %x)
- ret i32 %cnt
-}
-
-declare i32 @llvm.ctpop.i32(i32) nounwind readnone
diff --git a/llvm/test/CodeGen/X86/foldimmediate.mir b/llvm/test/CodeGen/X86/foldimmediate.mir
deleted file mode 100644
index 5fd5ae9c1ca9f10..000000000000000
--- a/llvm/test/CodeGen/X86/foldimmediate.mir
+++ /dev/null
@@ -1,143 +0,0 @@
-# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
-# RUN: llc -mtriple=x86_64-- -run-pass=peephole-opt %s -o - | FileCheck %s
---- |
- define void @foldImmediate() { ret void }
-...
----
-# Check that immediates can be folded into ALU instructions.
-name: foldImmediate
-registers:
- - { id: 0, class: gr32 }
- - { id: 1, class: gr32 }
- - { id: 2, class: gr32 }
- - { id: 3, class: gr32 }
- - { id: 4, class: gr32 }
- - { id: 5, class: gr32 }
- - { id: 6, class: gr32 }
- - { id: 7, class: gr64 }
- - { id: 8, class: gr64 }
- - { id: 9, class: gr64 }
- - { id: 10, class: gr64 }
- - { id: 11, class: gr64 }
- - { id: 12, class: gr64 }
- - { id: 13, class: gr64 }
- - { id: 14, class: gr64 }
- - { id: 15, class: gr64 }
- - { id: 16, class: gr32 }
- - { id: 17, class: gr64 }
- - { id: 18, class: gr32 }
-
-body: |
- bb.0:
- liveins: $rdi, $rsi
-
- ; CHECK-LABEL: name: foldImmediate
- ; CHECK: liveins: $rdi, $rsi
- ; CHECK-NEXT: {{ $}}
- ; CHECK-NEXT: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 81
- ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr32 = COPY $edi
- ; CHECK-NEXT: [[ADD32ri:%[0-9]+]]:gr32 = ADD32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[ADD32ri]]
- ; CHECK-NEXT: [[SUB32ri:%[0-9]+]]:gr32 = SUB32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[SUB32ri]]
- ; CHECK-NEXT: [[AND32ri:%[0-9]+]]:gr32 = AND32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[AND32ri]]
- ; CHECK-NEXT: [[OR32ri:%[0-9]+]]:gr32 = OR32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[OR32ri]]
- ; CHECK-NEXT: [[XOR32ri:%[0-9]+]]:gr32 = XOR32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[XOR32ri]]
- ; CHECK-NEXT: TEST32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit $eflags
- ; CHECK-NEXT: CMP32ri [[COPY]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit $eflags
- ; CHECK-NEXT: [[ADC32ri:%[0-9]+]]:gr32 = ADC32ri [[COPY]], 81, implicit-def $eflags, implicit $eflags
- ; CHECK-NEXT: NOOP implicit [[ADC32ri]]
- ; CHECK-NEXT: [[SBB32ri:%[0-9]+]]:gr32 = SBB32ri [[COPY]], 81, implicit-def $eflags, implicit $eflags
- ; CHECK-NEXT: NOOP implicit [[SBB32ri]]
- ; CHECK-NEXT: [[SUBREG_TO_REG:%[0-9]+]]:gr64 = SUBREG_TO_REG 0, killed [[MOV32ri]], %subreg.sub_32bit
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
- ; CHECK-NEXT: [[ADD64ri32_:%[0-9]+]]:gr64 = ADD64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[ADD64ri32_]]
- ; CHECK-NEXT: [[SUB64ri32_:%[0-9]+]]:gr64 = SUB64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[SUB64ri32_]]
- ; CHECK-NEXT: [[AND64ri32_:%[0-9]+]]:gr64 = AND64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[AND64ri32_]]
- ; CHECK-NEXT: [[OR64ri32_:%[0-9]+]]:gr64 = OR64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[OR64ri32_]]
- ; CHECK-NEXT: [[XOR64ri32_:%[0-9]+]]:gr64 = XOR64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit [[XOR64ri32_]]
- ; CHECK-NEXT: [[MOV32ri64_:%[0-9]+]]:gr64 = MOV32ri64 81
- ; CHECK-NEXT: NOOP implicit [[MOV32ri64_]]
- ; CHECK-NEXT: TEST64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit $eflags
- ; CHECK-NEXT: [[ADC64ri32_:%[0-9]+]]:gr64 = ADC64ri32 [[COPY1]], 81, implicit-def $eflags, implicit $eflags
- ; CHECK-NEXT: NOOP implicit [[ADC64ri32_]]
- ; CHECK-NEXT: [[SBB64ri32_:%[0-9]+]]:gr64 = SBB64ri32 [[COPY1]], 81, implicit-def $eflags, implicit $eflags
- ; CHECK-NEXT: NOOP implicit [[SBB64ri32_]]
- ; CHECK-NEXT: CMP64ri32 [[COPY1]], 81, implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit $eflags
- ; CHECK-NEXT: CMP64rr [[SUBREG_TO_REG]], [[COPY1]], implicit-def $eflags
- ; CHECK-NEXT: NOOP implicit $eflags
- %0 = MOV32ri 81
- %1 = COPY $edi
- %2 = ADD32rr %0, %1, implicit-def $eflags
- NOOP implicit %2
-
- %3 = SUB32rr %1, %0, implicit-def $eflags
- NOOP implicit %3
-
- %4 = AND32rr %0, %1, implicit-def $eflags
- NOOP implicit %4
-
- %5 = OR32rr %0, %1, implicit-def $eflags
- NOOP implicit %5
-
- %6 = XOR32rr %0, %1, implicit-def $eflags
- NOOP implicit %6
-
- TEST32rr %0, %1, implicit-def $eflags
- NOOP implicit $eflags
-
- CMP32rr %1, %0, implicit-def $eflags
- NOOP implicit $eflags
-
- %16 = ADC32rr %0, %1, implicit-def $eflags, implicit $eflags
- NOOP implicit %16
-
- %18 = SBB32rr %1, %0, implicit-def $eflags, implicit $eflags
- NOOP implicit %18
-
- %7 = SUBREG_TO_REG 0, killed %0:gr32, %subreg.sub_32bit
- %8 = COPY $rsi
- %9 = ADD64rr %7, %8, implicit-def $eflags
- NOOP implicit %9
-
- %10 = SUB64rr %8, %7, implicit-def $eflags
- NOOP implicit %10
-
- %11 = AND64rr %8, %7, implicit-def $eflags
- NOOP implicit %11
-
- %12 = OR64rr %8, %7, implicit-def $eflags
- NOOP implicit %12
-
- %13 = XOR64rr %8, %7, implicit-def $eflags
- NOOP implicit %13
-
- %14 = COPY %7
- NOOP implicit %14
-
- TEST64rr %8, %7, implicit-def $eflags
- NOOP implicit $eflags
-
- %15 = ADC64rr %8, %7, implicit-def $eflags, implicit $eflags
- NOOP implicit %15
-
- %17 = SBB64rr %8, %7, implicit-def $eflags, implicit $eflags
- NOOP implicit %17
-
- CMP64rr %8, %7, implicit-def $eflags
- NOOP implicit $eflags
- CMP64rr %7, %8, implicit-def $eflags
- NOOP implicit $eflags
-...
diff --git a/llvm/test/CodeGen/X86/pcsections-atomics.ll b/llvm/test/CodeGen/X86/pcsections-atomics.ll
index cfc9d50763af4a7..e6604c957f1fa19 100644
--- a/llvm/test/CodeGen/X86/pcsections-atomics.ll
+++ b/llvm/test/CodeGen/X86/pcsections-atomics.ll
@@ -2148,17 +2148,14 @@ define void @atomic8_cas_monotonic(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movb $1, %cl
-; O1-NEXT: .Lpcsection65:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection66:
+; O1-NEXT: .Lpcsection65:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection67:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection68:
+; O1-NEXT: .Lpcsection66:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection69:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection70:
+; O1-NEXT: .Lpcsection67:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2167,17 +2164,14 @@ define void @atomic8_cas_monotonic(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movb $1, %cl
-; O2-NEXT: .Lpcsection65:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection66:
+; O2-NEXT: .Lpcsection65:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection67:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection68:
+; O2-NEXT: .Lpcsection66:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection69:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection70:
+; O2-NEXT: .Lpcsection67:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2186,17 +2180,14 @@ define void @atomic8_cas_monotonic(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movb $1, %cl
-; O3-NEXT: .Lpcsection65:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection66:
+; O3-NEXT: .Lpcsection65:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection67:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection68:
+; O3-NEXT: .Lpcsection66:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection69:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection70:
+; O3-NEXT: .Lpcsection67:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2235,17 +2226,14 @@ define void @atomic8_cas_acquire(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movb $1, %cl
-; O1-NEXT: .Lpcsection71:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection72:
+; O1-NEXT: .Lpcsection68:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection73:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection74:
+; O1-NEXT: .Lpcsection69:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection75:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection76:
+; O1-NEXT: .Lpcsection70:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2254,17 +2242,14 @@ define void @atomic8_cas_acquire(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movb $1, %cl
-; O2-NEXT: .Lpcsection71:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection72:
+; O2-NEXT: .Lpcsection68:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection73:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection74:
+; O2-NEXT: .Lpcsection69:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection75:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection76:
+; O2-NEXT: .Lpcsection70:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2273,17 +2258,14 @@ define void @atomic8_cas_acquire(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movb $1, %cl
-; O3-NEXT: .Lpcsection71:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection72:
+; O3-NEXT: .Lpcsection68:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection73:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection74:
+; O3-NEXT: .Lpcsection69:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection75:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection76:
+; O3-NEXT: .Lpcsection70:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2322,17 +2304,14 @@ define void @atomic8_cas_release(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movb $1, %cl
-; O1-NEXT: .Lpcsection77:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection78:
+; O1-NEXT: .Lpcsection71:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection79:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection80:
+; O1-NEXT: .Lpcsection72:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection81:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection82:
+; O1-NEXT: .Lpcsection73:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2341,17 +2320,14 @@ define void @atomic8_cas_release(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movb $1, %cl
-; O2-NEXT: .Lpcsection77:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection78:
+; O2-NEXT: .Lpcsection71:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection79:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection80:
+; O2-NEXT: .Lpcsection72:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection81:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection82:
+; O2-NEXT: .Lpcsection73:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2360,17 +2336,14 @@ define void @atomic8_cas_release(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movb $1, %cl
-; O3-NEXT: .Lpcsection77:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection78:
+; O3-NEXT: .Lpcsection71:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection79:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection80:
+; O3-NEXT: .Lpcsection72:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection81:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection82:
+; O3-NEXT: .Lpcsection73:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2409,17 +2382,14 @@ define void @atomic8_cas_acq_rel(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movb $1, %cl
-; O1-NEXT: .Lpcsection83:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection84:
+; O1-NEXT: .Lpcsection74:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection85:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection86:
+; O1-NEXT: .Lpcsection75:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection87:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection88:
+; O1-NEXT: .Lpcsection76:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2428,17 +2398,14 @@ define void @atomic8_cas_acq_rel(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movb $1, %cl
-; O2-NEXT: .Lpcsection83:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection84:
+; O2-NEXT: .Lpcsection74:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection85:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection86:
+; O2-NEXT: .Lpcsection75:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection87:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection88:
+; O2-NEXT: .Lpcsection76:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2447,17 +2414,14 @@ define void @atomic8_cas_acq_rel(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movb $1, %cl
-; O3-NEXT: .Lpcsection83:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection84:
+; O3-NEXT: .Lpcsection74:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection85:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection86:
+; O3-NEXT: .Lpcsection75:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection87:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection88:
+; O3-NEXT: .Lpcsection76:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2496,17 +2460,14 @@ define void @atomic8_cas_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movb $1, %cl
-; O1-NEXT: .Lpcsection89:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection90:
+; O1-NEXT: .Lpcsection77:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection91:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection92:
+; O1-NEXT: .Lpcsection78:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
-; O1-NEXT: .Lpcsection93:
; O1-NEXT: movb $42, %al
-; O1-NEXT: .Lpcsection94:
+; O1-NEXT: .Lpcsection79:
; O1-NEXT: lock cmpxchgb %cl, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2515,17 +2476,14 @@ define void @atomic8_cas_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movb $1, %cl
-; O2-NEXT: .Lpcsection89:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection90:
+; O2-NEXT: .Lpcsection77:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection91:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection92:
+; O2-NEXT: .Lpcsection78:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
-; O2-NEXT: .Lpcsection93:
; O2-NEXT: movb $42, %al
-; O2-NEXT: .Lpcsection94:
+; O2-NEXT: .Lpcsection79:
; O2-NEXT: lock cmpxchgb %cl, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2534,17 +2492,14 @@ define void @atomic8_cas_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movb $1, %cl
-; O3-NEXT: .Lpcsection89:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection90:
+; O3-NEXT: .Lpcsection77:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection91:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection92:
+; O3-NEXT: .Lpcsection78:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
-; O3-NEXT: .Lpcsection93:
; O3-NEXT: movb $42, %al
-; O3-NEXT: .Lpcsection94:
+; O3-NEXT: .Lpcsection79:
; O3-NEXT: lock cmpxchgb %cl, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2569,7 +2524,7 @@ define i16 @atomic16_load_unordered(ptr %a) {
; O1-LABEL: atomic16_load_unordered:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection95:
+; O1-NEXT: .Lpcsection80:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2577,7 +2532,7 @@ define i16 @atomic16_load_unordered(ptr %a) {
; O2-LABEL: atomic16_load_unordered:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection95:
+; O2-NEXT: .Lpcsection80:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2585,7 +2540,7 @@ define i16 @atomic16_load_unordered(ptr %a) {
; O3-LABEL: atomic16_load_unordered:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection95:
+; O3-NEXT: .Lpcsection80:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2608,7 +2563,7 @@ define i16 @atomic16_load_monotonic(ptr %a) {
; O1-LABEL: atomic16_load_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection96:
+; O1-NEXT: .Lpcsection81:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2616,7 +2571,7 @@ define i16 @atomic16_load_monotonic(ptr %a) {
; O2-LABEL: atomic16_load_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection96:
+; O2-NEXT: .Lpcsection81:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2624,7 +2579,7 @@ define i16 @atomic16_load_monotonic(ptr %a) {
; O3-LABEL: atomic16_load_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection96:
+; O3-NEXT: .Lpcsection81:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2647,7 +2602,7 @@ define i16 @atomic16_load_acquire(ptr %a) {
; O1-LABEL: atomic16_load_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection97:
+; O1-NEXT: .Lpcsection82:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2655,7 +2610,7 @@ define i16 @atomic16_load_acquire(ptr %a) {
; O2-LABEL: atomic16_load_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection97:
+; O2-NEXT: .Lpcsection82:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2663,7 +2618,7 @@ define i16 @atomic16_load_acquire(ptr %a) {
; O3-LABEL: atomic16_load_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection97:
+; O3-NEXT: .Lpcsection82:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2686,7 +2641,7 @@ define i16 @atomic16_load_seq_cst(ptr %a) {
; O1-LABEL: atomic16_load_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection98:
+; O1-NEXT: .Lpcsection83:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2694,7 +2649,7 @@ define i16 @atomic16_load_seq_cst(ptr %a) {
; O2-LABEL: atomic16_load_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection98:
+; O2-NEXT: .Lpcsection83:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2702,7 +2657,7 @@ define i16 @atomic16_load_seq_cst(ptr %a) {
; O3-LABEL: atomic16_load_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection98:
+; O3-NEXT: .Lpcsection83:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2725,7 +2680,7 @@ define void @atomic16_store_unordered(ptr %a) {
; O1-LABEL: atomic16_store_unordered:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection99:
+; O1-NEXT: .Lpcsection84:
; O1-NEXT: movw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2733,7 +2688,7 @@ define void @atomic16_store_unordered(ptr %a) {
; O2-LABEL: atomic16_store_unordered:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection99:
+; O2-NEXT: .Lpcsection84:
; O2-NEXT: movw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2741,7 +2696,7 @@ define void @atomic16_store_unordered(ptr %a) {
; O3-LABEL: atomic16_store_unordered:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection99:
+; O3-NEXT: .Lpcsection84:
; O3-NEXT: movw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2764,7 +2719,7 @@ define void @atomic16_store_monotonic(ptr %a) {
; O1-LABEL: atomic16_store_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection100:
+; O1-NEXT: .Lpcsection85:
; O1-NEXT: movw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2772,7 +2727,7 @@ define void @atomic16_store_monotonic(ptr %a) {
; O2-LABEL: atomic16_store_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection100:
+; O2-NEXT: .Lpcsection85:
; O2-NEXT: movw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2780,7 +2735,7 @@ define void @atomic16_store_monotonic(ptr %a) {
; O3-LABEL: atomic16_store_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection100:
+; O3-NEXT: .Lpcsection85:
; O3-NEXT: movw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2803,7 +2758,7 @@ define void @atomic16_store_release(ptr %a) {
; O1-LABEL: atomic16_store_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection101:
+; O1-NEXT: .Lpcsection86:
; O1-NEXT: movw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2811,7 +2766,7 @@ define void @atomic16_store_release(ptr %a) {
; O2-LABEL: atomic16_store_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection101:
+; O2-NEXT: .Lpcsection86:
; O2-NEXT: movw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2819,7 +2774,7 @@ define void @atomic16_store_release(ptr %a) {
; O3-LABEL: atomic16_store_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection101:
+; O3-NEXT: .Lpcsection86:
; O3-NEXT: movw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2844,7 +2799,7 @@ define void @atomic16_store_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection102:
+; O1-NEXT: .Lpcsection87:
; O1-NEXT: xchgw %ax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2853,7 +2808,7 @@ define void @atomic16_store_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection102:
+; O2-NEXT: .Lpcsection87:
; O2-NEXT: xchgw %ax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2862,7 +2817,7 @@ define void @atomic16_store_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection102:
+; O3-NEXT: .Lpcsection87:
; O3-NEXT: xchgw %ax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2887,7 +2842,7 @@ define void @atomic16_xchg_monotonic(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection103:
+; O1-NEXT: .Lpcsection88:
; O1-NEXT: xchgw %ax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2896,7 +2851,7 @@ define void @atomic16_xchg_monotonic(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection103:
+; O2-NEXT: .Lpcsection88:
; O2-NEXT: xchgw %ax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2905,7 +2860,7 @@ define void @atomic16_xchg_monotonic(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection103:
+; O3-NEXT: .Lpcsection88:
; O3-NEXT: xchgw %ax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2928,7 +2883,7 @@ define void @atomic16_add_monotonic(ptr %a) {
; O1-LABEL: atomic16_add_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection104:
+; O1-NEXT: .Lpcsection89:
; O1-NEXT: lock addw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2936,7 +2891,7 @@ define void @atomic16_add_monotonic(ptr %a) {
; O2-LABEL: atomic16_add_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection104:
+; O2-NEXT: .Lpcsection89:
; O2-NEXT: lock addw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2944,7 +2899,7 @@ define void @atomic16_add_monotonic(ptr %a) {
; O3-LABEL: atomic16_add_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection104:
+; O3-NEXT: .Lpcsection89:
; O3-NEXT: lock addw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -2967,7 +2922,7 @@ define void @atomic16_sub_monotonic(ptr %a) {
; O1-LABEL: atomic16_sub_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection105:
+; O1-NEXT: .Lpcsection90:
; O1-NEXT: lock subw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -2975,7 +2930,7 @@ define void @atomic16_sub_monotonic(ptr %a) {
; O2-LABEL: atomic16_sub_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection105:
+; O2-NEXT: .Lpcsection90:
; O2-NEXT: lock subw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -2983,7 +2938,7 @@ define void @atomic16_sub_monotonic(ptr %a) {
; O3-LABEL: atomic16_sub_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection105:
+; O3-NEXT: .Lpcsection90:
; O3-NEXT: lock subw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3006,7 +2961,7 @@ define void @atomic16_and_monotonic(ptr %a) {
; O1-LABEL: atomic16_and_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection106:
+; O1-NEXT: .Lpcsection91:
; O1-NEXT: lock andw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3014,7 +2969,7 @@ define void @atomic16_and_monotonic(ptr %a) {
; O2-LABEL: atomic16_and_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection106:
+; O2-NEXT: .Lpcsection91:
; O2-NEXT: lock andw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3022,7 +2977,7 @@ define void @atomic16_and_monotonic(ptr %a) {
; O3-LABEL: atomic16_and_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection106:
+; O3-NEXT: .Lpcsection91:
; O3-NEXT: lock andw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3045,7 +3000,7 @@ define void @atomic16_or_monotonic(ptr %a) {
; O1-LABEL: atomic16_or_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection107:
+; O1-NEXT: .Lpcsection92:
; O1-NEXT: lock orw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3053,7 +3008,7 @@ define void @atomic16_or_monotonic(ptr %a) {
; O2-LABEL: atomic16_or_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection107:
+; O2-NEXT: .Lpcsection92:
; O2-NEXT: lock orw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3061,7 +3016,7 @@ define void @atomic16_or_monotonic(ptr %a) {
; O3-LABEL: atomic16_or_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection107:
+; O3-NEXT: .Lpcsection92:
; O3-NEXT: lock orw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3084,7 +3039,7 @@ define void @atomic16_xor_monotonic(ptr %a) {
; O1-LABEL: atomic16_xor_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection108:
+; O1-NEXT: .Lpcsection93:
; O1-NEXT: lock xorw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3092,7 +3047,7 @@ define void @atomic16_xor_monotonic(ptr %a) {
; O2-LABEL: atomic16_xor_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection108:
+; O2-NEXT: .Lpcsection93:
; O2-NEXT: lock xorw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3100,7 +3055,7 @@ define void @atomic16_xor_monotonic(ptr %a) {
; O3-LABEL: atomic16_xor_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection108:
+; O3-NEXT: .Lpcsection93:
; O3-NEXT: lock xorw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3149,23 +3104,23 @@ define void @atomic16_nand_monotonic(ptr %a) {
; O1-LABEL: atomic16_nand_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection109:
+; O1-NEXT: .Lpcsection94:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB64_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection110:
+; O1-NEXT: .Lpcsection95:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection111:
+; O1-NEXT: .Lpcsection96:
; O1-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O1-NEXT: .Lpcsection112:
+; O1-NEXT: .Lpcsection97:
; O1-NEXT: # kill: def $ax killed $ax killed $eax
-; O1-NEXT: .Lpcsection113:
+; O1-NEXT: .Lpcsection98:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
-; O1-NEXT: .Lpcsection114:
+; O1-NEXT: .Lpcsection99:
; O1-NEXT: # kill: def $ax killed $ax def $eax
-; O1-NEXT: .Lpcsection115:
+; O1-NEXT: .Lpcsection100:
; O1-NEXT: jne .LBB64_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -3174,23 +3129,23 @@ define void @atomic16_nand_monotonic(ptr %a) {
; O2-LABEL: atomic16_nand_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection109:
+; O2-NEXT: .Lpcsection94:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB64_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection110:
+; O2-NEXT: .Lpcsection95:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection111:
+; O2-NEXT: .Lpcsection96:
; O2-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O2-NEXT: .Lpcsection112:
+; O2-NEXT: .Lpcsection97:
; O2-NEXT: # kill: def $ax killed $ax killed $eax
-; O2-NEXT: .Lpcsection113:
+; O2-NEXT: .Lpcsection98:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
-; O2-NEXT: .Lpcsection114:
+; O2-NEXT: .Lpcsection99:
; O2-NEXT: # kill: def $ax killed $ax def $eax
-; O2-NEXT: .Lpcsection115:
+; O2-NEXT: .Lpcsection100:
; O2-NEXT: jne .LBB64_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -3199,23 +3154,23 @@ define void @atomic16_nand_monotonic(ptr %a) {
; O3-LABEL: atomic16_nand_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection109:
+; O3-NEXT: .Lpcsection94:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB64_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection110:
+; O3-NEXT: .Lpcsection95:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection111:
+; O3-NEXT: .Lpcsection96:
; O3-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O3-NEXT: .Lpcsection112:
+; O3-NEXT: .Lpcsection97:
; O3-NEXT: # kill: def $ax killed $ax killed $eax
-; O3-NEXT: .Lpcsection113:
+; O3-NEXT: .Lpcsection98:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
-; O3-NEXT: .Lpcsection114:
+; O3-NEXT: .Lpcsection99:
; O3-NEXT: # kill: def $ax killed $ax def $eax
-; O3-NEXT: .Lpcsection115:
+; O3-NEXT: .Lpcsection100:
; O3-NEXT: jne .LBB64_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -3241,7 +3196,7 @@ define void @atomic16_xchg_acquire(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection116:
+; O1-NEXT: .Lpcsection101:
; O1-NEXT: xchgw %ax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3250,7 +3205,7 @@ define void @atomic16_xchg_acquire(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection116:
+; O2-NEXT: .Lpcsection101:
; O2-NEXT: xchgw %ax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3259,7 +3214,7 @@ define void @atomic16_xchg_acquire(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection116:
+; O3-NEXT: .Lpcsection101:
; O3-NEXT: xchgw %ax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3282,7 +3237,7 @@ define void @atomic16_add_acquire(ptr %a) {
; O1-LABEL: atomic16_add_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection117:
+; O1-NEXT: .Lpcsection102:
; O1-NEXT: lock addw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3290,7 +3245,7 @@ define void @atomic16_add_acquire(ptr %a) {
; O2-LABEL: atomic16_add_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection117:
+; O2-NEXT: .Lpcsection102:
; O2-NEXT: lock addw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3298,7 +3253,7 @@ define void @atomic16_add_acquire(ptr %a) {
; O3-LABEL: atomic16_add_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection117:
+; O3-NEXT: .Lpcsection102:
; O3-NEXT: lock addw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3321,7 +3276,7 @@ define void @atomic16_sub_acquire(ptr %a) {
; O1-LABEL: atomic16_sub_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection118:
+; O1-NEXT: .Lpcsection103:
; O1-NEXT: lock subw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3329,7 +3284,7 @@ define void @atomic16_sub_acquire(ptr %a) {
; O2-LABEL: atomic16_sub_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection118:
+; O2-NEXT: .Lpcsection103:
; O2-NEXT: lock subw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3337,7 +3292,7 @@ define void @atomic16_sub_acquire(ptr %a) {
; O3-LABEL: atomic16_sub_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection118:
+; O3-NEXT: .Lpcsection103:
; O3-NEXT: lock subw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3360,7 +3315,7 @@ define void @atomic16_and_acquire(ptr %a) {
; O1-LABEL: atomic16_and_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection119:
+; O1-NEXT: .Lpcsection104:
; O1-NEXT: lock andw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3368,7 +3323,7 @@ define void @atomic16_and_acquire(ptr %a) {
; O2-LABEL: atomic16_and_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection119:
+; O2-NEXT: .Lpcsection104:
; O2-NEXT: lock andw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3376,7 +3331,7 @@ define void @atomic16_and_acquire(ptr %a) {
; O3-LABEL: atomic16_and_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection119:
+; O3-NEXT: .Lpcsection104:
; O3-NEXT: lock andw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3399,7 +3354,7 @@ define void @atomic16_or_acquire(ptr %a) {
; O1-LABEL: atomic16_or_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection120:
+; O1-NEXT: .Lpcsection105:
; O1-NEXT: lock orw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3407,7 +3362,7 @@ define void @atomic16_or_acquire(ptr %a) {
; O2-LABEL: atomic16_or_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection120:
+; O2-NEXT: .Lpcsection105:
; O2-NEXT: lock orw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3415,7 +3370,7 @@ define void @atomic16_or_acquire(ptr %a) {
; O3-LABEL: atomic16_or_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection120:
+; O3-NEXT: .Lpcsection105:
; O3-NEXT: lock orw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3438,7 +3393,7 @@ define void @atomic16_xor_acquire(ptr %a) {
; O1-LABEL: atomic16_xor_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection121:
+; O1-NEXT: .Lpcsection106:
; O1-NEXT: lock xorw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3446,7 +3401,7 @@ define void @atomic16_xor_acquire(ptr %a) {
; O2-LABEL: atomic16_xor_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection121:
+; O2-NEXT: .Lpcsection106:
; O2-NEXT: lock xorw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3454,7 +3409,7 @@ define void @atomic16_xor_acquire(ptr %a) {
; O3-LABEL: atomic16_xor_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection121:
+; O3-NEXT: .Lpcsection106:
; O3-NEXT: lock xorw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3503,23 +3458,23 @@ define void @atomic16_nand_acquire(ptr %a) {
; O1-LABEL: atomic16_nand_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection122:
+; O1-NEXT: .Lpcsection107:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB71_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection123:
+; O1-NEXT: .Lpcsection108:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection124:
+; O1-NEXT: .Lpcsection109:
; O1-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O1-NEXT: .Lpcsection125:
+; O1-NEXT: .Lpcsection110:
; O1-NEXT: # kill: def $ax killed $ax killed $eax
-; O1-NEXT: .Lpcsection126:
+; O1-NEXT: .Lpcsection111:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
-; O1-NEXT: .Lpcsection127:
+; O1-NEXT: .Lpcsection112:
; O1-NEXT: # kill: def $ax killed $ax def $eax
-; O1-NEXT: .Lpcsection128:
+; O1-NEXT: .Lpcsection113:
; O1-NEXT: jne .LBB71_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -3528,23 +3483,23 @@ define void @atomic16_nand_acquire(ptr %a) {
; O2-LABEL: atomic16_nand_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection122:
+; O2-NEXT: .Lpcsection107:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB71_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection123:
+; O2-NEXT: .Lpcsection108:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection124:
+; O2-NEXT: .Lpcsection109:
; O2-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O2-NEXT: .Lpcsection125:
+; O2-NEXT: .Lpcsection110:
; O2-NEXT: # kill: def $ax killed $ax killed $eax
-; O2-NEXT: .Lpcsection126:
+; O2-NEXT: .Lpcsection111:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
-; O2-NEXT: .Lpcsection127:
+; O2-NEXT: .Lpcsection112:
; O2-NEXT: # kill: def $ax killed $ax def $eax
-; O2-NEXT: .Lpcsection128:
+; O2-NEXT: .Lpcsection113:
; O2-NEXT: jne .LBB71_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -3553,23 +3508,23 @@ define void @atomic16_nand_acquire(ptr %a) {
; O3-LABEL: atomic16_nand_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection122:
+; O3-NEXT: .Lpcsection107:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB71_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection123:
+; O3-NEXT: .Lpcsection108:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection124:
+; O3-NEXT: .Lpcsection109:
; O3-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O3-NEXT: .Lpcsection125:
+; O3-NEXT: .Lpcsection110:
; O3-NEXT: # kill: def $ax killed $ax killed $eax
-; O3-NEXT: .Lpcsection126:
+; O3-NEXT: .Lpcsection111:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
-; O3-NEXT: .Lpcsection127:
+; O3-NEXT: .Lpcsection112:
; O3-NEXT: # kill: def $ax killed $ax def $eax
-; O3-NEXT: .Lpcsection128:
+; O3-NEXT: .Lpcsection113:
; O3-NEXT: jne .LBB71_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -3595,7 +3550,7 @@ define void @atomic16_xchg_release(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection129:
+; O1-NEXT: .Lpcsection114:
; O1-NEXT: xchgw %ax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3604,7 +3559,7 @@ define void @atomic16_xchg_release(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection129:
+; O2-NEXT: .Lpcsection114:
; O2-NEXT: xchgw %ax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3613,7 +3568,7 @@ define void @atomic16_xchg_release(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection129:
+; O3-NEXT: .Lpcsection114:
; O3-NEXT: xchgw %ax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3636,7 +3591,7 @@ define void @atomic16_add_release(ptr %a) {
; O1-LABEL: atomic16_add_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection130:
+; O1-NEXT: .Lpcsection115:
; O1-NEXT: lock addw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3644,7 +3599,7 @@ define void @atomic16_add_release(ptr %a) {
; O2-LABEL: atomic16_add_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection130:
+; O2-NEXT: .Lpcsection115:
; O2-NEXT: lock addw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3652,7 +3607,7 @@ define void @atomic16_add_release(ptr %a) {
; O3-LABEL: atomic16_add_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection130:
+; O3-NEXT: .Lpcsection115:
; O3-NEXT: lock addw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3675,7 +3630,7 @@ define void @atomic16_sub_release(ptr %a) {
; O1-LABEL: atomic16_sub_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection131:
+; O1-NEXT: .Lpcsection116:
; O1-NEXT: lock subw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3683,7 +3638,7 @@ define void @atomic16_sub_release(ptr %a) {
; O2-LABEL: atomic16_sub_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection131:
+; O2-NEXT: .Lpcsection116:
; O2-NEXT: lock subw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3691,7 +3646,7 @@ define void @atomic16_sub_release(ptr %a) {
; O3-LABEL: atomic16_sub_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection131:
+; O3-NEXT: .Lpcsection116:
; O3-NEXT: lock subw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3714,7 +3669,7 @@ define void @atomic16_and_release(ptr %a) {
; O1-LABEL: atomic16_and_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection132:
+; O1-NEXT: .Lpcsection117:
; O1-NEXT: lock andw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3722,7 +3677,7 @@ define void @atomic16_and_release(ptr %a) {
; O2-LABEL: atomic16_and_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection132:
+; O2-NEXT: .Lpcsection117:
; O2-NEXT: lock andw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3730,7 +3685,7 @@ define void @atomic16_and_release(ptr %a) {
; O3-LABEL: atomic16_and_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection132:
+; O3-NEXT: .Lpcsection117:
; O3-NEXT: lock andw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3753,7 +3708,7 @@ define void @atomic16_or_release(ptr %a) {
; O1-LABEL: atomic16_or_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection133:
+; O1-NEXT: .Lpcsection118:
; O1-NEXT: lock orw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3761,7 +3716,7 @@ define void @atomic16_or_release(ptr %a) {
; O2-LABEL: atomic16_or_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection133:
+; O2-NEXT: .Lpcsection118:
; O2-NEXT: lock orw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3769,7 +3724,7 @@ define void @atomic16_or_release(ptr %a) {
; O3-LABEL: atomic16_or_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection133:
+; O3-NEXT: .Lpcsection118:
; O3-NEXT: lock orw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3792,7 +3747,7 @@ define void @atomic16_xor_release(ptr %a) {
; O1-LABEL: atomic16_xor_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection134:
+; O1-NEXT: .Lpcsection119:
; O1-NEXT: lock xorw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3800,7 +3755,7 @@ define void @atomic16_xor_release(ptr %a) {
; O2-LABEL: atomic16_xor_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection134:
+; O2-NEXT: .Lpcsection119:
; O2-NEXT: lock xorw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3808,7 +3763,7 @@ define void @atomic16_xor_release(ptr %a) {
; O3-LABEL: atomic16_xor_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection134:
+; O3-NEXT: .Lpcsection119:
; O3-NEXT: lock xorw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3857,23 +3812,23 @@ define void @atomic16_nand_release(ptr %a) {
; O1-LABEL: atomic16_nand_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection135:
+; O1-NEXT: .Lpcsection120:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB78_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection136:
+; O1-NEXT: .Lpcsection121:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection137:
+; O1-NEXT: .Lpcsection122:
; O1-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O1-NEXT: .Lpcsection138:
+; O1-NEXT: .Lpcsection123:
; O1-NEXT: # kill: def $ax killed $ax killed $eax
-; O1-NEXT: .Lpcsection139:
+; O1-NEXT: .Lpcsection124:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
-; O1-NEXT: .Lpcsection140:
+; O1-NEXT: .Lpcsection125:
; O1-NEXT: # kill: def $ax killed $ax def $eax
-; O1-NEXT: .Lpcsection141:
+; O1-NEXT: .Lpcsection126:
; O1-NEXT: jne .LBB78_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -3882,23 +3837,23 @@ define void @atomic16_nand_release(ptr %a) {
; O2-LABEL: atomic16_nand_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection135:
+; O2-NEXT: .Lpcsection120:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB78_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection136:
+; O2-NEXT: .Lpcsection121:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection137:
+; O2-NEXT: .Lpcsection122:
; O2-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O2-NEXT: .Lpcsection138:
+; O2-NEXT: .Lpcsection123:
; O2-NEXT: # kill: def $ax killed $ax killed $eax
-; O2-NEXT: .Lpcsection139:
+; O2-NEXT: .Lpcsection124:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
-; O2-NEXT: .Lpcsection140:
+; O2-NEXT: .Lpcsection125:
; O2-NEXT: # kill: def $ax killed $ax def $eax
-; O2-NEXT: .Lpcsection141:
+; O2-NEXT: .Lpcsection126:
; O2-NEXT: jne .LBB78_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -3907,23 +3862,23 @@ define void @atomic16_nand_release(ptr %a) {
; O3-LABEL: atomic16_nand_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection135:
+; O3-NEXT: .Lpcsection120:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB78_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection136:
+; O3-NEXT: .Lpcsection121:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection137:
+; O3-NEXT: .Lpcsection122:
; O3-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O3-NEXT: .Lpcsection138:
+; O3-NEXT: .Lpcsection123:
; O3-NEXT: # kill: def $ax killed $ax killed $eax
-; O3-NEXT: .Lpcsection139:
+; O3-NEXT: .Lpcsection124:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
-; O3-NEXT: .Lpcsection140:
+; O3-NEXT: .Lpcsection125:
; O3-NEXT: # kill: def $ax killed $ax def $eax
-; O3-NEXT: .Lpcsection141:
+; O3-NEXT: .Lpcsection126:
; O3-NEXT: jne .LBB78_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -3949,7 +3904,7 @@ define void @atomic16_xchg_acq_rel(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection142:
+; O1-NEXT: .Lpcsection127:
; O1-NEXT: xchgw %ax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3958,7 +3913,7 @@ define void @atomic16_xchg_acq_rel(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection142:
+; O2-NEXT: .Lpcsection127:
; O2-NEXT: xchgw %ax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -3967,7 +3922,7 @@ define void @atomic16_xchg_acq_rel(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection142:
+; O3-NEXT: .Lpcsection127:
; O3-NEXT: xchgw %ax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -3990,7 +3945,7 @@ define void @atomic16_add_acq_rel(ptr %a) {
; O1-LABEL: atomic16_add_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection143:
+; O1-NEXT: .Lpcsection128:
; O1-NEXT: lock addw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -3998,7 +3953,7 @@ define void @atomic16_add_acq_rel(ptr %a) {
; O2-LABEL: atomic16_add_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection143:
+; O2-NEXT: .Lpcsection128:
; O2-NEXT: lock addw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4006,7 +3961,7 @@ define void @atomic16_add_acq_rel(ptr %a) {
; O3-LABEL: atomic16_add_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection143:
+; O3-NEXT: .Lpcsection128:
; O3-NEXT: lock addw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4029,7 +3984,7 @@ define void @atomic16_sub_acq_rel(ptr %a) {
; O1-LABEL: atomic16_sub_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection144:
+; O1-NEXT: .Lpcsection129:
; O1-NEXT: lock subw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4037,7 +3992,7 @@ define void @atomic16_sub_acq_rel(ptr %a) {
; O2-LABEL: atomic16_sub_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection144:
+; O2-NEXT: .Lpcsection129:
; O2-NEXT: lock subw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4045,7 +4000,7 @@ define void @atomic16_sub_acq_rel(ptr %a) {
; O3-LABEL: atomic16_sub_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection144:
+; O3-NEXT: .Lpcsection129:
; O3-NEXT: lock subw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4068,7 +4023,7 @@ define void @atomic16_and_acq_rel(ptr %a) {
; O1-LABEL: atomic16_and_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection145:
+; O1-NEXT: .Lpcsection130:
; O1-NEXT: lock andw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4076,7 +4031,7 @@ define void @atomic16_and_acq_rel(ptr %a) {
; O2-LABEL: atomic16_and_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection145:
+; O2-NEXT: .Lpcsection130:
; O2-NEXT: lock andw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4084,7 +4039,7 @@ define void @atomic16_and_acq_rel(ptr %a) {
; O3-LABEL: atomic16_and_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection145:
+; O3-NEXT: .Lpcsection130:
; O3-NEXT: lock andw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4107,7 +4062,7 @@ define void @atomic16_or_acq_rel(ptr %a) {
; O1-LABEL: atomic16_or_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection146:
+; O1-NEXT: .Lpcsection131:
; O1-NEXT: lock orw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4115,7 +4070,7 @@ define void @atomic16_or_acq_rel(ptr %a) {
; O2-LABEL: atomic16_or_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection146:
+; O2-NEXT: .Lpcsection131:
; O2-NEXT: lock orw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4123,7 +4078,7 @@ define void @atomic16_or_acq_rel(ptr %a) {
; O3-LABEL: atomic16_or_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection146:
+; O3-NEXT: .Lpcsection131:
; O3-NEXT: lock orw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4146,7 +4101,7 @@ define void @atomic16_xor_acq_rel(ptr %a) {
; O1-LABEL: atomic16_xor_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection147:
+; O1-NEXT: .Lpcsection132:
; O1-NEXT: lock xorw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4154,7 +4109,7 @@ define void @atomic16_xor_acq_rel(ptr %a) {
; O2-LABEL: atomic16_xor_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection147:
+; O2-NEXT: .Lpcsection132:
; O2-NEXT: lock xorw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4162,7 +4117,7 @@ define void @atomic16_xor_acq_rel(ptr %a) {
; O3-LABEL: atomic16_xor_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection147:
+; O3-NEXT: .Lpcsection132:
; O3-NEXT: lock xorw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4211,23 +4166,23 @@ define void @atomic16_nand_acq_rel(ptr %a) {
; O1-LABEL: atomic16_nand_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection148:
+; O1-NEXT: .Lpcsection133:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB85_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection149:
+; O1-NEXT: .Lpcsection134:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection150:
+; O1-NEXT: .Lpcsection135:
; O1-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O1-NEXT: .Lpcsection151:
+; O1-NEXT: .Lpcsection136:
; O1-NEXT: # kill: def $ax killed $ax killed $eax
-; O1-NEXT: .Lpcsection152:
+; O1-NEXT: .Lpcsection137:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
-; O1-NEXT: .Lpcsection153:
+; O1-NEXT: .Lpcsection138:
; O1-NEXT: # kill: def $ax killed $ax def $eax
-; O1-NEXT: .Lpcsection154:
+; O1-NEXT: .Lpcsection139:
; O1-NEXT: jne .LBB85_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -4236,23 +4191,23 @@ define void @atomic16_nand_acq_rel(ptr %a) {
; O2-LABEL: atomic16_nand_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection148:
+; O2-NEXT: .Lpcsection133:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB85_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection149:
+; O2-NEXT: .Lpcsection134:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection150:
+; O2-NEXT: .Lpcsection135:
; O2-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O2-NEXT: .Lpcsection151:
+; O2-NEXT: .Lpcsection136:
; O2-NEXT: # kill: def $ax killed $ax killed $eax
-; O2-NEXT: .Lpcsection152:
+; O2-NEXT: .Lpcsection137:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
-; O2-NEXT: .Lpcsection153:
+; O2-NEXT: .Lpcsection138:
; O2-NEXT: # kill: def $ax killed $ax def $eax
-; O2-NEXT: .Lpcsection154:
+; O2-NEXT: .Lpcsection139:
; O2-NEXT: jne .LBB85_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -4261,23 +4216,23 @@ define void @atomic16_nand_acq_rel(ptr %a) {
; O3-LABEL: atomic16_nand_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection148:
+; O3-NEXT: .Lpcsection133:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB85_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection149:
+; O3-NEXT: .Lpcsection134:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection150:
+; O3-NEXT: .Lpcsection135:
; O3-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O3-NEXT: .Lpcsection151:
+; O3-NEXT: .Lpcsection136:
; O3-NEXT: # kill: def $ax killed $ax killed $eax
-; O3-NEXT: .Lpcsection152:
+; O3-NEXT: .Lpcsection137:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
-; O3-NEXT: .Lpcsection153:
+; O3-NEXT: .Lpcsection138:
; O3-NEXT: # kill: def $ax killed $ax def $eax
-; O3-NEXT: .Lpcsection154:
+; O3-NEXT: .Lpcsection139:
; O3-NEXT: jne .LBB85_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -4303,7 +4258,7 @@ define void @atomic16_xchg_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection155:
+; O1-NEXT: .Lpcsection140:
; O1-NEXT: xchgw %ax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4312,7 +4267,7 @@ define void @atomic16_xchg_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection155:
+; O2-NEXT: .Lpcsection140:
; O2-NEXT: xchgw %ax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4321,7 +4276,7 @@ define void @atomic16_xchg_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection155:
+; O3-NEXT: .Lpcsection140:
; O3-NEXT: xchgw %ax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4344,7 +4299,7 @@ define void @atomic16_add_seq_cst(ptr %a) {
; O1-LABEL: atomic16_add_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection156:
+; O1-NEXT: .Lpcsection141:
; O1-NEXT: lock addw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4352,7 +4307,7 @@ define void @atomic16_add_seq_cst(ptr %a) {
; O2-LABEL: atomic16_add_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection156:
+; O2-NEXT: .Lpcsection141:
; O2-NEXT: lock addw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4360,7 +4315,7 @@ define void @atomic16_add_seq_cst(ptr %a) {
; O3-LABEL: atomic16_add_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection156:
+; O3-NEXT: .Lpcsection141:
; O3-NEXT: lock addw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4383,7 +4338,7 @@ define void @atomic16_sub_seq_cst(ptr %a) {
; O1-LABEL: atomic16_sub_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection157:
+; O1-NEXT: .Lpcsection142:
; O1-NEXT: lock subw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4391,7 +4346,7 @@ define void @atomic16_sub_seq_cst(ptr %a) {
; O2-LABEL: atomic16_sub_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection157:
+; O2-NEXT: .Lpcsection142:
; O2-NEXT: lock subw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4399,7 +4354,7 @@ define void @atomic16_sub_seq_cst(ptr %a) {
; O3-LABEL: atomic16_sub_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection157:
+; O3-NEXT: .Lpcsection142:
; O3-NEXT: lock subw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4422,7 +4377,7 @@ define void @atomic16_and_seq_cst(ptr %a) {
; O1-LABEL: atomic16_and_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection158:
+; O1-NEXT: .Lpcsection143:
; O1-NEXT: lock andw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4430,7 +4385,7 @@ define void @atomic16_and_seq_cst(ptr %a) {
; O2-LABEL: atomic16_and_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection158:
+; O2-NEXT: .Lpcsection143:
; O2-NEXT: lock andw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4438,7 +4393,7 @@ define void @atomic16_and_seq_cst(ptr %a) {
; O3-LABEL: atomic16_and_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection158:
+; O3-NEXT: .Lpcsection143:
; O3-NEXT: lock andw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4461,7 +4416,7 @@ define void @atomic16_or_seq_cst(ptr %a) {
; O1-LABEL: atomic16_or_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection159:
+; O1-NEXT: .Lpcsection144:
; O1-NEXT: lock orw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4469,7 +4424,7 @@ define void @atomic16_or_seq_cst(ptr %a) {
; O2-LABEL: atomic16_or_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection159:
+; O2-NEXT: .Lpcsection144:
; O2-NEXT: lock orw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4477,7 +4432,7 @@ define void @atomic16_or_seq_cst(ptr %a) {
; O3-LABEL: atomic16_or_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection159:
+; O3-NEXT: .Lpcsection144:
; O3-NEXT: lock orw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4500,7 +4455,7 @@ define void @atomic16_xor_seq_cst(ptr %a) {
; O1-LABEL: atomic16_xor_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection160:
+; O1-NEXT: .Lpcsection145:
; O1-NEXT: lock xorw $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4508,7 +4463,7 @@ define void @atomic16_xor_seq_cst(ptr %a) {
; O2-LABEL: atomic16_xor_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection160:
+; O2-NEXT: .Lpcsection145:
; O2-NEXT: lock xorw $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4516,7 +4471,7 @@ define void @atomic16_xor_seq_cst(ptr %a) {
; O3-LABEL: atomic16_xor_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection160:
+; O3-NEXT: .Lpcsection145:
; O3-NEXT: lock xorw $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4565,23 +4520,23 @@ define void @atomic16_nand_seq_cst(ptr %a) {
; O1-LABEL: atomic16_nand_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection161:
+; O1-NEXT: .Lpcsection146:
; O1-NEXT: movzwl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB92_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection162:
+; O1-NEXT: .Lpcsection147:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection163:
+; O1-NEXT: .Lpcsection148:
; O1-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O1-NEXT: .Lpcsection164:
+; O1-NEXT: .Lpcsection149:
; O1-NEXT: # kill: def $ax killed $ax killed $eax
-; O1-NEXT: .Lpcsection165:
+; O1-NEXT: .Lpcsection150:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
-; O1-NEXT: .Lpcsection166:
+; O1-NEXT: .Lpcsection151:
; O1-NEXT: # kill: def $ax killed $ax def $eax
-; O1-NEXT: .Lpcsection167:
+; O1-NEXT: .Lpcsection152:
; O1-NEXT: jne .LBB92_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -4590,23 +4545,23 @@ define void @atomic16_nand_seq_cst(ptr %a) {
; O2-LABEL: atomic16_nand_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection161:
+; O2-NEXT: .Lpcsection146:
; O2-NEXT: movzwl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB92_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection162:
+; O2-NEXT: .Lpcsection147:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection163:
+; O2-NEXT: .Lpcsection148:
; O2-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O2-NEXT: .Lpcsection164:
+; O2-NEXT: .Lpcsection149:
; O2-NEXT: # kill: def $ax killed $ax killed $eax
-; O2-NEXT: .Lpcsection165:
+; O2-NEXT: .Lpcsection150:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
-; O2-NEXT: .Lpcsection166:
+; O2-NEXT: .Lpcsection151:
; O2-NEXT: # kill: def $ax killed $ax def $eax
-; O2-NEXT: .Lpcsection167:
+; O2-NEXT: .Lpcsection152:
; O2-NEXT: jne .LBB92_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -4615,23 +4570,23 @@ define void @atomic16_nand_seq_cst(ptr %a) {
; O3-LABEL: atomic16_nand_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection161:
+; O3-NEXT: .Lpcsection146:
; O3-NEXT: movzwl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB92_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection162:
+; O3-NEXT: .Lpcsection147:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection163:
+; O3-NEXT: .Lpcsection148:
; O3-NEXT: orl $65493, %ecx # imm = 0xFFD5
-; O3-NEXT: .Lpcsection164:
+; O3-NEXT: .Lpcsection149:
; O3-NEXT: # kill: def $ax killed $ax killed $eax
-; O3-NEXT: .Lpcsection165:
+; O3-NEXT: .Lpcsection150:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
-; O3-NEXT: .Lpcsection166:
+; O3-NEXT: .Lpcsection151:
; O3-NEXT: # kill: def $ax killed $ax def $eax
-; O3-NEXT: .Lpcsection167:
+; O3-NEXT: .Lpcsection152:
; O3-NEXT: jne .LBB92_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -4670,13 +4625,13 @@ define void @atomic16_cas_monotonic(ptr %a) {
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $1, %cx
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection168:
+; O1-NEXT: .Lpcsection153:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection169:
+; O1-NEXT: .Lpcsection154:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection170:
+; O1-NEXT: .Lpcsection155:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4686,13 +4641,13 @@ define void @atomic16_cas_monotonic(ptr %a) {
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $1, %cx
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection168:
+; O2-NEXT: .Lpcsection153:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection169:
+; O2-NEXT: .Lpcsection154:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection170:
+; O2-NEXT: .Lpcsection155:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4702,13 +4657,13 @@ define void @atomic16_cas_monotonic(ptr %a) {
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $1, %cx
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection168:
+; O3-NEXT: .Lpcsection153:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection169:
+; O3-NEXT: .Lpcsection154:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection170:
+; O3-NEXT: .Lpcsection155:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4748,13 +4703,13 @@ define void @atomic16_cas_acquire(ptr %a) {
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $1, %cx
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection171:
+; O1-NEXT: .Lpcsection156:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection172:
+; O1-NEXT: .Lpcsection157:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection173:
+; O1-NEXT: .Lpcsection158:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4764,13 +4719,13 @@ define void @atomic16_cas_acquire(ptr %a) {
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $1, %cx
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection171:
+; O2-NEXT: .Lpcsection156:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection172:
+; O2-NEXT: .Lpcsection157:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection173:
+; O2-NEXT: .Lpcsection158:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4780,13 +4735,13 @@ define void @atomic16_cas_acquire(ptr %a) {
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $1, %cx
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection171:
+; O3-NEXT: .Lpcsection156:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection172:
+; O3-NEXT: .Lpcsection157:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection173:
+; O3-NEXT: .Lpcsection158:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4826,13 +4781,13 @@ define void @atomic16_cas_release(ptr %a) {
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $1, %cx
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection174:
+; O1-NEXT: .Lpcsection159:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection175:
+; O1-NEXT: .Lpcsection160:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection176:
+; O1-NEXT: .Lpcsection161:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4842,13 +4797,13 @@ define void @atomic16_cas_release(ptr %a) {
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $1, %cx
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection174:
+; O2-NEXT: .Lpcsection159:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection175:
+; O2-NEXT: .Lpcsection160:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection176:
+; O2-NEXT: .Lpcsection161:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4858,13 +4813,13 @@ define void @atomic16_cas_release(ptr %a) {
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $1, %cx
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection174:
+; O3-NEXT: .Lpcsection159:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection175:
+; O3-NEXT: .Lpcsection160:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection176:
+; O3-NEXT: .Lpcsection161:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4904,13 +4859,13 @@ define void @atomic16_cas_acq_rel(ptr %a) {
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $1, %cx
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection177:
+; O1-NEXT: .Lpcsection162:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection178:
+; O1-NEXT: .Lpcsection163:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection179:
+; O1-NEXT: .Lpcsection164:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4920,13 +4875,13 @@ define void @atomic16_cas_acq_rel(ptr %a) {
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $1, %cx
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection177:
+; O2-NEXT: .Lpcsection162:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection178:
+; O2-NEXT: .Lpcsection163:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection179:
+; O2-NEXT: .Lpcsection164:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -4936,13 +4891,13 @@ define void @atomic16_cas_acq_rel(ptr %a) {
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $1, %cx
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection177:
+; O3-NEXT: .Lpcsection162:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection178:
+; O3-NEXT: .Lpcsection163:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection179:
+; O3-NEXT: .Lpcsection164:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -4982,13 +4937,13 @@ define void @atomic16_cas_seq_cst(ptr %a) {
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movw $1, %cx
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection180:
+; O1-NEXT: .Lpcsection165:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection181:
+; O1-NEXT: .Lpcsection166:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movw $42, %ax
-; O1-NEXT: .Lpcsection182:
+; O1-NEXT: .Lpcsection167:
; O1-NEXT: lock cmpxchgw %cx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -4998,13 +4953,13 @@ define void @atomic16_cas_seq_cst(ptr %a) {
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movw $1, %cx
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection180:
+; O2-NEXT: .Lpcsection165:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection181:
+; O2-NEXT: .Lpcsection166:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movw $42, %ax
-; O2-NEXT: .Lpcsection182:
+; O2-NEXT: .Lpcsection167:
; O2-NEXT: lock cmpxchgw %cx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5014,13 +4969,13 @@ define void @atomic16_cas_seq_cst(ptr %a) {
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movw $1, %cx
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection180:
+; O3-NEXT: .Lpcsection165:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection181:
+; O3-NEXT: .Lpcsection166:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movw $42, %ax
-; O3-NEXT: .Lpcsection182:
+; O3-NEXT: .Lpcsection167:
; O3-NEXT: lock cmpxchgw %cx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5045,7 +5000,7 @@ define i32 @atomic32_load_unordered(ptr %a) {
; O1-LABEL: atomic32_load_unordered:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection183:
+; O1-NEXT: .Lpcsection168:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5053,7 +5008,7 @@ define i32 @atomic32_load_unordered(ptr %a) {
; O2-LABEL: atomic32_load_unordered:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection183:
+; O2-NEXT: .Lpcsection168:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5061,7 +5016,7 @@ define i32 @atomic32_load_unordered(ptr %a) {
; O3-LABEL: atomic32_load_unordered:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection183:
+; O3-NEXT: .Lpcsection168:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5084,7 +5039,7 @@ define i32 @atomic32_load_monotonic(ptr %a) {
; O1-LABEL: atomic32_load_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection184:
+; O1-NEXT: .Lpcsection169:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5092,7 +5047,7 @@ define i32 @atomic32_load_monotonic(ptr %a) {
; O2-LABEL: atomic32_load_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection184:
+; O2-NEXT: .Lpcsection169:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5100,7 +5055,7 @@ define i32 @atomic32_load_monotonic(ptr %a) {
; O3-LABEL: atomic32_load_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection184:
+; O3-NEXT: .Lpcsection169:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5123,7 +5078,7 @@ define i32 @atomic32_load_acquire(ptr %a) {
; O1-LABEL: atomic32_load_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection185:
+; O1-NEXT: .Lpcsection170:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5131,7 +5086,7 @@ define i32 @atomic32_load_acquire(ptr %a) {
; O2-LABEL: atomic32_load_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection185:
+; O2-NEXT: .Lpcsection170:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5139,7 +5094,7 @@ define i32 @atomic32_load_acquire(ptr %a) {
; O3-LABEL: atomic32_load_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection185:
+; O3-NEXT: .Lpcsection170:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5162,7 +5117,7 @@ define i32 @atomic32_load_seq_cst(ptr %a) {
; O1-LABEL: atomic32_load_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection186:
+; O1-NEXT: .Lpcsection171:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5170,7 +5125,7 @@ define i32 @atomic32_load_seq_cst(ptr %a) {
; O2-LABEL: atomic32_load_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection186:
+; O2-NEXT: .Lpcsection171:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5178,7 +5133,7 @@ define i32 @atomic32_load_seq_cst(ptr %a) {
; O3-LABEL: atomic32_load_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection186:
+; O3-NEXT: .Lpcsection171:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5201,7 +5156,7 @@ define void @atomic32_store_unordered(ptr %a) {
; O1-LABEL: atomic32_store_unordered:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection187:
+; O1-NEXT: .Lpcsection172:
; O1-NEXT: movl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5209,7 +5164,7 @@ define void @atomic32_store_unordered(ptr %a) {
; O2-LABEL: atomic32_store_unordered:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection187:
+; O2-NEXT: .Lpcsection172:
; O2-NEXT: movl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5217,7 +5172,7 @@ define void @atomic32_store_unordered(ptr %a) {
; O3-LABEL: atomic32_store_unordered:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection187:
+; O3-NEXT: .Lpcsection172:
; O3-NEXT: movl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5240,7 +5195,7 @@ define void @atomic32_store_monotonic(ptr %a) {
; O1-LABEL: atomic32_store_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection188:
+; O1-NEXT: .Lpcsection173:
; O1-NEXT: movl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5248,7 +5203,7 @@ define void @atomic32_store_monotonic(ptr %a) {
; O2-LABEL: atomic32_store_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection188:
+; O2-NEXT: .Lpcsection173:
; O2-NEXT: movl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5256,7 +5211,7 @@ define void @atomic32_store_monotonic(ptr %a) {
; O3-LABEL: atomic32_store_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection188:
+; O3-NEXT: .Lpcsection173:
; O3-NEXT: movl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5279,7 +5234,7 @@ define void @atomic32_store_release(ptr %a) {
; O1-LABEL: atomic32_store_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection189:
+; O1-NEXT: .Lpcsection174:
; O1-NEXT: movl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5287,7 +5242,7 @@ define void @atomic32_store_release(ptr %a) {
; O2-LABEL: atomic32_store_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection189:
+; O2-NEXT: .Lpcsection174:
; O2-NEXT: movl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5295,7 +5250,7 @@ define void @atomic32_store_release(ptr %a) {
; O3-LABEL: atomic32_store_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection189:
+; O3-NEXT: .Lpcsection174:
; O3-NEXT: movl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5320,7 +5275,7 @@ define void @atomic32_store_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection190:
+; O1-NEXT: .Lpcsection175:
; O1-NEXT: xchgl %eax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5329,7 +5284,7 @@ define void @atomic32_store_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection190:
+; O2-NEXT: .Lpcsection175:
; O2-NEXT: xchgl %eax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5338,7 +5293,7 @@ define void @atomic32_store_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection190:
+; O3-NEXT: .Lpcsection175:
; O3-NEXT: xchgl %eax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5363,7 +5318,7 @@ define void @atomic32_xchg_monotonic(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection191:
+; O1-NEXT: .Lpcsection176:
; O1-NEXT: xchgl %eax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5372,7 +5327,7 @@ define void @atomic32_xchg_monotonic(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection191:
+; O2-NEXT: .Lpcsection176:
; O2-NEXT: xchgl %eax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5381,7 +5336,7 @@ define void @atomic32_xchg_monotonic(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection191:
+; O3-NEXT: .Lpcsection176:
; O3-NEXT: xchgl %eax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5404,7 +5359,7 @@ define void @atomic32_add_monotonic(ptr %a) {
; O1-LABEL: atomic32_add_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection192:
+; O1-NEXT: .Lpcsection177:
; O1-NEXT: lock addl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5412,7 +5367,7 @@ define void @atomic32_add_monotonic(ptr %a) {
; O2-LABEL: atomic32_add_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection192:
+; O2-NEXT: .Lpcsection177:
; O2-NEXT: lock addl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5420,7 +5375,7 @@ define void @atomic32_add_monotonic(ptr %a) {
; O3-LABEL: atomic32_add_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection192:
+; O3-NEXT: .Lpcsection177:
; O3-NEXT: lock addl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5443,7 +5398,7 @@ define void @atomic32_sub_monotonic(ptr %a) {
; O1-LABEL: atomic32_sub_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection193:
+; O1-NEXT: .Lpcsection178:
; O1-NEXT: lock subl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5451,7 +5406,7 @@ define void @atomic32_sub_monotonic(ptr %a) {
; O2-LABEL: atomic32_sub_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection193:
+; O2-NEXT: .Lpcsection178:
; O2-NEXT: lock subl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5459,7 +5414,7 @@ define void @atomic32_sub_monotonic(ptr %a) {
; O3-LABEL: atomic32_sub_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection193:
+; O3-NEXT: .Lpcsection178:
; O3-NEXT: lock subl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5482,7 +5437,7 @@ define void @atomic32_and_monotonic(ptr %a) {
; O1-LABEL: atomic32_and_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection194:
+; O1-NEXT: .Lpcsection179:
; O1-NEXT: lock andl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5490,7 +5445,7 @@ define void @atomic32_and_monotonic(ptr %a) {
; O2-LABEL: atomic32_and_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection194:
+; O2-NEXT: .Lpcsection179:
; O2-NEXT: lock andl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5498,7 +5453,7 @@ define void @atomic32_and_monotonic(ptr %a) {
; O3-LABEL: atomic32_and_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection194:
+; O3-NEXT: .Lpcsection179:
; O3-NEXT: lock andl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5521,7 +5476,7 @@ define void @atomic32_or_monotonic(ptr %a) {
; O1-LABEL: atomic32_or_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection195:
+; O1-NEXT: .Lpcsection180:
; O1-NEXT: lock orl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5529,7 +5484,7 @@ define void @atomic32_or_monotonic(ptr %a) {
; O2-LABEL: atomic32_or_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection195:
+; O2-NEXT: .Lpcsection180:
; O2-NEXT: lock orl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5537,7 +5492,7 @@ define void @atomic32_or_monotonic(ptr %a) {
; O3-LABEL: atomic32_or_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection195:
+; O3-NEXT: .Lpcsection180:
; O3-NEXT: lock orl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5560,7 +5515,7 @@ define void @atomic32_xor_monotonic(ptr %a) {
; O1-LABEL: atomic32_xor_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection196:
+; O1-NEXT: .Lpcsection181:
; O1-NEXT: lock xorl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5568,7 +5523,7 @@ define void @atomic32_xor_monotonic(ptr %a) {
; O2-LABEL: atomic32_xor_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection196:
+; O2-NEXT: .Lpcsection181:
; O2-NEXT: lock xorl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5576,7 +5531,7 @@ define void @atomic32_xor_monotonic(ptr %a) {
; O3-LABEL: atomic32_xor_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection196:
+; O3-NEXT: .Lpcsection181:
; O3-NEXT: lock xorl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5621,19 +5576,19 @@ define void @atomic32_nand_monotonic(ptr %a) {
; O1-LABEL: atomic32_nand_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection197:
+; O1-NEXT: .Lpcsection182:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB112_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection198:
+; O1-NEXT: .Lpcsection183:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection199:
+; O1-NEXT: .Lpcsection184:
; O1-NEXT: orl $-43, %ecx
-; O1-NEXT: .Lpcsection200:
+; O1-NEXT: .Lpcsection185:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection201:
+; O1-NEXT: .Lpcsection186:
; O1-NEXT: jne .LBB112_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -5642,19 +5597,19 @@ define void @atomic32_nand_monotonic(ptr %a) {
; O2-LABEL: atomic32_nand_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection197:
+; O2-NEXT: .Lpcsection182:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB112_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection198:
+; O2-NEXT: .Lpcsection183:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection199:
+; O2-NEXT: .Lpcsection184:
; O2-NEXT: orl $-43, %ecx
-; O2-NEXT: .Lpcsection200:
+; O2-NEXT: .Lpcsection185:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection201:
+; O2-NEXT: .Lpcsection186:
; O2-NEXT: jne .LBB112_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -5663,19 +5618,19 @@ define void @atomic32_nand_monotonic(ptr %a) {
; O3-LABEL: atomic32_nand_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection197:
+; O3-NEXT: .Lpcsection182:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB112_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection198:
+; O3-NEXT: .Lpcsection183:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection199:
+; O3-NEXT: .Lpcsection184:
; O3-NEXT: orl $-43, %ecx
-; O3-NEXT: .Lpcsection200:
+; O3-NEXT: .Lpcsection185:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection201:
+; O3-NEXT: .Lpcsection186:
; O3-NEXT: jne .LBB112_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -5701,7 +5656,7 @@ define void @atomic32_xchg_acquire(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection202:
+; O1-NEXT: .Lpcsection187:
; O1-NEXT: xchgl %eax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5710,7 +5665,7 @@ define void @atomic32_xchg_acquire(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection202:
+; O2-NEXT: .Lpcsection187:
; O2-NEXT: xchgl %eax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5719,7 +5674,7 @@ define void @atomic32_xchg_acquire(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection202:
+; O3-NEXT: .Lpcsection187:
; O3-NEXT: xchgl %eax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5742,7 +5697,7 @@ define void @atomic32_add_acquire(ptr %a) {
; O1-LABEL: atomic32_add_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection203:
+; O1-NEXT: .Lpcsection188:
; O1-NEXT: lock addl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5750,7 +5705,7 @@ define void @atomic32_add_acquire(ptr %a) {
; O2-LABEL: atomic32_add_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection203:
+; O2-NEXT: .Lpcsection188:
; O2-NEXT: lock addl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5758,7 +5713,7 @@ define void @atomic32_add_acquire(ptr %a) {
; O3-LABEL: atomic32_add_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection203:
+; O3-NEXT: .Lpcsection188:
; O3-NEXT: lock addl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5781,7 +5736,7 @@ define void @atomic32_sub_acquire(ptr %a) {
; O1-LABEL: atomic32_sub_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection204:
+; O1-NEXT: .Lpcsection189:
; O1-NEXT: lock subl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5789,7 +5744,7 @@ define void @atomic32_sub_acquire(ptr %a) {
; O2-LABEL: atomic32_sub_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection204:
+; O2-NEXT: .Lpcsection189:
; O2-NEXT: lock subl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5797,7 +5752,7 @@ define void @atomic32_sub_acquire(ptr %a) {
; O3-LABEL: atomic32_sub_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection204:
+; O3-NEXT: .Lpcsection189:
; O3-NEXT: lock subl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5820,7 +5775,7 @@ define void @atomic32_and_acquire(ptr %a) {
; O1-LABEL: atomic32_and_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection205:
+; O1-NEXT: .Lpcsection190:
; O1-NEXT: lock andl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5828,7 +5783,7 @@ define void @atomic32_and_acquire(ptr %a) {
; O2-LABEL: atomic32_and_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection205:
+; O2-NEXT: .Lpcsection190:
; O2-NEXT: lock andl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5836,7 +5791,7 @@ define void @atomic32_and_acquire(ptr %a) {
; O3-LABEL: atomic32_and_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection205:
+; O3-NEXT: .Lpcsection190:
; O3-NEXT: lock andl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5859,7 +5814,7 @@ define void @atomic32_or_acquire(ptr %a) {
; O1-LABEL: atomic32_or_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection206:
+; O1-NEXT: .Lpcsection191:
; O1-NEXT: lock orl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5867,7 +5822,7 @@ define void @atomic32_or_acquire(ptr %a) {
; O2-LABEL: atomic32_or_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection206:
+; O2-NEXT: .Lpcsection191:
; O2-NEXT: lock orl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5875,7 +5830,7 @@ define void @atomic32_or_acquire(ptr %a) {
; O3-LABEL: atomic32_or_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection206:
+; O3-NEXT: .Lpcsection191:
; O3-NEXT: lock orl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5898,7 +5853,7 @@ define void @atomic32_xor_acquire(ptr %a) {
; O1-LABEL: atomic32_xor_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection207:
+; O1-NEXT: .Lpcsection192:
; O1-NEXT: lock xorl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -5906,7 +5861,7 @@ define void @atomic32_xor_acquire(ptr %a) {
; O2-LABEL: atomic32_xor_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection207:
+; O2-NEXT: .Lpcsection192:
; O2-NEXT: lock xorl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -5914,7 +5869,7 @@ define void @atomic32_xor_acquire(ptr %a) {
; O3-LABEL: atomic32_xor_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection207:
+; O3-NEXT: .Lpcsection192:
; O3-NEXT: lock xorl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -5959,19 +5914,19 @@ define void @atomic32_nand_acquire(ptr %a) {
; O1-LABEL: atomic32_nand_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection208:
+; O1-NEXT: .Lpcsection193:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB119_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection209:
+; O1-NEXT: .Lpcsection194:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection210:
+; O1-NEXT: .Lpcsection195:
; O1-NEXT: orl $-43, %ecx
-; O1-NEXT: .Lpcsection211:
+; O1-NEXT: .Lpcsection196:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection212:
+; O1-NEXT: .Lpcsection197:
; O1-NEXT: jne .LBB119_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -5980,19 +5935,19 @@ define void @atomic32_nand_acquire(ptr %a) {
; O2-LABEL: atomic32_nand_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection208:
+; O2-NEXT: .Lpcsection193:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB119_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection209:
+; O2-NEXT: .Lpcsection194:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection210:
+; O2-NEXT: .Lpcsection195:
; O2-NEXT: orl $-43, %ecx
-; O2-NEXT: .Lpcsection211:
+; O2-NEXT: .Lpcsection196:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection212:
+; O2-NEXT: .Lpcsection197:
; O2-NEXT: jne .LBB119_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -6001,19 +5956,19 @@ define void @atomic32_nand_acquire(ptr %a) {
; O3-LABEL: atomic32_nand_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection208:
+; O3-NEXT: .Lpcsection193:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB119_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection209:
+; O3-NEXT: .Lpcsection194:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection210:
+; O3-NEXT: .Lpcsection195:
; O3-NEXT: orl $-43, %ecx
-; O3-NEXT: .Lpcsection211:
+; O3-NEXT: .Lpcsection196:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection212:
+; O3-NEXT: .Lpcsection197:
; O3-NEXT: jne .LBB119_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -6039,7 +5994,7 @@ define void @atomic32_xchg_release(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection213:
+; O1-NEXT: .Lpcsection198:
; O1-NEXT: xchgl %eax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6048,7 +6003,7 @@ define void @atomic32_xchg_release(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection213:
+; O2-NEXT: .Lpcsection198:
; O2-NEXT: xchgl %eax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6057,7 +6012,7 @@ define void @atomic32_xchg_release(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection213:
+; O3-NEXT: .Lpcsection198:
; O3-NEXT: xchgl %eax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6080,7 +6035,7 @@ define void @atomic32_add_release(ptr %a) {
; O1-LABEL: atomic32_add_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection214:
+; O1-NEXT: .Lpcsection199:
; O1-NEXT: lock addl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6088,7 +6043,7 @@ define void @atomic32_add_release(ptr %a) {
; O2-LABEL: atomic32_add_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection214:
+; O2-NEXT: .Lpcsection199:
; O2-NEXT: lock addl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6096,7 +6051,7 @@ define void @atomic32_add_release(ptr %a) {
; O3-LABEL: atomic32_add_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection214:
+; O3-NEXT: .Lpcsection199:
; O3-NEXT: lock addl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6119,7 +6074,7 @@ define void @atomic32_sub_release(ptr %a) {
; O1-LABEL: atomic32_sub_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection215:
+; O1-NEXT: .Lpcsection200:
; O1-NEXT: lock subl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6127,7 +6082,7 @@ define void @atomic32_sub_release(ptr %a) {
; O2-LABEL: atomic32_sub_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection215:
+; O2-NEXT: .Lpcsection200:
; O2-NEXT: lock subl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6135,7 +6090,7 @@ define void @atomic32_sub_release(ptr %a) {
; O3-LABEL: atomic32_sub_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection215:
+; O3-NEXT: .Lpcsection200:
; O3-NEXT: lock subl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6158,7 +6113,7 @@ define void @atomic32_and_release(ptr %a) {
; O1-LABEL: atomic32_and_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection216:
+; O1-NEXT: .Lpcsection201:
; O1-NEXT: lock andl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6166,7 +6121,7 @@ define void @atomic32_and_release(ptr %a) {
; O2-LABEL: atomic32_and_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection216:
+; O2-NEXT: .Lpcsection201:
; O2-NEXT: lock andl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6174,7 +6129,7 @@ define void @atomic32_and_release(ptr %a) {
; O3-LABEL: atomic32_and_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection216:
+; O3-NEXT: .Lpcsection201:
; O3-NEXT: lock andl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6197,7 +6152,7 @@ define void @atomic32_or_release(ptr %a) {
; O1-LABEL: atomic32_or_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection217:
+; O1-NEXT: .Lpcsection202:
; O1-NEXT: lock orl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6205,7 +6160,7 @@ define void @atomic32_or_release(ptr %a) {
; O2-LABEL: atomic32_or_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection217:
+; O2-NEXT: .Lpcsection202:
; O2-NEXT: lock orl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6213,7 +6168,7 @@ define void @atomic32_or_release(ptr %a) {
; O3-LABEL: atomic32_or_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection217:
+; O3-NEXT: .Lpcsection202:
; O3-NEXT: lock orl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6236,7 +6191,7 @@ define void @atomic32_xor_release(ptr %a) {
; O1-LABEL: atomic32_xor_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection218:
+; O1-NEXT: .Lpcsection203:
; O1-NEXT: lock xorl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6244,7 +6199,7 @@ define void @atomic32_xor_release(ptr %a) {
; O2-LABEL: atomic32_xor_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection218:
+; O2-NEXT: .Lpcsection203:
; O2-NEXT: lock xorl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6252,7 +6207,7 @@ define void @atomic32_xor_release(ptr %a) {
; O3-LABEL: atomic32_xor_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection218:
+; O3-NEXT: .Lpcsection203:
; O3-NEXT: lock xorl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6297,19 +6252,19 @@ define void @atomic32_nand_release(ptr %a) {
; O1-LABEL: atomic32_nand_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection219:
+; O1-NEXT: .Lpcsection204:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB126_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection220:
+; O1-NEXT: .Lpcsection205:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection221:
+; O1-NEXT: .Lpcsection206:
; O1-NEXT: orl $-43, %ecx
-; O1-NEXT: .Lpcsection222:
+; O1-NEXT: .Lpcsection207:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection223:
+; O1-NEXT: .Lpcsection208:
; O1-NEXT: jne .LBB126_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -6318,19 +6273,19 @@ define void @atomic32_nand_release(ptr %a) {
; O2-LABEL: atomic32_nand_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection219:
+; O2-NEXT: .Lpcsection204:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB126_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection220:
+; O2-NEXT: .Lpcsection205:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection221:
+; O2-NEXT: .Lpcsection206:
; O2-NEXT: orl $-43, %ecx
-; O2-NEXT: .Lpcsection222:
+; O2-NEXT: .Lpcsection207:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection223:
+; O2-NEXT: .Lpcsection208:
; O2-NEXT: jne .LBB126_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -6339,19 +6294,19 @@ define void @atomic32_nand_release(ptr %a) {
; O3-LABEL: atomic32_nand_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection219:
+; O3-NEXT: .Lpcsection204:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB126_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection220:
+; O3-NEXT: .Lpcsection205:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection221:
+; O3-NEXT: .Lpcsection206:
; O3-NEXT: orl $-43, %ecx
-; O3-NEXT: .Lpcsection222:
+; O3-NEXT: .Lpcsection207:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection223:
+; O3-NEXT: .Lpcsection208:
; O3-NEXT: jne .LBB126_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -6377,7 +6332,7 @@ define void @atomic32_xchg_acq_rel(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection224:
+; O1-NEXT: .Lpcsection209:
; O1-NEXT: xchgl %eax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6386,7 +6341,7 @@ define void @atomic32_xchg_acq_rel(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection224:
+; O2-NEXT: .Lpcsection209:
; O2-NEXT: xchgl %eax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6395,7 +6350,7 @@ define void @atomic32_xchg_acq_rel(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection224:
+; O3-NEXT: .Lpcsection209:
; O3-NEXT: xchgl %eax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6418,7 +6373,7 @@ define void @atomic32_add_acq_rel(ptr %a) {
; O1-LABEL: atomic32_add_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection225:
+; O1-NEXT: .Lpcsection210:
; O1-NEXT: lock addl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6426,7 +6381,7 @@ define void @atomic32_add_acq_rel(ptr %a) {
; O2-LABEL: atomic32_add_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection225:
+; O2-NEXT: .Lpcsection210:
; O2-NEXT: lock addl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6434,7 +6389,7 @@ define void @atomic32_add_acq_rel(ptr %a) {
; O3-LABEL: atomic32_add_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection225:
+; O3-NEXT: .Lpcsection210:
; O3-NEXT: lock addl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6457,7 +6412,7 @@ define void @atomic32_sub_acq_rel(ptr %a) {
; O1-LABEL: atomic32_sub_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection226:
+; O1-NEXT: .Lpcsection211:
; O1-NEXT: lock subl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6465,7 +6420,7 @@ define void @atomic32_sub_acq_rel(ptr %a) {
; O2-LABEL: atomic32_sub_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection226:
+; O2-NEXT: .Lpcsection211:
; O2-NEXT: lock subl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6473,7 +6428,7 @@ define void @atomic32_sub_acq_rel(ptr %a) {
; O3-LABEL: atomic32_sub_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection226:
+; O3-NEXT: .Lpcsection211:
; O3-NEXT: lock subl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6496,7 +6451,7 @@ define void @atomic32_and_acq_rel(ptr %a) {
; O1-LABEL: atomic32_and_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection227:
+; O1-NEXT: .Lpcsection212:
; O1-NEXT: lock andl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6504,7 +6459,7 @@ define void @atomic32_and_acq_rel(ptr %a) {
; O2-LABEL: atomic32_and_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection227:
+; O2-NEXT: .Lpcsection212:
; O2-NEXT: lock andl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6512,7 +6467,7 @@ define void @atomic32_and_acq_rel(ptr %a) {
; O3-LABEL: atomic32_and_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection227:
+; O3-NEXT: .Lpcsection212:
; O3-NEXT: lock andl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6535,7 +6490,7 @@ define void @atomic32_or_acq_rel(ptr %a) {
; O1-LABEL: atomic32_or_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection228:
+; O1-NEXT: .Lpcsection213:
; O1-NEXT: lock orl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6543,7 +6498,7 @@ define void @atomic32_or_acq_rel(ptr %a) {
; O2-LABEL: atomic32_or_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection228:
+; O2-NEXT: .Lpcsection213:
; O2-NEXT: lock orl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6551,7 +6506,7 @@ define void @atomic32_or_acq_rel(ptr %a) {
; O3-LABEL: atomic32_or_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection228:
+; O3-NEXT: .Lpcsection213:
; O3-NEXT: lock orl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6574,7 +6529,7 @@ define void @atomic32_xor_acq_rel(ptr %a) {
; O1-LABEL: atomic32_xor_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection229:
+; O1-NEXT: .Lpcsection214:
; O1-NEXT: lock xorl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6582,7 +6537,7 @@ define void @atomic32_xor_acq_rel(ptr %a) {
; O2-LABEL: atomic32_xor_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection229:
+; O2-NEXT: .Lpcsection214:
; O2-NEXT: lock xorl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6590,7 +6545,7 @@ define void @atomic32_xor_acq_rel(ptr %a) {
; O3-LABEL: atomic32_xor_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection229:
+; O3-NEXT: .Lpcsection214:
; O3-NEXT: lock xorl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6635,19 +6590,19 @@ define void @atomic32_nand_acq_rel(ptr %a) {
; O1-LABEL: atomic32_nand_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection230:
+; O1-NEXT: .Lpcsection215:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB133_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection231:
+; O1-NEXT: .Lpcsection216:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection232:
+; O1-NEXT: .Lpcsection217:
; O1-NEXT: orl $-43, %ecx
-; O1-NEXT: .Lpcsection233:
+; O1-NEXT: .Lpcsection218:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection234:
+; O1-NEXT: .Lpcsection219:
; O1-NEXT: jne .LBB133_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -6656,19 +6611,19 @@ define void @atomic32_nand_acq_rel(ptr %a) {
; O2-LABEL: atomic32_nand_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection230:
+; O2-NEXT: .Lpcsection215:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB133_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection231:
+; O2-NEXT: .Lpcsection216:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection232:
+; O2-NEXT: .Lpcsection217:
; O2-NEXT: orl $-43, %ecx
-; O2-NEXT: .Lpcsection233:
+; O2-NEXT: .Lpcsection218:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection234:
+; O2-NEXT: .Lpcsection219:
; O2-NEXT: jne .LBB133_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -6677,19 +6632,19 @@ define void @atomic32_nand_acq_rel(ptr %a) {
; O3-LABEL: atomic32_nand_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection230:
+; O3-NEXT: .Lpcsection215:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB133_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection231:
+; O3-NEXT: .Lpcsection216:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection232:
+; O3-NEXT: .Lpcsection217:
; O3-NEXT: orl $-43, %ecx
-; O3-NEXT: .Lpcsection233:
+; O3-NEXT: .Lpcsection218:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection234:
+; O3-NEXT: .Lpcsection219:
; O3-NEXT: jne .LBB133_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -6715,7 +6670,7 @@ define void @atomic32_xchg_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection235:
+; O1-NEXT: .Lpcsection220:
; O1-NEXT: xchgl %eax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6724,7 +6679,7 @@ define void @atomic32_xchg_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection235:
+; O2-NEXT: .Lpcsection220:
; O2-NEXT: xchgl %eax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6733,7 +6688,7 @@ define void @atomic32_xchg_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection235:
+; O3-NEXT: .Lpcsection220:
; O3-NEXT: xchgl %eax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6756,7 +6711,7 @@ define void @atomic32_add_seq_cst(ptr %a) {
; O1-LABEL: atomic32_add_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection236:
+; O1-NEXT: .Lpcsection221:
; O1-NEXT: lock addl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6764,7 +6719,7 @@ define void @atomic32_add_seq_cst(ptr %a) {
; O2-LABEL: atomic32_add_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection236:
+; O2-NEXT: .Lpcsection221:
; O2-NEXT: lock addl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6772,7 +6727,7 @@ define void @atomic32_add_seq_cst(ptr %a) {
; O3-LABEL: atomic32_add_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection236:
+; O3-NEXT: .Lpcsection221:
; O3-NEXT: lock addl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6795,7 +6750,7 @@ define void @atomic32_sub_seq_cst(ptr %a) {
; O1-LABEL: atomic32_sub_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection237:
+; O1-NEXT: .Lpcsection222:
; O1-NEXT: lock subl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6803,7 +6758,7 @@ define void @atomic32_sub_seq_cst(ptr %a) {
; O2-LABEL: atomic32_sub_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection237:
+; O2-NEXT: .Lpcsection222:
; O2-NEXT: lock subl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6811,7 +6766,7 @@ define void @atomic32_sub_seq_cst(ptr %a) {
; O3-LABEL: atomic32_sub_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection237:
+; O3-NEXT: .Lpcsection222:
; O3-NEXT: lock subl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6834,7 +6789,7 @@ define void @atomic32_and_seq_cst(ptr %a) {
; O1-LABEL: atomic32_and_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection238:
+; O1-NEXT: .Lpcsection223:
; O1-NEXT: lock andl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6842,7 +6797,7 @@ define void @atomic32_and_seq_cst(ptr %a) {
; O2-LABEL: atomic32_and_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection238:
+; O2-NEXT: .Lpcsection223:
; O2-NEXT: lock andl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6850,7 +6805,7 @@ define void @atomic32_and_seq_cst(ptr %a) {
; O3-LABEL: atomic32_and_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection238:
+; O3-NEXT: .Lpcsection223:
; O3-NEXT: lock andl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6873,7 +6828,7 @@ define void @atomic32_or_seq_cst(ptr %a) {
; O1-LABEL: atomic32_or_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection239:
+; O1-NEXT: .Lpcsection224:
; O1-NEXT: lock orl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6881,7 +6836,7 @@ define void @atomic32_or_seq_cst(ptr %a) {
; O2-LABEL: atomic32_or_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection239:
+; O2-NEXT: .Lpcsection224:
; O2-NEXT: lock orl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6889,7 +6844,7 @@ define void @atomic32_or_seq_cst(ptr %a) {
; O3-LABEL: atomic32_or_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection239:
+; O3-NEXT: .Lpcsection224:
; O3-NEXT: lock orl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6912,7 +6867,7 @@ define void @atomic32_xor_seq_cst(ptr %a) {
; O1-LABEL: atomic32_xor_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection240:
+; O1-NEXT: .Lpcsection225:
; O1-NEXT: lock xorl $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -6920,7 +6875,7 @@ define void @atomic32_xor_seq_cst(ptr %a) {
; O2-LABEL: atomic32_xor_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection240:
+; O2-NEXT: .Lpcsection225:
; O2-NEXT: lock xorl $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -6928,7 +6883,7 @@ define void @atomic32_xor_seq_cst(ptr %a) {
; O3-LABEL: atomic32_xor_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection240:
+; O3-NEXT: .Lpcsection225:
; O3-NEXT: lock xorl $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -6973,19 +6928,19 @@ define void @atomic32_nand_seq_cst(ptr %a) {
; O1-LABEL: atomic32_nand_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection241:
+; O1-NEXT: .Lpcsection226:
; O1-NEXT: movl (%rdi), %eax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB140_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection242:
+; O1-NEXT: .Lpcsection227:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection243:
+; O1-NEXT: .Lpcsection228:
; O1-NEXT: orl $-43, %ecx
-; O1-NEXT: .Lpcsection244:
+; O1-NEXT: .Lpcsection229:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection245:
+; O1-NEXT: .Lpcsection230:
; O1-NEXT: jne .LBB140_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -6994,19 +6949,19 @@ define void @atomic32_nand_seq_cst(ptr %a) {
; O2-LABEL: atomic32_nand_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection241:
+; O2-NEXT: .Lpcsection226:
; O2-NEXT: movl (%rdi), %eax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB140_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection242:
+; O2-NEXT: .Lpcsection227:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection243:
+; O2-NEXT: .Lpcsection228:
; O2-NEXT: orl $-43, %ecx
-; O2-NEXT: .Lpcsection244:
+; O2-NEXT: .Lpcsection229:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection245:
+; O2-NEXT: .Lpcsection230:
; O2-NEXT: jne .LBB140_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -7015,19 +6970,19 @@ define void @atomic32_nand_seq_cst(ptr %a) {
; O3-LABEL: atomic32_nand_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection241:
+; O3-NEXT: .Lpcsection226:
; O3-NEXT: movl (%rdi), %eax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB140_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection242:
+; O3-NEXT: .Lpcsection227:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection243:
+; O3-NEXT: .Lpcsection228:
; O3-NEXT: orl $-43, %ecx
-; O3-NEXT: .Lpcsection244:
+; O3-NEXT: .Lpcsection229:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection245:
+; O3-NEXT: .Lpcsection230:
; O3-NEXT: jne .LBB140_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -7065,17 +7020,14 @@ define void @atomic32_cas_monotonic(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection246:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection247:
+; O1-NEXT: .Lpcsection231:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection248:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection249:
+; O1-NEXT: .Lpcsection232:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection250:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection251:
+; O1-NEXT: .Lpcsection233:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7084,17 +7036,14 @@ define void @atomic32_cas_monotonic(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection246:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection247:
+; O2-NEXT: .Lpcsection231:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection248:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection249:
+; O2-NEXT: .Lpcsection232:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection250:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection251:
+; O2-NEXT: .Lpcsection233:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7103,17 +7052,14 @@ define void @atomic32_cas_monotonic(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection246:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection247:
+; O3-NEXT: .Lpcsection231:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection248:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection249:
+; O3-NEXT: .Lpcsection232:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection250:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection251:
+; O3-NEXT: .Lpcsection233:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7152,17 +7098,14 @@ define void @atomic32_cas_acquire(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection252:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection253:
+; O1-NEXT: .Lpcsection234:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection254:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection255:
+; O1-NEXT: .Lpcsection235:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection256:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection257:
+; O1-NEXT: .Lpcsection236:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7171,17 +7114,14 @@ define void @atomic32_cas_acquire(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection252:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection253:
+; O2-NEXT: .Lpcsection234:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection254:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection255:
+; O2-NEXT: .Lpcsection235:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection256:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection257:
+; O2-NEXT: .Lpcsection236:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7190,17 +7130,14 @@ define void @atomic32_cas_acquire(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection252:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection253:
+; O3-NEXT: .Lpcsection234:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection254:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection255:
+; O3-NEXT: .Lpcsection235:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection256:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection257:
+; O3-NEXT: .Lpcsection236:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7239,17 +7176,14 @@ define void @atomic32_cas_release(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection258:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection259:
+; O1-NEXT: .Lpcsection237:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection260:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection261:
+; O1-NEXT: .Lpcsection238:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection262:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection263:
+; O1-NEXT: .Lpcsection239:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7258,17 +7192,14 @@ define void @atomic32_cas_release(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection258:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection259:
+; O2-NEXT: .Lpcsection237:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection260:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection261:
+; O2-NEXT: .Lpcsection238:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection262:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection263:
+; O2-NEXT: .Lpcsection239:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7277,17 +7208,14 @@ define void @atomic32_cas_release(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection258:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection259:
+; O3-NEXT: .Lpcsection237:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection260:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection261:
+; O3-NEXT: .Lpcsection238:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection262:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection263:
+; O3-NEXT: .Lpcsection239:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7326,17 +7254,14 @@ define void @atomic32_cas_acq_rel(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection264:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection265:
+; O1-NEXT: .Lpcsection240:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection266:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection267:
+; O1-NEXT: .Lpcsection241:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection268:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection269:
+; O1-NEXT: .Lpcsection242:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7345,17 +7270,14 @@ define void @atomic32_cas_acq_rel(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection264:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection265:
+; O2-NEXT: .Lpcsection240:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection266:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection267:
+; O2-NEXT: .Lpcsection241:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection268:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection269:
+; O2-NEXT: .Lpcsection242:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7364,17 +7286,14 @@ define void @atomic32_cas_acq_rel(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection264:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection265:
+; O3-NEXT: .Lpcsection240:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection266:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection267:
+; O3-NEXT: .Lpcsection241:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection268:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection269:
+; O3-NEXT: .Lpcsection242:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7413,17 +7332,14 @@ define void @atomic32_cas_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection270:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection271:
+; O1-NEXT: .Lpcsection243:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection272:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection273:
+; O1-NEXT: .Lpcsection244:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O1-NEXT: .Lpcsection274:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection275:
+; O1-NEXT: .Lpcsection245:
; O1-NEXT: lock cmpxchgl %ecx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7432,17 +7348,14 @@ define void @atomic32_cas_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection270:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection271:
+; O2-NEXT: .Lpcsection243:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection272:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection273:
+; O2-NEXT: .Lpcsection244:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O2-NEXT: .Lpcsection274:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection275:
+; O2-NEXT: .Lpcsection245:
; O2-NEXT: lock cmpxchgl %ecx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7451,17 +7364,14 @@ define void @atomic32_cas_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection270:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection271:
+; O3-NEXT: .Lpcsection243:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection272:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection273:
+; O3-NEXT: .Lpcsection244:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
-; O3-NEXT: .Lpcsection274:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection275:
+; O3-NEXT: .Lpcsection245:
; O3-NEXT: lock cmpxchgl %ecx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7486,7 +7396,7 @@ define i64 @atomic64_load_unordered(ptr %a) {
; O1-LABEL: atomic64_load_unordered:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection276:
+; O1-NEXT: .Lpcsection246:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7494,7 +7404,7 @@ define i64 @atomic64_load_unordered(ptr %a) {
; O2-LABEL: atomic64_load_unordered:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection276:
+; O2-NEXT: .Lpcsection246:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7502,7 +7412,7 @@ define i64 @atomic64_load_unordered(ptr %a) {
; O3-LABEL: atomic64_load_unordered:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection276:
+; O3-NEXT: .Lpcsection246:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7525,7 +7435,7 @@ define i64 @atomic64_load_monotonic(ptr %a) {
; O1-LABEL: atomic64_load_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection277:
+; O1-NEXT: .Lpcsection247:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7533,7 +7443,7 @@ define i64 @atomic64_load_monotonic(ptr %a) {
; O2-LABEL: atomic64_load_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection277:
+; O2-NEXT: .Lpcsection247:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7541,7 +7451,7 @@ define i64 @atomic64_load_monotonic(ptr %a) {
; O3-LABEL: atomic64_load_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection277:
+; O3-NEXT: .Lpcsection247:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7564,7 +7474,7 @@ define i64 @atomic64_load_acquire(ptr %a) {
; O1-LABEL: atomic64_load_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection278:
+; O1-NEXT: .Lpcsection248:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7572,7 +7482,7 @@ define i64 @atomic64_load_acquire(ptr %a) {
; O2-LABEL: atomic64_load_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection278:
+; O2-NEXT: .Lpcsection248:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7580,7 +7490,7 @@ define i64 @atomic64_load_acquire(ptr %a) {
; O3-LABEL: atomic64_load_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection278:
+; O3-NEXT: .Lpcsection248:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7603,7 +7513,7 @@ define i64 @atomic64_load_seq_cst(ptr %a) {
; O1-LABEL: atomic64_load_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection279:
+; O1-NEXT: .Lpcsection249:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7611,7 +7521,7 @@ define i64 @atomic64_load_seq_cst(ptr %a) {
; O2-LABEL: atomic64_load_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection279:
+; O2-NEXT: .Lpcsection249:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7619,7 +7529,7 @@ define i64 @atomic64_load_seq_cst(ptr %a) {
; O3-LABEL: atomic64_load_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection279:
+; O3-NEXT: .Lpcsection249:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7642,7 +7552,7 @@ define ptr @atomic64_load_seq_cst_ptr_ty(ptr %a) {
; O1-LABEL: atomic64_load_seq_cst_ptr_ty:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection280:
+; O1-NEXT: .Lpcsection250:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7650,7 +7560,7 @@ define ptr @atomic64_load_seq_cst_ptr_ty(ptr %a) {
; O2-LABEL: atomic64_load_seq_cst_ptr_ty:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection280:
+; O2-NEXT: .Lpcsection250:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7658,7 +7568,7 @@ define ptr @atomic64_load_seq_cst_ptr_ty(ptr %a) {
; O3-LABEL: atomic64_load_seq_cst_ptr_ty:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection280:
+; O3-NEXT: .Lpcsection250:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7681,7 +7591,7 @@ define void @atomic64_store_unordered(ptr %a) {
; O1-LABEL: atomic64_store_unordered:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection281:
+; O1-NEXT: .Lpcsection251:
; O1-NEXT: movq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7689,7 +7599,7 @@ define void @atomic64_store_unordered(ptr %a) {
; O2-LABEL: atomic64_store_unordered:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection281:
+; O2-NEXT: .Lpcsection251:
; O2-NEXT: movq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7697,7 +7607,7 @@ define void @atomic64_store_unordered(ptr %a) {
; O3-LABEL: atomic64_store_unordered:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection281:
+; O3-NEXT: .Lpcsection251:
; O3-NEXT: movq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7720,7 +7630,7 @@ define void @atomic64_store_monotonic(ptr %a) {
; O1-LABEL: atomic64_store_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection282:
+; O1-NEXT: .Lpcsection252:
; O1-NEXT: movq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7728,7 +7638,7 @@ define void @atomic64_store_monotonic(ptr %a) {
; O2-LABEL: atomic64_store_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection282:
+; O2-NEXT: .Lpcsection252:
; O2-NEXT: movq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7736,7 +7646,7 @@ define void @atomic64_store_monotonic(ptr %a) {
; O3-LABEL: atomic64_store_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection282:
+; O3-NEXT: .Lpcsection252:
; O3-NEXT: movq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7759,7 +7669,7 @@ define void @atomic64_store_release(ptr %a) {
; O1-LABEL: atomic64_store_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection283:
+; O1-NEXT: .Lpcsection253:
; O1-NEXT: movq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7767,7 +7677,7 @@ define void @atomic64_store_release(ptr %a) {
; O2-LABEL: atomic64_store_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection283:
+; O2-NEXT: .Lpcsection253:
; O2-NEXT: movq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7775,7 +7685,7 @@ define void @atomic64_store_release(ptr %a) {
; O3-LABEL: atomic64_store_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection283:
+; O3-NEXT: .Lpcsection253:
; O3-NEXT: movq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7800,7 +7710,7 @@ define void @atomic64_store_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection284:
+; O1-NEXT: .Lpcsection254:
; O1-NEXT: xchgq %rax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7809,7 +7719,7 @@ define void @atomic64_store_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection284:
+; O2-NEXT: .Lpcsection254:
; O2-NEXT: xchgq %rax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7818,7 +7728,7 @@ define void @atomic64_store_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection284:
+; O3-NEXT: .Lpcsection254:
; O3-NEXT: xchgq %rax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7841,7 +7751,7 @@ define void @atomic64_store_seq_cst_ptr_ty(ptr %a, ptr %v) {
; O1-LABEL: atomic64_store_seq_cst_ptr_ty:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection285:
+; O1-NEXT: .Lpcsection255:
; O1-NEXT: xchgq %rsi, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7849,7 +7759,7 @@ define void @atomic64_store_seq_cst_ptr_ty(ptr %a, ptr %v) {
; O2-LABEL: atomic64_store_seq_cst_ptr_ty:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection285:
+; O2-NEXT: .Lpcsection255:
; O2-NEXT: xchgq %rsi, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7857,7 +7767,7 @@ define void @atomic64_store_seq_cst_ptr_ty(ptr %a, ptr %v) {
; O3-LABEL: atomic64_store_seq_cst_ptr_ty:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection285:
+; O3-NEXT: .Lpcsection255:
; O3-NEXT: xchgq %rsi, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7882,7 +7792,7 @@ define void @atomic64_xchg_monotonic(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection286:
+; O1-NEXT: .Lpcsection256:
; O1-NEXT: xchgq %rax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7891,7 +7801,7 @@ define void @atomic64_xchg_monotonic(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection286:
+; O2-NEXT: .Lpcsection256:
; O2-NEXT: xchgq %rax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7900,7 +7810,7 @@ define void @atomic64_xchg_monotonic(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection286:
+; O3-NEXT: .Lpcsection256:
; O3-NEXT: xchgq %rax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7923,7 +7833,7 @@ define void @atomic64_add_monotonic(ptr %a) {
; O1-LABEL: atomic64_add_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection287:
+; O1-NEXT: .Lpcsection257:
; O1-NEXT: lock addq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7931,7 +7841,7 @@ define void @atomic64_add_monotonic(ptr %a) {
; O2-LABEL: atomic64_add_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection287:
+; O2-NEXT: .Lpcsection257:
; O2-NEXT: lock addq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7939,7 +7849,7 @@ define void @atomic64_add_monotonic(ptr %a) {
; O3-LABEL: atomic64_add_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection287:
+; O3-NEXT: .Lpcsection257:
; O3-NEXT: lock addq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -7962,7 +7872,7 @@ define void @atomic64_sub_monotonic(ptr %a) {
; O1-LABEL: atomic64_sub_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection288:
+; O1-NEXT: .Lpcsection258:
; O1-NEXT: lock subq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -7970,7 +7880,7 @@ define void @atomic64_sub_monotonic(ptr %a) {
; O2-LABEL: atomic64_sub_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection288:
+; O2-NEXT: .Lpcsection258:
; O2-NEXT: lock subq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -7978,7 +7888,7 @@ define void @atomic64_sub_monotonic(ptr %a) {
; O3-LABEL: atomic64_sub_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection288:
+; O3-NEXT: .Lpcsection258:
; O3-NEXT: lock subq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8001,7 +7911,7 @@ define void @atomic64_and_monotonic(ptr %a) {
; O1-LABEL: atomic64_and_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection289:
+; O1-NEXT: .Lpcsection259:
; O1-NEXT: lock andq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8009,7 +7919,7 @@ define void @atomic64_and_monotonic(ptr %a) {
; O2-LABEL: atomic64_and_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection289:
+; O2-NEXT: .Lpcsection259:
; O2-NEXT: lock andq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8017,7 +7927,7 @@ define void @atomic64_and_monotonic(ptr %a) {
; O3-LABEL: atomic64_and_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection289:
+; O3-NEXT: .Lpcsection259:
; O3-NEXT: lock andq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8040,7 +7950,7 @@ define void @atomic64_or_monotonic(ptr %a) {
; O1-LABEL: atomic64_or_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection290:
+; O1-NEXT: .Lpcsection260:
; O1-NEXT: lock orq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8048,7 +7958,7 @@ define void @atomic64_or_monotonic(ptr %a) {
; O2-LABEL: atomic64_or_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection290:
+; O2-NEXT: .Lpcsection260:
; O2-NEXT: lock orq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8056,7 +7966,7 @@ define void @atomic64_or_monotonic(ptr %a) {
; O3-LABEL: atomic64_or_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection290:
+; O3-NEXT: .Lpcsection260:
; O3-NEXT: lock orq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8079,7 +7989,7 @@ define void @atomic64_xor_monotonic(ptr %a) {
; O1-LABEL: atomic64_xor_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection291:
+; O1-NEXT: .Lpcsection261:
; O1-NEXT: lock xorq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8087,7 +7997,7 @@ define void @atomic64_xor_monotonic(ptr %a) {
; O2-LABEL: atomic64_xor_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection291:
+; O2-NEXT: .Lpcsection261:
; O2-NEXT: lock xorq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8095,7 +8005,7 @@ define void @atomic64_xor_monotonic(ptr %a) {
; O3-LABEL: atomic64_xor_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection291:
+; O3-NEXT: .Lpcsection261:
; O3-NEXT: lock xorq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8143,19 +8053,19 @@ define void @atomic64_nand_monotonic(ptr %a) {
; O1-LABEL: atomic64_nand_monotonic:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection292:
+; O1-NEXT: .Lpcsection262:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB162_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection293:
+; O1-NEXT: .Lpcsection263:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection294:
+; O1-NEXT: .Lpcsection264:
; O1-NEXT: orq $-43, %rcx
-; O1-NEXT: .Lpcsection295:
+; O1-NEXT: .Lpcsection265:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection296:
+; O1-NEXT: .Lpcsection266:
; O1-NEXT: jne .LBB162_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -8164,19 +8074,19 @@ define void @atomic64_nand_monotonic(ptr %a) {
; O2-LABEL: atomic64_nand_monotonic:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection292:
+; O2-NEXT: .Lpcsection262:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB162_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection293:
+; O2-NEXT: .Lpcsection263:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection294:
+; O2-NEXT: .Lpcsection264:
; O2-NEXT: orq $-43, %rcx
-; O2-NEXT: .Lpcsection295:
+; O2-NEXT: .Lpcsection265:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection296:
+; O2-NEXT: .Lpcsection266:
; O2-NEXT: jne .LBB162_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -8185,19 +8095,19 @@ define void @atomic64_nand_monotonic(ptr %a) {
; O3-LABEL: atomic64_nand_monotonic:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection292:
+; O3-NEXT: .Lpcsection262:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB162_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection293:
+; O3-NEXT: .Lpcsection263:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection294:
+; O3-NEXT: .Lpcsection264:
; O3-NEXT: orq $-43, %rcx
-; O3-NEXT: .Lpcsection295:
+; O3-NEXT: .Lpcsection265:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection296:
+; O3-NEXT: .Lpcsection266:
; O3-NEXT: jne .LBB162_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -8223,7 +8133,7 @@ define void @atomic64_xchg_acquire(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection297:
+; O1-NEXT: .Lpcsection267:
; O1-NEXT: xchgq %rax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8232,7 +8142,7 @@ define void @atomic64_xchg_acquire(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection297:
+; O2-NEXT: .Lpcsection267:
; O2-NEXT: xchgq %rax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8241,7 +8151,7 @@ define void @atomic64_xchg_acquire(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection297:
+; O3-NEXT: .Lpcsection267:
; O3-NEXT: xchgq %rax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8264,7 +8174,7 @@ define void @atomic64_add_acquire(ptr %a) {
; O1-LABEL: atomic64_add_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection298:
+; O1-NEXT: .Lpcsection268:
; O1-NEXT: lock addq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8272,7 +8182,7 @@ define void @atomic64_add_acquire(ptr %a) {
; O2-LABEL: atomic64_add_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection298:
+; O2-NEXT: .Lpcsection268:
; O2-NEXT: lock addq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8280,7 +8190,7 @@ define void @atomic64_add_acquire(ptr %a) {
; O3-LABEL: atomic64_add_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection298:
+; O3-NEXT: .Lpcsection268:
; O3-NEXT: lock addq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8303,7 +8213,7 @@ define void @atomic64_sub_acquire(ptr %a) {
; O1-LABEL: atomic64_sub_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection299:
+; O1-NEXT: .Lpcsection269:
; O1-NEXT: lock subq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8311,7 +8221,7 @@ define void @atomic64_sub_acquire(ptr %a) {
; O2-LABEL: atomic64_sub_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection299:
+; O2-NEXT: .Lpcsection269:
; O2-NEXT: lock subq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8319,7 +8229,7 @@ define void @atomic64_sub_acquire(ptr %a) {
; O3-LABEL: atomic64_sub_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection299:
+; O3-NEXT: .Lpcsection269:
; O3-NEXT: lock subq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8342,7 +8252,7 @@ define void @atomic64_and_acquire(ptr %a) {
; O1-LABEL: atomic64_and_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection300:
+; O1-NEXT: .Lpcsection270:
; O1-NEXT: lock andq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8350,7 +8260,7 @@ define void @atomic64_and_acquire(ptr %a) {
; O2-LABEL: atomic64_and_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection300:
+; O2-NEXT: .Lpcsection270:
; O2-NEXT: lock andq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8358,7 +8268,7 @@ define void @atomic64_and_acquire(ptr %a) {
; O3-LABEL: atomic64_and_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection300:
+; O3-NEXT: .Lpcsection270:
; O3-NEXT: lock andq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8381,7 +8291,7 @@ define void @atomic64_or_acquire(ptr %a) {
; O1-LABEL: atomic64_or_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection301:
+; O1-NEXT: .Lpcsection271:
; O1-NEXT: lock orq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8389,7 +8299,7 @@ define void @atomic64_or_acquire(ptr %a) {
; O2-LABEL: atomic64_or_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection301:
+; O2-NEXT: .Lpcsection271:
; O2-NEXT: lock orq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8397,7 +8307,7 @@ define void @atomic64_or_acquire(ptr %a) {
; O3-LABEL: atomic64_or_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection301:
+; O3-NEXT: .Lpcsection271:
; O3-NEXT: lock orq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8420,7 +8330,7 @@ define void @atomic64_xor_acquire(ptr %a) {
; O1-LABEL: atomic64_xor_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection302:
+; O1-NEXT: .Lpcsection272:
; O1-NEXT: lock xorq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8428,7 +8338,7 @@ define void @atomic64_xor_acquire(ptr %a) {
; O2-LABEL: atomic64_xor_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection302:
+; O2-NEXT: .Lpcsection272:
; O2-NEXT: lock xorq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8436,7 +8346,7 @@ define void @atomic64_xor_acquire(ptr %a) {
; O3-LABEL: atomic64_xor_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection302:
+; O3-NEXT: .Lpcsection272:
; O3-NEXT: lock xorq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8484,19 +8394,19 @@ define void @atomic64_nand_acquire(ptr %a) {
; O1-LABEL: atomic64_nand_acquire:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection303:
+; O1-NEXT: .Lpcsection273:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB169_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection304:
+; O1-NEXT: .Lpcsection274:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection305:
+; O1-NEXT: .Lpcsection275:
; O1-NEXT: orq $-43, %rcx
-; O1-NEXT: .Lpcsection306:
+; O1-NEXT: .Lpcsection276:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection307:
+; O1-NEXT: .Lpcsection277:
; O1-NEXT: jne .LBB169_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -8505,19 +8415,19 @@ define void @atomic64_nand_acquire(ptr %a) {
; O2-LABEL: atomic64_nand_acquire:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection303:
+; O2-NEXT: .Lpcsection273:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB169_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection304:
+; O2-NEXT: .Lpcsection274:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection305:
+; O2-NEXT: .Lpcsection275:
; O2-NEXT: orq $-43, %rcx
-; O2-NEXT: .Lpcsection306:
+; O2-NEXT: .Lpcsection276:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection307:
+; O2-NEXT: .Lpcsection277:
; O2-NEXT: jne .LBB169_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -8526,19 +8436,19 @@ define void @atomic64_nand_acquire(ptr %a) {
; O3-LABEL: atomic64_nand_acquire:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection303:
+; O3-NEXT: .Lpcsection273:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB169_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection304:
+; O3-NEXT: .Lpcsection274:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection305:
+; O3-NEXT: .Lpcsection275:
; O3-NEXT: orq $-43, %rcx
-; O3-NEXT: .Lpcsection306:
+; O3-NEXT: .Lpcsection276:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection307:
+; O3-NEXT: .Lpcsection277:
; O3-NEXT: jne .LBB169_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -8564,7 +8474,7 @@ define void @atomic64_xchg_release(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection308:
+; O1-NEXT: .Lpcsection278:
; O1-NEXT: xchgq %rax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8573,7 +8483,7 @@ define void @atomic64_xchg_release(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection308:
+; O2-NEXT: .Lpcsection278:
; O2-NEXT: xchgq %rax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8582,7 +8492,7 @@ define void @atomic64_xchg_release(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection308:
+; O3-NEXT: .Lpcsection278:
; O3-NEXT: xchgq %rax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8605,7 +8515,7 @@ define void @atomic64_add_release(ptr %a) {
; O1-LABEL: atomic64_add_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection309:
+; O1-NEXT: .Lpcsection279:
; O1-NEXT: lock addq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8613,7 +8523,7 @@ define void @atomic64_add_release(ptr %a) {
; O2-LABEL: atomic64_add_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection309:
+; O2-NEXT: .Lpcsection279:
; O2-NEXT: lock addq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8621,7 +8531,7 @@ define void @atomic64_add_release(ptr %a) {
; O3-LABEL: atomic64_add_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection309:
+; O3-NEXT: .Lpcsection279:
; O3-NEXT: lock addq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8644,7 +8554,7 @@ define void @atomic64_sub_release(ptr %a) {
; O1-LABEL: atomic64_sub_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection310:
+; O1-NEXT: .Lpcsection280:
; O1-NEXT: lock subq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8652,7 +8562,7 @@ define void @atomic64_sub_release(ptr %a) {
; O2-LABEL: atomic64_sub_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection310:
+; O2-NEXT: .Lpcsection280:
; O2-NEXT: lock subq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8660,7 +8570,7 @@ define void @atomic64_sub_release(ptr %a) {
; O3-LABEL: atomic64_sub_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection310:
+; O3-NEXT: .Lpcsection280:
; O3-NEXT: lock subq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8683,7 +8593,7 @@ define void @atomic64_and_release(ptr %a) {
; O1-LABEL: atomic64_and_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection311:
+; O1-NEXT: .Lpcsection281:
; O1-NEXT: lock andq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8691,7 +8601,7 @@ define void @atomic64_and_release(ptr %a) {
; O2-LABEL: atomic64_and_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection311:
+; O2-NEXT: .Lpcsection281:
; O2-NEXT: lock andq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8699,7 +8609,7 @@ define void @atomic64_and_release(ptr %a) {
; O3-LABEL: atomic64_and_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection311:
+; O3-NEXT: .Lpcsection281:
; O3-NEXT: lock andq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8722,7 +8632,7 @@ define void @atomic64_or_release(ptr %a) {
; O1-LABEL: atomic64_or_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection312:
+; O1-NEXT: .Lpcsection282:
; O1-NEXT: lock orq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8730,7 +8640,7 @@ define void @atomic64_or_release(ptr %a) {
; O2-LABEL: atomic64_or_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection312:
+; O2-NEXT: .Lpcsection282:
; O2-NEXT: lock orq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8738,7 +8648,7 @@ define void @atomic64_or_release(ptr %a) {
; O3-LABEL: atomic64_or_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection312:
+; O3-NEXT: .Lpcsection282:
; O3-NEXT: lock orq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8761,7 +8671,7 @@ define void @atomic64_xor_release(ptr %a) {
; O1-LABEL: atomic64_xor_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection313:
+; O1-NEXT: .Lpcsection283:
; O1-NEXT: lock xorq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8769,7 +8679,7 @@ define void @atomic64_xor_release(ptr %a) {
; O2-LABEL: atomic64_xor_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection313:
+; O2-NEXT: .Lpcsection283:
; O2-NEXT: lock xorq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8777,7 +8687,7 @@ define void @atomic64_xor_release(ptr %a) {
; O3-LABEL: atomic64_xor_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection313:
+; O3-NEXT: .Lpcsection283:
; O3-NEXT: lock xorq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8825,19 +8735,19 @@ define void @atomic64_nand_release(ptr %a) {
; O1-LABEL: atomic64_nand_release:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection314:
+; O1-NEXT: .Lpcsection284:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB176_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection315:
+; O1-NEXT: .Lpcsection285:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection316:
+; O1-NEXT: .Lpcsection286:
; O1-NEXT: orq $-43, %rcx
-; O1-NEXT: .Lpcsection317:
+; O1-NEXT: .Lpcsection287:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection318:
+; O1-NEXT: .Lpcsection288:
; O1-NEXT: jne .LBB176_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -8846,19 +8756,19 @@ define void @atomic64_nand_release(ptr %a) {
; O2-LABEL: atomic64_nand_release:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection314:
+; O2-NEXT: .Lpcsection284:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB176_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection315:
+; O2-NEXT: .Lpcsection285:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection316:
+; O2-NEXT: .Lpcsection286:
; O2-NEXT: orq $-43, %rcx
-; O2-NEXT: .Lpcsection317:
+; O2-NEXT: .Lpcsection287:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection318:
+; O2-NEXT: .Lpcsection288:
; O2-NEXT: jne .LBB176_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -8867,19 +8777,19 @@ define void @atomic64_nand_release(ptr %a) {
; O3-LABEL: atomic64_nand_release:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection314:
+; O3-NEXT: .Lpcsection284:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB176_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection315:
+; O3-NEXT: .Lpcsection285:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection316:
+; O3-NEXT: .Lpcsection286:
; O3-NEXT: orq $-43, %rcx
-; O3-NEXT: .Lpcsection317:
+; O3-NEXT: .Lpcsection287:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection318:
+; O3-NEXT: .Lpcsection288:
; O3-NEXT: jne .LBB176_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -8905,7 +8815,7 @@ define void @atomic64_xchg_acq_rel(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection319:
+; O1-NEXT: .Lpcsection289:
; O1-NEXT: xchgq %rax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8914,7 +8824,7 @@ define void @atomic64_xchg_acq_rel(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection319:
+; O2-NEXT: .Lpcsection289:
; O2-NEXT: xchgq %rax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8923,7 +8833,7 @@ define void @atomic64_xchg_acq_rel(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection319:
+; O3-NEXT: .Lpcsection289:
; O3-NEXT: xchgq %rax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8946,7 +8856,7 @@ define void @atomic64_add_acq_rel(ptr %a) {
; O1-LABEL: atomic64_add_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection320:
+; O1-NEXT: .Lpcsection290:
; O1-NEXT: lock addq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8954,7 +8864,7 @@ define void @atomic64_add_acq_rel(ptr %a) {
; O2-LABEL: atomic64_add_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection320:
+; O2-NEXT: .Lpcsection290:
; O2-NEXT: lock addq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -8962,7 +8872,7 @@ define void @atomic64_add_acq_rel(ptr %a) {
; O3-LABEL: atomic64_add_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection320:
+; O3-NEXT: .Lpcsection290:
; O3-NEXT: lock addq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -8985,7 +8895,7 @@ define void @atomic64_sub_acq_rel(ptr %a) {
; O1-LABEL: atomic64_sub_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection321:
+; O1-NEXT: .Lpcsection291:
; O1-NEXT: lock subq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -8993,7 +8903,7 @@ define void @atomic64_sub_acq_rel(ptr %a) {
; O2-LABEL: atomic64_sub_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection321:
+; O2-NEXT: .Lpcsection291:
; O2-NEXT: lock subq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9001,7 +8911,7 @@ define void @atomic64_sub_acq_rel(ptr %a) {
; O3-LABEL: atomic64_sub_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection321:
+; O3-NEXT: .Lpcsection291:
; O3-NEXT: lock subq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9024,7 +8934,7 @@ define void @atomic64_and_acq_rel(ptr %a) {
; O1-LABEL: atomic64_and_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection322:
+; O1-NEXT: .Lpcsection292:
; O1-NEXT: lock andq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9032,7 +8942,7 @@ define void @atomic64_and_acq_rel(ptr %a) {
; O2-LABEL: atomic64_and_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection322:
+; O2-NEXT: .Lpcsection292:
; O2-NEXT: lock andq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9040,7 +8950,7 @@ define void @atomic64_and_acq_rel(ptr %a) {
; O3-LABEL: atomic64_and_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection322:
+; O3-NEXT: .Lpcsection292:
; O3-NEXT: lock andq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9063,7 +8973,7 @@ define void @atomic64_or_acq_rel(ptr %a) {
; O1-LABEL: atomic64_or_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection323:
+; O1-NEXT: .Lpcsection293:
; O1-NEXT: lock orq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9071,7 +8981,7 @@ define void @atomic64_or_acq_rel(ptr %a) {
; O2-LABEL: atomic64_or_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection323:
+; O2-NEXT: .Lpcsection293:
; O2-NEXT: lock orq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9079,7 +8989,7 @@ define void @atomic64_or_acq_rel(ptr %a) {
; O3-LABEL: atomic64_or_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection323:
+; O3-NEXT: .Lpcsection293:
; O3-NEXT: lock orq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9102,7 +9012,7 @@ define void @atomic64_xor_acq_rel(ptr %a) {
; O1-LABEL: atomic64_xor_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection324:
+; O1-NEXT: .Lpcsection294:
; O1-NEXT: lock xorq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9110,7 +9020,7 @@ define void @atomic64_xor_acq_rel(ptr %a) {
; O2-LABEL: atomic64_xor_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection324:
+; O2-NEXT: .Lpcsection294:
; O2-NEXT: lock xorq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9118,7 +9028,7 @@ define void @atomic64_xor_acq_rel(ptr %a) {
; O3-LABEL: atomic64_xor_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection324:
+; O3-NEXT: .Lpcsection294:
; O3-NEXT: lock xorq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9166,19 +9076,19 @@ define void @atomic64_nand_acq_rel(ptr %a) {
; O1-LABEL: atomic64_nand_acq_rel:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection325:
+; O1-NEXT: .Lpcsection295:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB183_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection326:
+; O1-NEXT: .Lpcsection296:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection327:
+; O1-NEXT: .Lpcsection297:
; O1-NEXT: orq $-43, %rcx
-; O1-NEXT: .Lpcsection328:
+; O1-NEXT: .Lpcsection298:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection329:
+; O1-NEXT: .Lpcsection299:
; O1-NEXT: jne .LBB183_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -9187,19 +9097,19 @@ define void @atomic64_nand_acq_rel(ptr %a) {
; O2-LABEL: atomic64_nand_acq_rel:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection325:
+; O2-NEXT: .Lpcsection295:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB183_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection326:
+; O2-NEXT: .Lpcsection296:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection327:
+; O2-NEXT: .Lpcsection297:
; O2-NEXT: orq $-43, %rcx
-; O2-NEXT: .Lpcsection328:
+; O2-NEXT: .Lpcsection298:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection329:
+; O2-NEXT: .Lpcsection299:
; O2-NEXT: jne .LBB183_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -9208,19 +9118,19 @@ define void @atomic64_nand_acq_rel(ptr %a) {
; O3-LABEL: atomic64_nand_acq_rel:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection325:
+; O3-NEXT: .Lpcsection295:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB183_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection326:
+; O3-NEXT: .Lpcsection296:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection327:
+; O3-NEXT: .Lpcsection297:
; O3-NEXT: orq $-43, %rcx
-; O3-NEXT: .Lpcsection328:
+; O3-NEXT: .Lpcsection298:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection329:
+; O3-NEXT: .Lpcsection299:
; O3-NEXT: jne .LBB183_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -9246,7 +9156,7 @@ define void @atomic64_xchg_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection330:
+; O1-NEXT: .Lpcsection300:
; O1-NEXT: xchgq %rax, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9255,7 +9165,7 @@ define void @atomic64_xchg_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection330:
+; O2-NEXT: .Lpcsection300:
; O2-NEXT: xchgq %rax, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9264,7 +9174,7 @@ define void @atomic64_xchg_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection330:
+; O3-NEXT: .Lpcsection300:
; O3-NEXT: xchgq %rax, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9287,7 +9197,7 @@ define void @atomic64_add_seq_cst(ptr %a) {
; O1-LABEL: atomic64_add_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection331:
+; O1-NEXT: .Lpcsection301:
; O1-NEXT: lock addq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9295,7 +9205,7 @@ define void @atomic64_add_seq_cst(ptr %a) {
; O2-LABEL: atomic64_add_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection331:
+; O2-NEXT: .Lpcsection301:
; O2-NEXT: lock addq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9303,7 +9213,7 @@ define void @atomic64_add_seq_cst(ptr %a) {
; O3-LABEL: atomic64_add_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection331:
+; O3-NEXT: .Lpcsection301:
; O3-NEXT: lock addq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9326,7 +9236,7 @@ define void @atomic64_sub_seq_cst(ptr %a) {
; O1-LABEL: atomic64_sub_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection332:
+; O1-NEXT: .Lpcsection302:
; O1-NEXT: lock subq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9334,7 +9244,7 @@ define void @atomic64_sub_seq_cst(ptr %a) {
; O2-LABEL: atomic64_sub_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection332:
+; O2-NEXT: .Lpcsection302:
; O2-NEXT: lock subq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9342,7 +9252,7 @@ define void @atomic64_sub_seq_cst(ptr %a) {
; O3-LABEL: atomic64_sub_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection332:
+; O3-NEXT: .Lpcsection302:
; O3-NEXT: lock subq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9365,7 +9275,7 @@ define void @atomic64_and_seq_cst(ptr %a) {
; O1-LABEL: atomic64_and_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection333:
+; O1-NEXT: .Lpcsection303:
; O1-NEXT: lock andq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9373,7 +9283,7 @@ define void @atomic64_and_seq_cst(ptr %a) {
; O2-LABEL: atomic64_and_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection333:
+; O2-NEXT: .Lpcsection303:
; O2-NEXT: lock andq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9381,7 +9291,7 @@ define void @atomic64_and_seq_cst(ptr %a) {
; O3-LABEL: atomic64_and_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection333:
+; O3-NEXT: .Lpcsection303:
; O3-NEXT: lock andq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9404,7 +9314,7 @@ define void @atomic64_or_seq_cst(ptr %a) {
; O1-LABEL: atomic64_or_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection334:
+; O1-NEXT: .Lpcsection304:
; O1-NEXT: lock orq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9412,7 +9322,7 @@ define void @atomic64_or_seq_cst(ptr %a) {
; O2-LABEL: atomic64_or_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection334:
+; O2-NEXT: .Lpcsection304:
; O2-NEXT: lock orq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9420,7 +9330,7 @@ define void @atomic64_or_seq_cst(ptr %a) {
; O3-LABEL: atomic64_or_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection334:
+; O3-NEXT: .Lpcsection304:
; O3-NEXT: lock orq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9443,7 +9353,7 @@ define void @atomic64_xor_seq_cst(ptr %a) {
; O1-LABEL: atomic64_xor_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection335:
+; O1-NEXT: .Lpcsection305:
; O1-NEXT: lock xorq $42, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9451,7 +9361,7 @@ define void @atomic64_xor_seq_cst(ptr %a) {
; O2-LABEL: atomic64_xor_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection335:
+; O2-NEXT: .Lpcsection305:
; O2-NEXT: lock xorq $42, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9459,7 +9369,7 @@ define void @atomic64_xor_seq_cst(ptr %a) {
; O3-LABEL: atomic64_xor_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection335:
+; O3-NEXT: .Lpcsection305:
; O3-NEXT: lock xorq $42, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9507,19 +9417,19 @@ define void @atomic64_nand_seq_cst(ptr %a) {
; O1-LABEL: atomic64_nand_seq_cst:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection336:
+; O1-NEXT: .Lpcsection306:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB190_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ecx
-; O1-NEXT: .Lpcsection337:
+; O1-NEXT: .Lpcsection307:
; O1-NEXT: notl %ecx
-; O1-NEXT: .Lpcsection338:
+; O1-NEXT: .Lpcsection308:
; O1-NEXT: orq $-43, %rcx
-; O1-NEXT: .Lpcsection339:
+; O1-NEXT: .Lpcsection309:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection340:
+; O1-NEXT: .Lpcsection310:
; O1-NEXT: jne .LBB190_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -9528,19 +9438,19 @@ define void @atomic64_nand_seq_cst(ptr %a) {
; O2-LABEL: atomic64_nand_seq_cst:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection336:
+; O2-NEXT: .Lpcsection306:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB190_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ecx
-; O2-NEXT: .Lpcsection337:
+; O2-NEXT: .Lpcsection307:
; O2-NEXT: notl %ecx
-; O2-NEXT: .Lpcsection338:
+; O2-NEXT: .Lpcsection308:
; O2-NEXT: orq $-43, %rcx
-; O2-NEXT: .Lpcsection339:
+; O2-NEXT: .Lpcsection309:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection340:
+; O2-NEXT: .Lpcsection310:
; O2-NEXT: jne .LBB190_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -9549,19 +9459,19 @@ define void @atomic64_nand_seq_cst(ptr %a) {
; O3-LABEL: atomic64_nand_seq_cst:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection336:
+; O3-NEXT: .Lpcsection306:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB190_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ecx
-; O3-NEXT: .Lpcsection337:
+; O3-NEXT: .Lpcsection307:
; O3-NEXT: notl %ecx
-; O3-NEXT: .Lpcsection338:
+; O3-NEXT: .Lpcsection308:
; O3-NEXT: orq $-43, %rcx
-; O3-NEXT: .Lpcsection339:
+; O3-NEXT: .Lpcsection309:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection340:
+; O3-NEXT: .Lpcsection310:
; O3-NEXT: jne .LBB190_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -9599,17 +9509,14 @@ define void @atomic64_cas_monotonic(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection341:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection342:
+; O1-NEXT: .Lpcsection311:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection343:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection344:
+; O1-NEXT: .Lpcsection312:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection345:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection346:
+; O1-NEXT: .Lpcsection313:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9618,17 +9525,14 @@ define void @atomic64_cas_monotonic(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection341:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection342:
+; O2-NEXT: .Lpcsection311:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection343:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection344:
+; O2-NEXT: .Lpcsection312:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection345:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection346:
+; O2-NEXT: .Lpcsection313:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9637,17 +9541,14 @@ define void @atomic64_cas_monotonic(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection341:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection342:
+; O3-NEXT: .Lpcsection311:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection343:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection344:
+; O3-NEXT: .Lpcsection312:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection345:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection346:
+; O3-NEXT: .Lpcsection313:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9686,17 +9587,14 @@ define void @atomic64_cas_acquire(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection347:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection348:
+; O1-NEXT: .Lpcsection314:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection349:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection350:
+; O1-NEXT: .Lpcsection315:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection351:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection352:
+; O1-NEXT: .Lpcsection316:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9705,17 +9603,14 @@ define void @atomic64_cas_acquire(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection347:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection348:
+; O2-NEXT: .Lpcsection314:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection349:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection350:
+; O2-NEXT: .Lpcsection315:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection351:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection352:
+; O2-NEXT: .Lpcsection316:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9724,17 +9619,14 @@ define void @atomic64_cas_acquire(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection347:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection348:
+; O3-NEXT: .Lpcsection314:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection349:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection350:
+; O3-NEXT: .Lpcsection315:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection351:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection352:
+; O3-NEXT: .Lpcsection316:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9773,17 +9665,14 @@ define void @atomic64_cas_release(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection353:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection354:
+; O1-NEXT: .Lpcsection317:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection355:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection356:
+; O1-NEXT: .Lpcsection318:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection357:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection358:
+; O1-NEXT: .Lpcsection319:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9792,17 +9681,14 @@ define void @atomic64_cas_release(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection353:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection354:
+; O2-NEXT: .Lpcsection317:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection355:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection356:
+; O2-NEXT: .Lpcsection318:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection357:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection358:
+; O2-NEXT: .Lpcsection319:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9811,17 +9697,14 @@ define void @atomic64_cas_release(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection353:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection354:
+; O3-NEXT: .Lpcsection317:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection355:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection356:
+; O3-NEXT: .Lpcsection318:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection357:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection358:
+; O3-NEXT: .Lpcsection319:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9860,17 +9743,14 @@ define void @atomic64_cas_acq_rel(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection359:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection360:
+; O1-NEXT: .Lpcsection320:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection361:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection362:
+; O1-NEXT: .Lpcsection321:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection363:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection364:
+; O1-NEXT: .Lpcsection322:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -9879,17 +9759,14 @@ define void @atomic64_cas_acq_rel(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection359:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection360:
+; O2-NEXT: .Lpcsection320:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection361:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection362:
+; O2-NEXT: .Lpcsection321:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection363:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection364:
+; O2-NEXT: .Lpcsection322:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -9898,17 +9775,14 @@ define void @atomic64_cas_acq_rel(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection359:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection360:
+; O3-NEXT: .Lpcsection320:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection361:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection362:
+; O3-NEXT: .Lpcsection321:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection363:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection364:
+; O3-NEXT: .Lpcsection322:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -9947,17 +9821,14 @@ define void @atomic64_cas_seq_cst(ptr %a) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
; O1-NEXT: movl $1, %ecx
-; O1-NEXT: .Lpcsection365:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection366:
+; O1-NEXT: .Lpcsection323:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection367:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection368:
+; O1-NEXT: .Lpcsection324:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O1-NEXT: .Lpcsection369:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection370:
+; O1-NEXT: .Lpcsection325:
; O1-NEXT: lock cmpxchgq %rcx, (%rdi)
; O1-NEXT: movq $3, foo(%rip)
; O1-NEXT: retq
@@ -9966,17 +9837,14 @@ define void @atomic64_cas_seq_cst(ptr %a) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
; O2-NEXT: movl $1, %ecx
-; O2-NEXT: .Lpcsection365:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection366:
+; O2-NEXT: .Lpcsection323:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection367:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection368:
+; O2-NEXT: .Lpcsection324:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O2-NEXT: .Lpcsection369:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection370:
+; O2-NEXT: .Lpcsection325:
; O2-NEXT: lock cmpxchgq %rcx, (%rdi)
; O2-NEXT: movq $3, foo(%rip)
; O2-NEXT: retq
@@ -9985,17 +9853,14 @@ define void @atomic64_cas_seq_cst(ptr %a) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
; O3-NEXT: movl $1, %ecx
-; O3-NEXT: .Lpcsection365:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection366:
+; O3-NEXT: .Lpcsection323:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection367:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection368:
+; O3-NEXT: .Lpcsection324:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
-; O3-NEXT: .Lpcsection369:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection370:
+; O3-NEXT: .Lpcsection325:
; O3-NEXT: lock cmpxchgq %rcx, (%rdi)
; O3-NEXT: movq $3, foo(%rip)
; O3-NEXT: retq
@@ -10022,7 +9887,7 @@ define void @atomic64_cas_seq_cst_ptr_ty(ptr %a, ptr %v1, ptr %v2) {
; O1: # %bb.0: # %entry
; O1-NEXT: movq %rsi, %rax
; O1-NEXT: movq foo(%rip), %rcx
-; O1-NEXT: .Lpcsection371:
+; O1-NEXT: .Lpcsection326:
; O1-NEXT: lock cmpxchgq %rdx, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -10031,7 +9896,7 @@ define void @atomic64_cas_seq_cst_ptr_ty(ptr %a, ptr %v1, ptr %v2) {
; O2: # %bb.0: # %entry
; O2-NEXT: movq %rsi, %rax
; O2-NEXT: movq foo(%rip), %rcx
-; O2-NEXT: .Lpcsection371:
+; O2-NEXT: .Lpcsection326:
; O2-NEXT: lock cmpxchgq %rdx, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -10040,7 +9905,7 @@ define void @atomic64_cas_seq_cst_ptr_ty(ptr %a, ptr %v1, ptr %v2) {
; O3: # %bb.0: # %entry
; O3-NEXT: movq %rsi, %rax
; O3-NEXT: movq foo(%rip), %rcx
-; O3-NEXT: .Lpcsection371:
+; O3-NEXT: .Lpcsection326:
; O3-NEXT: lock cmpxchgq %rdx, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -10069,7 +9934,7 @@ define i64 @atomic_use_cond(ptr %a) {
;
; O1-LABEL: atomic_use_cond:
; O1: # %bb.0: # %entry
-; O1-NEXT: .Lpcsection372:
+; O1-NEXT: .Lpcsection327:
; O1-NEXT: lock decq (%rdi)
; O1-NEXT: jne .LBB197_2
; O1-NEXT: # %bb.1: # %then
@@ -10081,7 +9946,7 @@ define i64 @atomic_use_cond(ptr %a) {
;
; O2-LABEL: atomic_use_cond:
; O2: # %bb.0: # %entry
-; O2-NEXT: .Lpcsection372:
+; O2-NEXT: .Lpcsection327:
; O2-NEXT: lock decq (%rdi)
; O2-NEXT: jne .LBB197_2
; O2-NEXT: # %bb.1: # %then
@@ -10093,7 +9958,7 @@ define i64 @atomic_use_cond(ptr %a) {
;
; O3-LABEL: atomic_use_cond:
; O3: # %bb.0: # %entry
-; O3-NEXT: .Lpcsection372:
+; O3-NEXT: .Lpcsection327:
; O3-NEXT: lock decq (%rdi)
; O3-NEXT: jne .LBB197_2
; O3-NEXT: # %bb.1: # %then
@@ -10140,15 +10005,15 @@ define i128 @atomic128_load_unordered(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection373:
+; O1-NEXT: .Lpcsection328:
; O1-NEXT: xorl %eax, %eax
-; O1-NEXT: .Lpcsection374:
+; O1-NEXT: .Lpcsection329:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection375:
+; O1-NEXT: .Lpcsection330:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection376:
+; O1-NEXT: .Lpcsection331:
; O1-NEXT: xorl %ebx, %ebx
-; O1-NEXT: .Lpcsection377:
+; O1-NEXT: .Lpcsection332:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -10161,15 +10026,15 @@ define i128 @atomic128_load_unordered(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection373:
+; O2-NEXT: .Lpcsection328:
; O2-NEXT: xorl %eax, %eax
-; O2-NEXT: .Lpcsection374:
+; O2-NEXT: .Lpcsection329:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection375:
+; O2-NEXT: .Lpcsection330:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection376:
+; O2-NEXT: .Lpcsection331:
; O2-NEXT: xorl %ebx, %ebx
-; O2-NEXT: .Lpcsection377:
+; O2-NEXT: .Lpcsection332:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -10182,15 +10047,15 @@ define i128 @atomic128_load_unordered(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection373:
+; O3-NEXT: .Lpcsection328:
; O3-NEXT: xorl %eax, %eax
-; O3-NEXT: .Lpcsection374:
+; O3-NEXT: .Lpcsection329:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection375:
+; O3-NEXT: .Lpcsection330:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection376:
+; O3-NEXT: .Lpcsection331:
; O3-NEXT: xorl %ebx, %ebx
-; O3-NEXT: .Lpcsection377:
+; O3-NEXT: .Lpcsection332:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -10229,15 +10094,15 @@ define i128 @atomic128_load_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection378:
+; O1-NEXT: .Lpcsection333:
; O1-NEXT: xorl %eax, %eax
-; O1-NEXT: .Lpcsection379:
+; O1-NEXT: .Lpcsection334:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection380:
+; O1-NEXT: .Lpcsection335:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection381:
+; O1-NEXT: .Lpcsection336:
; O1-NEXT: xorl %ebx, %ebx
-; O1-NEXT: .Lpcsection382:
+; O1-NEXT: .Lpcsection337:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -10250,15 +10115,15 @@ define i128 @atomic128_load_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection378:
+; O2-NEXT: .Lpcsection333:
; O2-NEXT: xorl %eax, %eax
-; O2-NEXT: .Lpcsection379:
+; O2-NEXT: .Lpcsection334:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection380:
+; O2-NEXT: .Lpcsection335:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection381:
+; O2-NEXT: .Lpcsection336:
; O2-NEXT: xorl %ebx, %ebx
-; O2-NEXT: .Lpcsection382:
+; O2-NEXT: .Lpcsection337:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -10271,15 +10136,15 @@ define i128 @atomic128_load_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection378:
+; O3-NEXT: .Lpcsection333:
; O3-NEXT: xorl %eax, %eax
-; O3-NEXT: .Lpcsection379:
+; O3-NEXT: .Lpcsection334:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection380:
+; O3-NEXT: .Lpcsection335:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection381:
+; O3-NEXT: .Lpcsection336:
; O3-NEXT: xorl %ebx, %ebx
-; O3-NEXT: .Lpcsection382:
+; O3-NEXT: .Lpcsection337:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -10318,15 +10183,15 @@ define i128 @atomic128_load_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection383:
+; O1-NEXT: .Lpcsection338:
; O1-NEXT: xorl %eax, %eax
-; O1-NEXT: .Lpcsection384:
+; O1-NEXT: .Lpcsection339:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection385:
+; O1-NEXT: .Lpcsection340:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection386:
+; O1-NEXT: .Lpcsection341:
; O1-NEXT: xorl %ebx, %ebx
-; O1-NEXT: .Lpcsection387:
+; O1-NEXT: .Lpcsection342:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -10339,15 +10204,15 @@ define i128 @atomic128_load_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection383:
+; O2-NEXT: .Lpcsection338:
; O2-NEXT: xorl %eax, %eax
-; O2-NEXT: .Lpcsection384:
+; O2-NEXT: .Lpcsection339:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection385:
+; O2-NEXT: .Lpcsection340:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection386:
+; O2-NEXT: .Lpcsection341:
; O2-NEXT: xorl %ebx, %ebx
-; O2-NEXT: .Lpcsection387:
+; O2-NEXT: .Lpcsection342:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -10360,15 +10225,15 @@ define i128 @atomic128_load_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection383:
+; O3-NEXT: .Lpcsection338:
; O3-NEXT: xorl %eax, %eax
-; O3-NEXT: .Lpcsection384:
+; O3-NEXT: .Lpcsection339:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection385:
+; O3-NEXT: .Lpcsection340:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection386:
+; O3-NEXT: .Lpcsection341:
; O3-NEXT: xorl %ebx, %ebx
-; O3-NEXT: .Lpcsection387:
+; O3-NEXT: .Lpcsection342:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -10407,15 +10272,15 @@ define i128 @atomic128_load_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection388:
+; O1-NEXT: .Lpcsection343:
; O1-NEXT: xorl %eax, %eax
-; O1-NEXT: .Lpcsection389:
+; O1-NEXT: .Lpcsection344:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection390:
+; O1-NEXT: .Lpcsection345:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection391:
+; O1-NEXT: .Lpcsection346:
; O1-NEXT: xorl %ebx, %ebx
-; O1-NEXT: .Lpcsection392:
+; O1-NEXT: .Lpcsection347:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -10428,15 +10293,15 @@ define i128 @atomic128_load_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection388:
+; O2-NEXT: .Lpcsection343:
; O2-NEXT: xorl %eax, %eax
-; O2-NEXT: .Lpcsection389:
+; O2-NEXT: .Lpcsection344:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection390:
+; O2-NEXT: .Lpcsection345:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection391:
+; O2-NEXT: .Lpcsection346:
; O2-NEXT: xorl %ebx, %ebx
-; O2-NEXT: .Lpcsection392:
+; O2-NEXT: .Lpcsection347:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -10449,15 +10314,15 @@ define i128 @atomic128_load_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection388:
+; O3-NEXT: .Lpcsection343:
; O3-NEXT: xorl %eax, %eax
-; O3-NEXT: .Lpcsection389:
+; O3-NEXT: .Lpcsection344:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection390:
+; O3-NEXT: .Lpcsection345:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection391:
+; O3-NEXT: .Lpcsection346:
; O3-NEXT: xorl %ebx, %ebx
-; O3-NEXT: .Lpcsection392:
+; O3-NEXT: .Lpcsection347:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -10482,7 +10347,7 @@ define ptr @atomic128_load_seq_cst_ptr_ty(ptr %a) {
; O1-LABEL: atomic128_load_seq_cst_ptr_ty:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection393:
+; O1-NEXT: .Lpcsection348:
; O1-NEXT: movq (%rdi), %rax
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -10490,7 +10355,7 @@ define ptr @atomic128_load_seq_cst_ptr_ty(ptr %a) {
; O2-LABEL: atomic128_load_seq_cst_ptr_ty:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection393:
+; O2-NEXT: .Lpcsection348:
; O2-NEXT: movq (%rdi), %rax
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -10498,7 +10363,7 @@ define ptr @atomic128_load_seq_cst_ptr_ty(ptr %a) {
; O3-LABEL: atomic128_load_seq_cst_ptr_ty:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection393:
+; O3-NEXT: .Lpcsection348:
; O3-NEXT: movq (%rdi), %rax
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -10555,20 +10420,20 @@ define void @atomic128_store_unordered(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection394:
+; O1-NEXT: .Lpcsection349:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection395:
+; O1-NEXT: .Lpcsection350:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection396:
+; O1-NEXT: .Lpcsection351:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB203_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection397:
+; O1-NEXT: .Lpcsection352:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection398:
+; O1-NEXT: .Lpcsection353:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection399:
+; O1-NEXT: .Lpcsection354:
; O1-NEXT: jne .LBB203_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -10582,20 +10447,20 @@ define void @atomic128_store_unordered(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection394:
+; O2-NEXT: .Lpcsection349:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection395:
+; O2-NEXT: .Lpcsection350:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection396:
+; O2-NEXT: .Lpcsection351:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB203_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection397:
+; O2-NEXT: .Lpcsection352:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection398:
+; O2-NEXT: .Lpcsection353:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection399:
+; O2-NEXT: .Lpcsection354:
; O2-NEXT: jne .LBB203_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -10609,20 +10474,20 @@ define void @atomic128_store_unordered(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection394:
+; O3-NEXT: .Lpcsection349:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection395:
+; O3-NEXT: .Lpcsection350:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection396:
+; O3-NEXT: .Lpcsection351:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB203_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection397:
+; O3-NEXT: .Lpcsection352:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection398:
+; O3-NEXT: .Lpcsection353:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection399:
+; O3-NEXT: .Lpcsection354:
; O3-NEXT: jne .LBB203_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -10682,20 +10547,20 @@ define void @atomic128_store_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection400:
+; O1-NEXT: .Lpcsection355:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection401:
+; O1-NEXT: .Lpcsection356:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection402:
+; O1-NEXT: .Lpcsection357:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB204_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection403:
+; O1-NEXT: .Lpcsection358:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection404:
+; O1-NEXT: .Lpcsection359:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection405:
+; O1-NEXT: .Lpcsection360:
; O1-NEXT: jne .LBB204_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -10709,20 +10574,20 @@ define void @atomic128_store_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection400:
+; O2-NEXT: .Lpcsection355:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection401:
+; O2-NEXT: .Lpcsection356:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection402:
+; O2-NEXT: .Lpcsection357:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB204_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection403:
+; O2-NEXT: .Lpcsection358:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection404:
+; O2-NEXT: .Lpcsection359:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection405:
+; O2-NEXT: .Lpcsection360:
; O2-NEXT: jne .LBB204_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -10736,20 +10601,20 @@ define void @atomic128_store_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection400:
+; O3-NEXT: .Lpcsection355:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection401:
+; O3-NEXT: .Lpcsection356:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection402:
+; O3-NEXT: .Lpcsection357:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB204_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection403:
+; O3-NEXT: .Lpcsection358:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection404:
+; O3-NEXT: .Lpcsection359:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection405:
+; O3-NEXT: .Lpcsection360:
; O3-NEXT: jne .LBB204_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -10809,20 +10674,20 @@ define void @atomic128_store_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection406:
+; O1-NEXT: .Lpcsection361:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection407:
+; O1-NEXT: .Lpcsection362:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection408:
+; O1-NEXT: .Lpcsection363:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB205_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection409:
+; O1-NEXT: .Lpcsection364:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection410:
+; O1-NEXT: .Lpcsection365:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection411:
+; O1-NEXT: .Lpcsection366:
; O1-NEXT: jne .LBB205_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -10836,20 +10701,20 @@ define void @atomic128_store_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection406:
+; O2-NEXT: .Lpcsection361:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection407:
+; O2-NEXT: .Lpcsection362:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection408:
+; O2-NEXT: .Lpcsection363:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB205_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection409:
+; O2-NEXT: .Lpcsection364:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection410:
+; O2-NEXT: .Lpcsection365:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection411:
+; O2-NEXT: .Lpcsection366:
; O2-NEXT: jne .LBB205_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -10863,20 +10728,20 @@ define void @atomic128_store_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection406:
+; O3-NEXT: .Lpcsection361:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection407:
+; O3-NEXT: .Lpcsection362:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection408:
+; O3-NEXT: .Lpcsection363:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB205_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection409:
+; O3-NEXT: .Lpcsection364:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection410:
+; O3-NEXT: .Lpcsection365:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection411:
+; O3-NEXT: .Lpcsection366:
; O3-NEXT: jne .LBB205_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -10936,20 +10801,20 @@ define void @atomic128_store_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection412:
+; O1-NEXT: .Lpcsection367:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection413:
+; O1-NEXT: .Lpcsection368:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection414:
+; O1-NEXT: .Lpcsection369:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB206_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection415:
+; O1-NEXT: .Lpcsection370:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection416:
+; O1-NEXT: .Lpcsection371:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection417:
+; O1-NEXT: .Lpcsection372:
; O1-NEXT: jne .LBB206_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -10963,20 +10828,20 @@ define void @atomic128_store_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection412:
+; O2-NEXT: .Lpcsection367:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection413:
+; O2-NEXT: .Lpcsection368:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection414:
+; O2-NEXT: .Lpcsection369:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB206_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection415:
+; O2-NEXT: .Lpcsection370:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection416:
+; O2-NEXT: .Lpcsection371:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection417:
+; O2-NEXT: .Lpcsection372:
; O2-NEXT: jne .LBB206_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -10990,20 +10855,20 @@ define void @atomic128_store_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection412:
+; O3-NEXT: .Lpcsection367:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection413:
+; O3-NEXT: .Lpcsection368:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection414:
+; O3-NEXT: .Lpcsection369:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB206_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection415:
+; O3-NEXT: .Lpcsection370:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection416:
+; O3-NEXT: .Lpcsection371:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection417:
+; O3-NEXT: .Lpcsection372:
; O3-NEXT: jne .LBB206_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11029,7 +10894,7 @@ define void @atomic128_store_seq_cst_ptr_ty(ptr %a, ptr %v) {
; O1-LABEL: atomic128_store_seq_cst_ptr_ty:
; O1: # %bb.0: # %entry
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection418:
+; O1-NEXT: .Lpcsection373:
; O1-NEXT: xchgq %rsi, (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: retq
@@ -11037,7 +10902,7 @@ define void @atomic128_store_seq_cst_ptr_ty(ptr %a, ptr %v) {
; O2-LABEL: atomic128_store_seq_cst_ptr_ty:
; O2: # %bb.0: # %entry
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection418:
+; O2-NEXT: .Lpcsection373:
; O2-NEXT: xchgq %rsi, (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: retq
@@ -11045,7 +10910,7 @@ define void @atomic128_store_seq_cst_ptr_ty(ptr %a, ptr %v) {
; O3-LABEL: atomic128_store_seq_cst_ptr_ty:
; O3: # %bb.0: # %entry
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection418:
+; O3-NEXT: .Lpcsection373:
; O3-NEXT: xchgq %rsi, (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: retq
@@ -11102,20 +10967,20 @@ define void @atomic128_xchg_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection419:
+; O1-NEXT: .Lpcsection374:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection420:
+; O1-NEXT: .Lpcsection375:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection421:
+; O1-NEXT: .Lpcsection376:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB208_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection422:
+; O1-NEXT: .Lpcsection377:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection423:
+; O1-NEXT: .Lpcsection378:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection424:
+; O1-NEXT: .Lpcsection379:
; O1-NEXT: jne .LBB208_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11129,20 +10994,20 @@ define void @atomic128_xchg_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection419:
+; O2-NEXT: .Lpcsection374:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection420:
+; O2-NEXT: .Lpcsection375:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection421:
+; O2-NEXT: .Lpcsection376:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB208_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection422:
+; O2-NEXT: .Lpcsection377:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection423:
+; O2-NEXT: .Lpcsection378:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection424:
+; O2-NEXT: .Lpcsection379:
; O2-NEXT: jne .LBB208_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11156,20 +11021,20 @@ define void @atomic128_xchg_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection419:
+; O3-NEXT: .Lpcsection374:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection420:
+; O3-NEXT: .Lpcsection375:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection421:
+; O3-NEXT: .Lpcsection376:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB208_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection422:
+; O3-NEXT: .Lpcsection377:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection423:
+; O3-NEXT: .Lpcsection378:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection424:
+; O3-NEXT: .Lpcsection379:
; O3-NEXT: jne .LBB208_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11229,22 +11094,22 @@ define void @atomic128_add_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection425:
+; O1-NEXT: .Lpcsection380:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection426:
+; O1-NEXT: .Lpcsection381:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB209_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection427:
+; O1-NEXT: .Lpcsection382:
; O1-NEXT: addq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection428:
+; O1-NEXT: .Lpcsection383:
; O1-NEXT: adcq $0, %rcx
-; O1-NEXT: .Lpcsection429:
+; O1-NEXT: .Lpcsection384:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection430:
+; O1-NEXT: .Lpcsection385:
; O1-NEXT: jne .LBB209_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11258,22 +11123,22 @@ define void @atomic128_add_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection425:
+; O2-NEXT: .Lpcsection380:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection426:
+; O2-NEXT: .Lpcsection381:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB209_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection427:
+; O2-NEXT: .Lpcsection382:
; O2-NEXT: addq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection428:
+; O2-NEXT: .Lpcsection383:
; O2-NEXT: adcq $0, %rcx
-; O2-NEXT: .Lpcsection429:
+; O2-NEXT: .Lpcsection384:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection430:
+; O2-NEXT: .Lpcsection385:
; O2-NEXT: jne .LBB209_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11287,22 +11152,22 @@ define void @atomic128_add_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection425:
+; O3-NEXT: .Lpcsection380:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection426:
+; O3-NEXT: .Lpcsection381:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB209_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection427:
+; O3-NEXT: .Lpcsection382:
; O3-NEXT: addq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection428:
+; O3-NEXT: .Lpcsection383:
; O3-NEXT: adcq $0, %rcx
-; O3-NEXT: .Lpcsection429:
+; O3-NEXT: .Lpcsection384:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection430:
+; O3-NEXT: .Lpcsection385:
; O3-NEXT: jne .LBB209_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11362,22 +11227,22 @@ define void @atomic128_sub_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection431:
+; O1-NEXT: .Lpcsection386:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection432:
+; O1-NEXT: .Lpcsection387:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB210_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection433:
+; O1-NEXT: .Lpcsection388:
; O1-NEXT: addq $-42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection434:
+; O1-NEXT: .Lpcsection389:
; O1-NEXT: adcq $-1, %rcx
-; O1-NEXT: .Lpcsection435:
+; O1-NEXT: .Lpcsection390:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection436:
+; O1-NEXT: .Lpcsection391:
; O1-NEXT: jne .LBB210_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11391,22 +11256,22 @@ define void @atomic128_sub_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection431:
+; O2-NEXT: .Lpcsection386:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection432:
+; O2-NEXT: .Lpcsection387:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB210_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection433:
+; O2-NEXT: .Lpcsection388:
; O2-NEXT: addq $-42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection434:
+; O2-NEXT: .Lpcsection389:
; O2-NEXT: adcq $-1, %rcx
-; O2-NEXT: .Lpcsection435:
+; O2-NEXT: .Lpcsection390:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection436:
+; O2-NEXT: .Lpcsection391:
; O2-NEXT: jne .LBB210_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11420,22 +11285,22 @@ define void @atomic128_sub_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection431:
+; O3-NEXT: .Lpcsection386:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection432:
+; O3-NEXT: .Lpcsection387:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB210_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection433:
+; O3-NEXT: .Lpcsection388:
; O3-NEXT: addq $-42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection434:
+; O3-NEXT: .Lpcsection389:
; O3-NEXT: adcq $-1, %rcx
-; O3-NEXT: .Lpcsection435:
+; O3-NEXT: .Lpcsection390:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection436:
+; O3-NEXT: .Lpcsection391:
; O3-NEXT: jne .LBB210_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11497,21 +11362,21 @@ define void @atomic128_and_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection437:
+; O1-NEXT: .Lpcsection392:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection438:
+; O1-NEXT: .Lpcsection393:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB211_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection439:
+; O1-NEXT: .Lpcsection394:
; O1-NEXT: andl $42, %ebx
-; O1-NEXT: .Lpcsection440:
+; O1-NEXT: .Lpcsection395:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection441:
+; O1-NEXT: .Lpcsection396:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection442:
+; O1-NEXT: .Lpcsection397:
; O1-NEXT: jne .LBB211_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11525,21 +11390,21 @@ define void @atomic128_and_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection437:
+; O2-NEXT: .Lpcsection392:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection438:
+; O2-NEXT: .Lpcsection393:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB211_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection439:
+; O2-NEXT: .Lpcsection394:
; O2-NEXT: andl $42, %ebx
-; O2-NEXT: .Lpcsection440:
+; O2-NEXT: .Lpcsection395:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection441:
+; O2-NEXT: .Lpcsection396:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection442:
+; O2-NEXT: .Lpcsection397:
; O2-NEXT: jne .LBB211_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11553,21 +11418,21 @@ define void @atomic128_and_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection437:
+; O3-NEXT: .Lpcsection392:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection438:
+; O3-NEXT: .Lpcsection393:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB211_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection439:
+; O3-NEXT: .Lpcsection394:
; O3-NEXT: andl $42, %ebx
-; O3-NEXT: .Lpcsection440:
+; O3-NEXT: .Lpcsection395:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection441:
+; O3-NEXT: .Lpcsection396:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection442:
+; O3-NEXT: .Lpcsection397:
; O3-NEXT: jne .LBB211_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11625,20 +11490,20 @@ define void @atomic128_or_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection443:
+; O1-NEXT: .Lpcsection398:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection444:
+; O1-NEXT: .Lpcsection399:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB212_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection445:
+; O1-NEXT: .Lpcsection400:
; O1-NEXT: orq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection446:
+; O1-NEXT: .Lpcsection401:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection447:
+; O1-NEXT: .Lpcsection402:
; O1-NEXT: jne .LBB212_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11652,20 +11517,20 @@ define void @atomic128_or_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection443:
+; O2-NEXT: .Lpcsection398:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection444:
+; O2-NEXT: .Lpcsection399:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB212_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection445:
+; O2-NEXT: .Lpcsection400:
; O2-NEXT: orq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection446:
+; O2-NEXT: .Lpcsection401:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection447:
+; O2-NEXT: .Lpcsection402:
; O2-NEXT: jne .LBB212_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11679,20 +11544,20 @@ define void @atomic128_or_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection443:
+; O3-NEXT: .Lpcsection398:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection444:
+; O3-NEXT: .Lpcsection399:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB212_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection445:
+; O3-NEXT: .Lpcsection400:
; O3-NEXT: orq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection446:
+; O3-NEXT: .Lpcsection401:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection447:
+; O3-NEXT: .Lpcsection402:
; O3-NEXT: jne .LBB212_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11750,20 +11615,20 @@ define void @atomic128_xor_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection448:
+; O1-NEXT: .Lpcsection403:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection449:
+; O1-NEXT: .Lpcsection404:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB213_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection450:
+; O1-NEXT: .Lpcsection405:
; O1-NEXT: xorq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection451:
+; O1-NEXT: .Lpcsection406:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection452:
+; O1-NEXT: .Lpcsection407:
; O1-NEXT: jne .LBB213_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11777,20 +11642,20 @@ define void @atomic128_xor_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection448:
+; O2-NEXT: .Lpcsection403:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection449:
+; O2-NEXT: .Lpcsection404:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB213_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection450:
+; O2-NEXT: .Lpcsection405:
; O2-NEXT: xorq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection451:
+; O2-NEXT: .Lpcsection406:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection452:
+; O2-NEXT: .Lpcsection407:
; O2-NEXT: jne .LBB213_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11804,20 +11669,20 @@ define void @atomic128_xor_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection448:
+; O3-NEXT: .Lpcsection403:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection449:
+; O3-NEXT: .Lpcsection404:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB213_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection450:
+; O3-NEXT: .Lpcsection405:
; O3-NEXT: xorq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection451:
+; O3-NEXT: .Lpcsection406:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection452:
+; O3-NEXT: .Lpcsection407:
; O3-NEXT: jne .LBB213_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -11881,23 +11746,23 @@ define void @atomic128_nand_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection453:
+; O1-NEXT: .Lpcsection408:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection454:
+; O1-NEXT: .Lpcsection409:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection455:
+; O1-NEXT: .Lpcsection410:
; O1-NEXT: movq $-1, %rcx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB214_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection456:
+; O1-NEXT: .Lpcsection411:
; O1-NEXT: notl %ebx
-; O1-NEXT: .Lpcsection457:
+; O1-NEXT: .Lpcsection412:
; O1-NEXT: orq $-43, %rbx
-; O1-NEXT: .Lpcsection458:
+; O1-NEXT: .Lpcsection413:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection459:
+; O1-NEXT: .Lpcsection414:
; O1-NEXT: jne .LBB214_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -11911,23 +11776,23 @@ define void @atomic128_nand_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection453:
+; O2-NEXT: .Lpcsection408:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection454:
+; O2-NEXT: .Lpcsection409:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection455:
+; O2-NEXT: .Lpcsection410:
; O2-NEXT: movq $-1, %rcx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB214_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection456:
+; O2-NEXT: .Lpcsection411:
; O2-NEXT: notl %ebx
-; O2-NEXT: .Lpcsection457:
+; O2-NEXT: .Lpcsection412:
; O2-NEXT: orq $-43, %rbx
-; O2-NEXT: .Lpcsection458:
+; O2-NEXT: .Lpcsection413:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection459:
+; O2-NEXT: .Lpcsection414:
; O2-NEXT: jne .LBB214_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -11941,23 +11806,23 @@ define void @atomic128_nand_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection453:
+; O3-NEXT: .Lpcsection408:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection454:
+; O3-NEXT: .Lpcsection409:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection455:
+; O3-NEXT: .Lpcsection410:
; O3-NEXT: movq $-1, %rcx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB214_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection456:
+; O3-NEXT: .Lpcsection411:
; O3-NEXT: notl %ebx
-; O3-NEXT: .Lpcsection457:
+; O3-NEXT: .Lpcsection412:
; O3-NEXT: orq $-43, %rbx
-; O3-NEXT: .Lpcsection458:
+; O3-NEXT: .Lpcsection413:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection459:
+; O3-NEXT: .Lpcsection414:
; O3-NEXT: jne .LBB214_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12017,20 +11882,20 @@ define void @atomic128_xchg_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection460:
+; O1-NEXT: .Lpcsection415:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection461:
+; O1-NEXT: .Lpcsection416:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection462:
+; O1-NEXT: .Lpcsection417:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB215_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection463:
+; O1-NEXT: .Lpcsection418:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection464:
+; O1-NEXT: .Lpcsection419:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection465:
+; O1-NEXT: .Lpcsection420:
; O1-NEXT: jne .LBB215_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12044,20 +11909,20 @@ define void @atomic128_xchg_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection460:
+; O2-NEXT: .Lpcsection415:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection461:
+; O2-NEXT: .Lpcsection416:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection462:
+; O2-NEXT: .Lpcsection417:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB215_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection463:
+; O2-NEXT: .Lpcsection418:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection464:
+; O2-NEXT: .Lpcsection419:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection465:
+; O2-NEXT: .Lpcsection420:
; O2-NEXT: jne .LBB215_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12071,20 +11936,20 @@ define void @atomic128_xchg_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection460:
+; O3-NEXT: .Lpcsection415:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection461:
+; O3-NEXT: .Lpcsection416:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection462:
+; O3-NEXT: .Lpcsection417:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB215_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection463:
+; O3-NEXT: .Lpcsection418:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection464:
+; O3-NEXT: .Lpcsection419:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection465:
+; O3-NEXT: .Lpcsection420:
; O3-NEXT: jne .LBB215_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12144,22 +12009,22 @@ define void @atomic128_add_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection466:
+; O1-NEXT: .Lpcsection421:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection467:
+; O1-NEXT: .Lpcsection422:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB216_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection468:
+; O1-NEXT: .Lpcsection423:
; O1-NEXT: addq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection469:
+; O1-NEXT: .Lpcsection424:
; O1-NEXT: adcq $0, %rcx
-; O1-NEXT: .Lpcsection470:
+; O1-NEXT: .Lpcsection425:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection471:
+; O1-NEXT: .Lpcsection426:
; O1-NEXT: jne .LBB216_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12173,22 +12038,22 @@ define void @atomic128_add_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection466:
+; O2-NEXT: .Lpcsection421:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection467:
+; O2-NEXT: .Lpcsection422:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB216_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection468:
+; O2-NEXT: .Lpcsection423:
; O2-NEXT: addq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection469:
+; O2-NEXT: .Lpcsection424:
; O2-NEXT: adcq $0, %rcx
-; O2-NEXT: .Lpcsection470:
+; O2-NEXT: .Lpcsection425:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection471:
+; O2-NEXT: .Lpcsection426:
; O2-NEXT: jne .LBB216_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12202,22 +12067,22 @@ define void @atomic128_add_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection466:
+; O3-NEXT: .Lpcsection421:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection467:
+; O3-NEXT: .Lpcsection422:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB216_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection468:
+; O3-NEXT: .Lpcsection423:
; O3-NEXT: addq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection469:
+; O3-NEXT: .Lpcsection424:
; O3-NEXT: adcq $0, %rcx
-; O3-NEXT: .Lpcsection470:
+; O3-NEXT: .Lpcsection425:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection471:
+; O3-NEXT: .Lpcsection426:
; O3-NEXT: jne .LBB216_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12277,22 +12142,22 @@ define void @atomic128_sub_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection472:
+; O1-NEXT: .Lpcsection427:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection473:
+; O1-NEXT: .Lpcsection428:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB217_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection474:
+; O1-NEXT: .Lpcsection429:
; O1-NEXT: addq $-42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection475:
+; O1-NEXT: .Lpcsection430:
; O1-NEXT: adcq $-1, %rcx
-; O1-NEXT: .Lpcsection476:
+; O1-NEXT: .Lpcsection431:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection477:
+; O1-NEXT: .Lpcsection432:
; O1-NEXT: jne .LBB217_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12306,22 +12171,22 @@ define void @atomic128_sub_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection472:
+; O2-NEXT: .Lpcsection427:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection473:
+; O2-NEXT: .Lpcsection428:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB217_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection474:
+; O2-NEXT: .Lpcsection429:
; O2-NEXT: addq $-42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection475:
+; O2-NEXT: .Lpcsection430:
; O2-NEXT: adcq $-1, %rcx
-; O2-NEXT: .Lpcsection476:
+; O2-NEXT: .Lpcsection431:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection477:
+; O2-NEXT: .Lpcsection432:
; O2-NEXT: jne .LBB217_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12335,22 +12200,22 @@ define void @atomic128_sub_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection472:
+; O3-NEXT: .Lpcsection427:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection473:
+; O3-NEXT: .Lpcsection428:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB217_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection474:
+; O3-NEXT: .Lpcsection429:
; O3-NEXT: addq $-42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection475:
+; O3-NEXT: .Lpcsection430:
; O3-NEXT: adcq $-1, %rcx
-; O3-NEXT: .Lpcsection476:
+; O3-NEXT: .Lpcsection431:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection477:
+; O3-NEXT: .Lpcsection432:
; O3-NEXT: jne .LBB217_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12412,21 +12277,21 @@ define void @atomic128_and_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection478:
+; O1-NEXT: .Lpcsection433:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection479:
+; O1-NEXT: .Lpcsection434:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB218_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection480:
+; O1-NEXT: .Lpcsection435:
; O1-NEXT: andl $42, %ebx
-; O1-NEXT: .Lpcsection481:
+; O1-NEXT: .Lpcsection436:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection482:
+; O1-NEXT: .Lpcsection437:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection483:
+; O1-NEXT: .Lpcsection438:
; O1-NEXT: jne .LBB218_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12440,21 +12305,21 @@ define void @atomic128_and_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection478:
+; O2-NEXT: .Lpcsection433:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection479:
+; O2-NEXT: .Lpcsection434:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB218_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection480:
+; O2-NEXT: .Lpcsection435:
; O2-NEXT: andl $42, %ebx
-; O2-NEXT: .Lpcsection481:
+; O2-NEXT: .Lpcsection436:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection482:
+; O2-NEXT: .Lpcsection437:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection483:
+; O2-NEXT: .Lpcsection438:
; O2-NEXT: jne .LBB218_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12468,21 +12333,21 @@ define void @atomic128_and_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection478:
+; O3-NEXT: .Lpcsection433:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection479:
+; O3-NEXT: .Lpcsection434:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB218_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection480:
+; O3-NEXT: .Lpcsection435:
; O3-NEXT: andl $42, %ebx
-; O3-NEXT: .Lpcsection481:
+; O3-NEXT: .Lpcsection436:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection482:
+; O3-NEXT: .Lpcsection437:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection483:
+; O3-NEXT: .Lpcsection438:
; O3-NEXT: jne .LBB218_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12540,20 +12405,20 @@ define void @atomic128_or_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection484:
+; O1-NEXT: .Lpcsection439:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection485:
+; O1-NEXT: .Lpcsection440:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB219_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection486:
+; O1-NEXT: .Lpcsection441:
; O1-NEXT: orq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection487:
+; O1-NEXT: .Lpcsection442:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection488:
+; O1-NEXT: .Lpcsection443:
; O1-NEXT: jne .LBB219_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12567,20 +12432,20 @@ define void @atomic128_or_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection484:
+; O2-NEXT: .Lpcsection439:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection485:
+; O2-NEXT: .Lpcsection440:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB219_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection486:
+; O2-NEXT: .Lpcsection441:
; O2-NEXT: orq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection487:
+; O2-NEXT: .Lpcsection442:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection488:
+; O2-NEXT: .Lpcsection443:
; O2-NEXT: jne .LBB219_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12594,20 +12459,20 @@ define void @atomic128_or_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection484:
+; O3-NEXT: .Lpcsection439:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection485:
+; O3-NEXT: .Lpcsection440:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB219_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection486:
+; O3-NEXT: .Lpcsection441:
; O3-NEXT: orq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection487:
+; O3-NEXT: .Lpcsection442:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection488:
+; O3-NEXT: .Lpcsection443:
; O3-NEXT: jne .LBB219_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12665,20 +12530,20 @@ define void @atomic128_xor_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection489:
+; O1-NEXT: .Lpcsection444:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection490:
+; O1-NEXT: .Lpcsection445:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB220_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection491:
+; O1-NEXT: .Lpcsection446:
; O1-NEXT: xorq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection492:
+; O1-NEXT: .Lpcsection447:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection493:
+; O1-NEXT: .Lpcsection448:
; O1-NEXT: jne .LBB220_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12692,20 +12557,20 @@ define void @atomic128_xor_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection489:
+; O2-NEXT: .Lpcsection444:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection490:
+; O2-NEXT: .Lpcsection445:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB220_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection491:
+; O2-NEXT: .Lpcsection446:
; O2-NEXT: xorq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection492:
+; O2-NEXT: .Lpcsection447:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection493:
+; O2-NEXT: .Lpcsection448:
; O2-NEXT: jne .LBB220_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12719,20 +12584,20 @@ define void @atomic128_xor_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection489:
+; O3-NEXT: .Lpcsection444:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection490:
+; O3-NEXT: .Lpcsection445:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB220_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection491:
+; O3-NEXT: .Lpcsection446:
; O3-NEXT: xorq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection492:
+; O3-NEXT: .Lpcsection447:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection493:
+; O3-NEXT: .Lpcsection448:
; O3-NEXT: jne .LBB220_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12796,23 +12661,23 @@ define void @atomic128_nand_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection494:
+; O1-NEXT: .Lpcsection449:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection495:
+; O1-NEXT: .Lpcsection450:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection496:
+; O1-NEXT: .Lpcsection451:
; O1-NEXT: movq $-1, %rcx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB221_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection497:
+; O1-NEXT: .Lpcsection452:
; O1-NEXT: notl %ebx
-; O1-NEXT: .Lpcsection498:
+; O1-NEXT: .Lpcsection453:
; O1-NEXT: orq $-43, %rbx
-; O1-NEXT: .Lpcsection499:
+; O1-NEXT: .Lpcsection454:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection500:
+; O1-NEXT: .Lpcsection455:
; O1-NEXT: jne .LBB221_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12826,23 +12691,23 @@ define void @atomic128_nand_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection494:
+; O2-NEXT: .Lpcsection449:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection495:
+; O2-NEXT: .Lpcsection450:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection496:
+; O2-NEXT: .Lpcsection451:
; O2-NEXT: movq $-1, %rcx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB221_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection497:
+; O2-NEXT: .Lpcsection452:
; O2-NEXT: notl %ebx
-; O2-NEXT: .Lpcsection498:
+; O2-NEXT: .Lpcsection453:
; O2-NEXT: orq $-43, %rbx
-; O2-NEXT: .Lpcsection499:
+; O2-NEXT: .Lpcsection454:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection500:
+; O2-NEXT: .Lpcsection455:
; O2-NEXT: jne .LBB221_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12856,23 +12721,23 @@ define void @atomic128_nand_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection494:
+; O3-NEXT: .Lpcsection449:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection495:
+; O3-NEXT: .Lpcsection450:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection496:
+; O3-NEXT: .Lpcsection451:
; O3-NEXT: movq $-1, %rcx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB221_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection497:
+; O3-NEXT: .Lpcsection452:
; O3-NEXT: notl %ebx
-; O3-NEXT: .Lpcsection498:
+; O3-NEXT: .Lpcsection453:
; O3-NEXT: orq $-43, %rbx
-; O3-NEXT: .Lpcsection499:
+; O3-NEXT: .Lpcsection454:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection500:
+; O3-NEXT: .Lpcsection455:
; O3-NEXT: jne .LBB221_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -12932,20 +12797,20 @@ define void @atomic128_xchg_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection501:
+; O1-NEXT: .Lpcsection456:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection502:
+; O1-NEXT: .Lpcsection457:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection503:
+; O1-NEXT: .Lpcsection458:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB222_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection504:
+; O1-NEXT: .Lpcsection459:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection505:
+; O1-NEXT: .Lpcsection460:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection506:
+; O1-NEXT: .Lpcsection461:
; O1-NEXT: jne .LBB222_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -12959,20 +12824,20 @@ define void @atomic128_xchg_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection501:
+; O2-NEXT: .Lpcsection456:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection502:
+; O2-NEXT: .Lpcsection457:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection503:
+; O2-NEXT: .Lpcsection458:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB222_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection504:
+; O2-NEXT: .Lpcsection459:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection505:
+; O2-NEXT: .Lpcsection460:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection506:
+; O2-NEXT: .Lpcsection461:
; O2-NEXT: jne .LBB222_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -12986,20 +12851,20 @@ define void @atomic128_xchg_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection501:
+; O3-NEXT: .Lpcsection456:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection502:
+; O3-NEXT: .Lpcsection457:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection503:
+; O3-NEXT: .Lpcsection458:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB222_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection504:
+; O3-NEXT: .Lpcsection459:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection505:
+; O3-NEXT: .Lpcsection460:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection506:
+; O3-NEXT: .Lpcsection461:
; O3-NEXT: jne .LBB222_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13058,22 +12923,22 @@ define void @atomic128_add_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection507:
+; O1-NEXT: .Lpcsection462:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection508:
+; O1-NEXT: .Lpcsection463:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB223_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection509:
+; O1-NEXT: .Lpcsection464:
; O1-NEXT: addq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection510:
+; O1-NEXT: .Lpcsection465:
; O1-NEXT: adcq $0, %rcx
-; O1-NEXT: .Lpcsection511:
+; O1-NEXT: .Lpcsection466:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection512:
+; O1-NEXT: .Lpcsection467:
; O1-NEXT: jne .LBB223_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13087,22 +12952,22 @@ define void @atomic128_add_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection507:
+; O2-NEXT: .Lpcsection462:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection508:
+; O2-NEXT: .Lpcsection463:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB223_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection509:
+; O2-NEXT: .Lpcsection464:
; O2-NEXT: addq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection510:
+; O2-NEXT: .Lpcsection465:
; O2-NEXT: adcq $0, %rcx
-; O2-NEXT: .Lpcsection511:
+; O2-NEXT: .Lpcsection466:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection512:
+; O2-NEXT: .Lpcsection467:
; O2-NEXT: jne .LBB223_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13116,22 +12981,22 @@ define void @atomic128_add_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection507:
+; O3-NEXT: .Lpcsection462:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection508:
+; O3-NEXT: .Lpcsection463:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB223_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection509:
+; O3-NEXT: .Lpcsection464:
; O3-NEXT: addq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection510:
+; O3-NEXT: .Lpcsection465:
; O3-NEXT: adcq $0, %rcx
-; O3-NEXT: .Lpcsection511:
+; O3-NEXT: .Lpcsection466:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection512:
+; O3-NEXT: .Lpcsection467:
; O3-NEXT: jne .LBB223_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13191,22 +13056,22 @@ define void @atomic128_sub_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection513:
+; O1-NEXT: .Lpcsection468:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection514:
+; O1-NEXT: .Lpcsection469:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB224_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection515:
+; O1-NEXT: .Lpcsection470:
; O1-NEXT: addq $-42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection516:
+; O1-NEXT: .Lpcsection471:
; O1-NEXT: adcq $-1, %rcx
-; O1-NEXT: .Lpcsection517:
+; O1-NEXT: .Lpcsection472:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection518:
+; O1-NEXT: .Lpcsection473:
; O1-NEXT: jne .LBB224_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13220,22 +13085,22 @@ define void @atomic128_sub_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection513:
+; O2-NEXT: .Lpcsection468:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection514:
+; O2-NEXT: .Lpcsection469:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB224_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection515:
+; O2-NEXT: .Lpcsection470:
; O2-NEXT: addq $-42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection516:
+; O2-NEXT: .Lpcsection471:
; O2-NEXT: adcq $-1, %rcx
-; O2-NEXT: .Lpcsection517:
+; O2-NEXT: .Lpcsection472:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection518:
+; O2-NEXT: .Lpcsection473:
; O2-NEXT: jne .LBB224_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13249,22 +13114,22 @@ define void @atomic128_sub_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection513:
+; O3-NEXT: .Lpcsection468:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection514:
+; O3-NEXT: .Lpcsection469:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB224_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection515:
+; O3-NEXT: .Lpcsection470:
; O3-NEXT: addq $-42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection516:
+; O3-NEXT: .Lpcsection471:
; O3-NEXT: adcq $-1, %rcx
-; O3-NEXT: .Lpcsection517:
+; O3-NEXT: .Lpcsection472:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection518:
+; O3-NEXT: .Lpcsection473:
; O3-NEXT: jne .LBB224_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13326,21 +13191,21 @@ define void @atomic128_and_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection519:
+; O1-NEXT: .Lpcsection474:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection520:
+; O1-NEXT: .Lpcsection475:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB225_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection521:
+; O1-NEXT: .Lpcsection476:
; O1-NEXT: andl $42, %ebx
-; O1-NEXT: .Lpcsection522:
+; O1-NEXT: .Lpcsection477:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection523:
+; O1-NEXT: .Lpcsection478:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection524:
+; O1-NEXT: .Lpcsection479:
; O1-NEXT: jne .LBB225_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13354,21 +13219,21 @@ define void @atomic128_and_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection519:
+; O2-NEXT: .Lpcsection474:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection520:
+; O2-NEXT: .Lpcsection475:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB225_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection521:
+; O2-NEXT: .Lpcsection476:
; O2-NEXT: andl $42, %ebx
-; O2-NEXT: .Lpcsection522:
+; O2-NEXT: .Lpcsection477:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection523:
+; O2-NEXT: .Lpcsection478:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection524:
+; O2-NEXT: .Lpcsection479:
; O2-NEXT: jne .LBB225_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13382,21 +13247,21 @@ define void @atomic128_and_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection519:
+; O3-NEXT: .Lpcsection474:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection520:
+; O3-NEXT: .Lpcsection475:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB225_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection521:
+; O3-NEXT: .Lpcsection476:
; O3-NEXT: andl $42, %ebx
-; O3-NEXT: .Lpcsection522:
+; O3-NEXT: .Lpcsection477:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection523:
+; O3-NEXT: .Lpcsection478:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection524:
+; O3-NEXT: .Lpcsection479:
; O3-NEXT: jne .LBB225_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13454,20 +13319,20 @@ define void @atomic128_or_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection525:
+; O1-NEXT: .Lpcsection480:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection526:
+; O1-NEXT: .Lpcsection481:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB226_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection527:
+; O1-NEXT: .Lpcsection482:
; O1-NEXT: orq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection528:
+; O1-NEXT: .Lpcsection483:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection529:
+; O1-NEXT: .Lpcsection484:
; O1-NEXT: jne .LBB226_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13481,20 +13346,20 @@ define void @atomic128_or_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection525:
+; O2-NEXT: .Lpcsection480:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection526:
+; O2-NEXT: .Lpcsection481:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB226_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection527:
+; O2-NEXT: .Lpcsection482:
; O2-NEXT: orq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection528:
+; O2-NEXT: .Lpcsection483:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection529:
+; O2-NEXT: .Lpcsection484:
; O2-NEXT: jne .LBB226_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13508,20 +13373,20 @@ define void @atomic128_or_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection525:
+; O3-NEXT: .Lpcsection480:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection526:
+; O3-NEXT: .Lpcsection481:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB226_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection527:
+; O3-NEXT: .Lpcsection482:
; O3-NEXT: orq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection528:
+; O3-NEXT: .Lpcsection483:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection529:
+; O3-NEXT: .Lpcsection484:
; O3-NEXT: jne .LBB226_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13579,20 +13444,20 @@ define void @atomic128_xor_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection530:
+; O1-NEXT: .Lpcsection485:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection531:
+; O1-NEXT: .Lpcsection486:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB227_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection532:
+; O1-NEXT: .Lpcsection487:
; O1-NEXT: xorq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection533:
+; O1-NEXT: .Lpcsection488:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection534:
+; O1-NEXT: .Lpcsection489:
; O1-NEXT: jne .LBB227_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13606,20 +13471,20 @@ define void @atomic128_xor_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection530:
+; O2-NEXT: .Lpcsection485:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection531:
+; O2-NEXT: .Lpcsection486:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB227_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection532:
+; O2-NEXT: .Lpcsection487:
; O2-NEXT: xorq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection533:
+; O2-NEXT: .Lpcsection488:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection534:
+; O2-NEXT: .Lpcsection489:
; O2-NEXT: jne .LBB227_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13633,20 +13498,20 @@ define void @atomic128_xor_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection530:
+; O3-NEXT: .Lpcsection485:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection531:
+; O3-NEXT: .Lpcsection486:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB227_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection532:
+; O3-NEXT: .Lpcsection487:
; O3-NEXT: xorq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection533:
+; O3-NEXT: .Lpcsection488:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection534:
+; O3-NEXT: .Lpcsection489:
; O3-NEXT: jne .LBB227_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13710,23 +13575,23 @@ define void @atomic128_nand_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection535:
+; O1-NEXT: .Lpcsection490:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection536:
+; O1-NEXT: .Lpcsection491:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection537:
+; O1-NEXT: .Lpcsection492:
; O1-NEXT: movq $-1, %rcx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB228_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection538:
+; O1-NEXT: .Lpcsection493:
; O1-NEXT: notl %ebx
-; O1-NEXT: .Lpcsection539:
+; O1-NEXT: .Lpcsection494:
; O1-NEXT: orq $-43, %rbx
-; O1-NEXT: .Lpcsection540:
+; O1-NEXT: .Lpcsection495:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection541:
+; O1-NEXT: .Lpcsection496:
; O1-NEXT: jne .LBB228_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13740,23 +13605,23 @@ define void @atomic128_nand_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection535:
+; O2-NEXT: .Lpcsection490:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection536:
+; O2-NEXT: .Lpcsection491:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection537:
+; O2-NEXT: .Lpcsection492:
; O2-NEXT: movq $-1, %rcx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB228_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection538:
+; O2-NEXT: .Lpcsection493:
; O2-NEXT: notl %ebx
-; O2-NEXT: .Lpcsection539:
+; O2-NEXT: .Lpcsection494:
; O2-NEXT: orq $-43, %rbx
-; O2-NEXT: .Lpcsection540:
+; O2-NEXT: .Lpcsection495:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection541:
+; O2-NEXT: .Lpcsection496:
; O2-NEXT: jne .LBB228_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13770,23 +13635,23 @@ define void @atomic128_nand_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection535:
+; O3-NEXT: .Lpcsection490:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection536:
+; O3-NEXT: .Lpcsection491:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection537:
+; O3-NEXT: .Lpcsection492:
; O3-NEXT: movq $-1, %rcx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB228_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection538:
+; O3-NEXT: .Lpcsection493:
; O3-NEXT: notl %ebx
-; O3-NEXT: .Lpcsection539:
+; O3-NEXT: .Lpcsection494:
; O3-NEXT: orq $-43, %rbx
-; O3-NEXT: .Lpcsection540:
+; O3-NEXT: .Lpcsection495:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection541:
+; O3-NEXT: .Lpcsection496:
; O3-NEXT: jne .LBB228_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13846,20 +13711,20 @@ define void @atomic128_xchg_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection542:
+; O1-NEXT: .Lpcsection497:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection543:
+; O1-NEXT: .Lpcsection498:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection544:
+; O1-NEXT: .Lpcsection499:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB229_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection545:
+; O1-NEXT: .Lpcsection500:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection546:
+; O1-NEXT: .Lpcsection501:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection547:
+; O1-NEXT: .Lpcsection502:
; O1-NEXT: jne .LBB229_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -13873,20 +13738,20 @@ define void @atomic128_xchg_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection542:
+; O2-NEXT: .Lpcsection497:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection543:
+; O2-NEXT: .Lpcsection498:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection544:
+; O2-NEXT: .Lpcsection499:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB229_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection545:
+; O2-NEXT: .Lpcsection500:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection546:
+; O2-NEXT: .Lpcsection501:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection547:
+; O2-NEXT: .Lpcsection502:
; O2-NEXT: jne .LBB229_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -13900,20 +13765,20 @@ define void @atomic128_xchg_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection542:
+; O3-NEXT: .Lpcsection497:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection543:
+; O3-NEXT: .Lpcsection498:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection544:
+; O3-NEXT: .Lpcsection499:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB229_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection545:
+; O3-NEXT: .Lpcsection500:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection546:
+; O3-NEXT: .Lpcsection501:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection547:
+; O3-NEXT: .Lpcsection502:
; O3-NEXT: jne .LBB229_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -13973,22 +13838,22 @@ define void @atomic128_add_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection548:
+; O1-NEXT: .Lpcsection503:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection549:
+; O1-NEXT: .Lpcsection504:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB230_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection550:
+; O1-NEXT: .Lpcsection505:
; O1-NEXT: addq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection551:
+; O1-NEXT: .Lpcsection506:
; O1-NEXT: adcq $0, %rcx
-; O1-NEXT: .Lpcsection552:
+; O1-NEXT: .Lpcsection507:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection553:
+; O1-NEXT: .Lpcsection508:
; O1-NEXT: jne .LBB230_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14002,22 +13867,22 @@ define void @atomic128_add_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection548:
+; O2-NEXT: .Lpcsection503:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection549:
+; O2-NEXT: .Lpcsection504:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB230_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection550:
+; O2-NEXT: .Lpcsection505:
; O2-NEXT: addq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection551:
+; O2-NEXT: .Lpcsection506:
; O2-NEXT: adcq $0, %rcx
-; O2-NEXT: .Lpcsection552:
+; O2-NEXT: .Lpcsection507:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection553:
+; O2-NEXT: .Lpcsection508:
; O2-NEXT: jne .LBB230_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14031,22 +13896,22 @@ define void @atomic128_add_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection548:
+; O3-NEXT: .Lpcsection503:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection549:
+; O3-NEXT: .Lpcsection504:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB230_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection550:
+; O3-NEXT: .Lpcsection505:
; O3-NEXT: addq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection551:
+; O3-NEXT: .Lpcsection506:
; O3-NEXT: adcq $0, %rcx
-; O3-NEXT: .Lpcsection552:
+; O3-NEXT: .Lpcsection507:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection553:
+; O3-NEXT: .Lpcsection508:
; O3-NEXT: jne .LBB230_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14106,22 +13971,22 @@ define void @atomic128_sub_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection554:
+; O1-NEXT: .Lpcsection509:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection555:
+; O1-NEXT: .Lpcsection510:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB231_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection556:
+; O1-NEXT: .Lpcsection511:
; O1-NEXT: addq $-42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection557:
+; O1-NEXT: .Lpcsection512:
; O1-NEXT: adcq $-1, %rcx
-; O1-NEXT: .Lpcsection558:
+; O1-NEXT: .Lpcsection513:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection559:
+; O1-NEXT: .Lpcsection514:
; O1-NEXT: jne .LBB231_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14135,22 +14000,22 @@ define void @atomic128_sub_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection554:
+; O2-NEXT: .Lpcsection509:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection555:
+; O2-NEXT: .Lpcsection510:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB231_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection556:
+; O2-NEXT: .Lpcsection511:
; O2-NEXT: addq $-42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection557:
+; O2-NEXT: .Lpcsection512:
; O2-NEXT: adcq $-1, %rcx
-; O2-NEXT: .Lpcsection558:
+; O2-NEXT: .Lpcsection513:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection559:
+; O2-NEXT: .Lpcsection514:
; O2-NEXT: jne .LBB231_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14164,22 +14029,22 @@ define void @atomic128_sub_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection554:
+; O3-NEXT: .Lpcsection509:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection555:
+; O3-NEXT: .Lpcsection510:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB231_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection556:
+; O3-NEXT: .Lpcsection511:
; O3-NEXT: addq $-42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection557:
+; O3-NEXT: .Lpcsection512:
; O3-NEXT: adcq $-1, %rcx
-; O3-NEXT: .Lpcsection558:
+; O3-NEXT: .Lpcsection513:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection559:
+; O3-NEXT: .Lpcsection514:
; O3-NEXT: jne .LBB231_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14241,21 +14106,21 @@ define void @atomic128_and_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection560:
+; O1-NEXT: .Lpcsection515:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection561:
+; O1-NEXT: .Lpcsection516:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB232_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection562:
+; O1-NEXT: .Lpcsection517:
; O1-NEXT: andl $42, %ebx
-; O1-NEXT: .Lpcsection563:
+; O1-NEXT: .Lpcsection518:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection564:
+; O1-NEXT: .Lpcsection519:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection565:
+; O1-NEXT: .Lpcsection520:
; O1-NEXT: jne .LBB232_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14269,21 +14134,21 @@ define void @atomic128_and_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection560:
+; O2-NEXT: .Lpcsection515:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection561:
+; O2-NEXT: .Lpcsection516:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB232_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection562:
+; O2-NEXT: .Lpcsection517:
; O2-NEXT: andl $42, %ebx
-; O2-NEXT: .Lpcsection563:
+; O2-NEXT: .Lpcsection518:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection564:
+; O2-NEXT: .Lpcsection519:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection565:
+; O2-NEXT: .Lpcsection520:
; O2-NEXT: jne .LBB232_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14297,21 +14162,21 @@ define void @atomic128_and_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection560:
+; O3-NEXT: .Lpcsection515:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection561:
+; O3-NEXT: .Lpcsection516:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB232_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection562:
+; O3-NEXT: .Lpcsection517:
; O3-NEXT: andl $42, %ebx
-; O3-NEXT: .Lpcsection563:
+; O3-NEXT: .Lpcsection518:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection564:
+; O3-NEXT: .Lpcsection519:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection565:
+; O3-NEXT: .Lpcsection520:
; O3-NEXT: jne .LBB232_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14369,20 +14234,20 @@ define void @atomic128_or_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection566:
+; O1-NEXT: .Lpcsection521:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection567:
+; O1-NEXT: .Lpcsection522:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB233_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection568:
+; O1-NEXT: .Lpcsection523:
; O1-NEXT: orq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection569:
+; O1-NEXT: .Lpcsection524:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection570:
+; O1-NEXT: .Lpcsection525:
; O1-NEXT: jne .LBB233_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14396,20 +14261,20 @@ define void @atomic128_or_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection566:
+; O2-NEXT: .Lpcsection521:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection567:
+; O2-NEXT: .Lpcsection522:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB233_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection568:
+; O2-NEXT: .Lpcsection523:
; O2-NEXT: orq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection569:
+; O2-NEXT: .Lpcsection524:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection570:
+; O2-NEXT: .Lpcsection525:
; O2-NEXT: jne .LBB233_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14423,20 +14288,20 @@ define void @atomic128_or_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection566:
+; O3-NEXT: .Lpcsection521:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection567:
+; O3-NEXT: .Lpcsection522:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB233_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection568:
+; O3-NEXT: .Lpcsection523:
; O3-NEXT: orq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection569:
+; O3-NEXT: .Lpcsection524:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection570:
+; O3-NEXT: .Lpcsection525:
; O3-NEXT: jne .LBB233_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14494,20 +14359,20 @@ define void @atomic128_xor_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection571:
+; O1-NEXT: .Lpcsection526:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection572:
+; O1-NEXT: .Lpcsection527:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB234_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection573:
+; O1-NEXT: .Lpcsection528:
; O1-NEXT: xorq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection574:
+; O1-NEXT: .Lpcsection529:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection575:
+; O1-NEXT: .Lpcsection530:
; O1-NEXT: jne .LBB234_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14521,20 +14386,20 @@ define void @atomic128_xor_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection571:
+; O2-NEXT: .Lpcsection526:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection572:
+; O2-NEXT: .Lpcsection527:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB234_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection573:
+; O2-NEXT: .Lpcsection528:
; O2-NEXT: xorq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection574:
+; O2-NEXT: .Lpcsection529:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection575:
+; O2-NEXT: .Lpcsection530:
; O2-NEXT: jne .LBB234_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14548,20 +14413,20 @@ define void @atomic128_xor_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection571:
+; O3-NEXT: .Lpcsection526:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection572:
+; O3-NEXT: .Lpcsection527:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB234_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection573:
+; O3-NEXT: .Lpcsection528:
; O3-NEXT: xorq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection574:
+; O3-NEXT: .Lpcsection529:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection575:
+; O3-NEXT: .Lpcsection530:
; O3-NEXT: jne .LBB234_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14625,23 +14490,23 @@ define void @atomic128_nand_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection576:
+; O1-NEXT: .Lpcsection531:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection577:
+; O1-NEXT: .Lpcsection532:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection578:
+; O1-NEXT: .Lpcsection533:
; O1-NEXT: movq $-1, %rcx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB235_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection579:
+; O1-NEXT: .Lpcsection534:
; O1-NEXT: notl %ebx
-; O1-NEXT: .Lpcsection580:
+; O1-NEXT: .Lpcsection535:
; O1-NEXT: orq $-43, %rbx
-; O1-NEXT: .Lpcsection581:
+; O1-NEXT: .Lpcsection536:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection582:
+; O1-NEXT: .Lpcsection537:
; O1-NEXT: jne .LBB235_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14655,23 +14520,23 @@ define void @atomic128_nand_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection576:
+; O2-NEXT: .Lpcsection531:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection577:
+; O2-NEXT: .Lpcsection532:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection578:
+; O2-NEXT: .Lpcsection533:
; O2-NEXT: movq $-1, %rcx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB235_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection579:
+; O2-NEXT: .Lpcsection534:
; O2-NEXT: notl %ebx
-; O2-NEXT: .Lpcsection580:
+; O2-NEXT: .Lpcsection535:
; O2-NEXT: orq $-43, %rbx
-; O2-NEXT: .Lpcsection581:
+; O2-NEXT: .Lpcsection536:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection582:
+; O2-NEXT: .Lpcsection537:
; O2-NEXT: jne .LBB235_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14685,23 +14550,23 @@ define void @atomic128_nand_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection576:
+; O3-NEXT: .Lpcsection531:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection577:
+; O3-NEXT: .Lpcsection532:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection578:
+; O3-NEXT: .Lpcsection533:
; O3-NEXT: movq $-1, %rcx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB235_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection579:
+; O3-NEXT: .Lpcsection534:
; O3-NEXT: notl %ebx
-; O3-NEXT: .Lpcsection580:
+; O3-NEXT: .Lpcsection535:
; O3-NEXT: orq $-43, %rbx
-; O3-NEXT: .Lpcsection581:
+; O3-NEXT: .Lpcsection536:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection582:
+; O3-NEXT: .Lpcsection537:
; O3-NEXT: jne .LBB235_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14761,20 +14626,20 @@ define void @atomic128_xchg_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection583:
+; O1-NEXT: .Lpcsection538:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection584:
+; O1-NEXT: .Lpcsection539:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection585:
+; O1-NEXT: .Lpcsection540:
; O1-NEXT: movl $42, %ebx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB236_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
-; O1-NEXT: .Lpcsection586:
+; O1-NEXT: .Lpcsection541:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection587:
+; O1-NEXT: .Lpcsection542:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection588:
+; O1-NEXT: .Lpcsection543:
; O1-NEXT: jne .LBB236_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14788,20 +14653,20 @@ define void @atomic128_xchg_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection583:
+; O2-NEXT: .Lpcsection538:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection584:
+; O2-NEXT: .Lpcsection539:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection585:
+; O2-NEXT: .Lpcsection540:
; O2-NEXT: movl $42, %ebx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB236_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
-; O2-NEXT: .Lpcsection586:
+; O2-NEXT: .Lpcsection541:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection587:
+; O2-NEXT: .Lpcsection542:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection588:
+; O2-NEXT: .Lpcsection543:
; O2-NEXT: jne .LBB236_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14815,20 +14680,20 @@ define void @atomic128_xchg_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection583:
+; O3-NEXT: .Lpcsection538:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection584:
+; O3-NEXT: .Lpcsection539:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection585:
+; O3-NEXT: .Lpcsection540:
; O3-NEXT: movl $42, %ebx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB236_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
-; O3-NEXT: .Lpcsection586:
+; O3-NEXT: .Lpcsection541:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection587:
+; O3-NEXT: .Lpcsection542:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection588:
+; O3-NEXT: .Lpcsection543:
; O3-NEXT: jne .LBB236_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -14888,22 +14753,22 @@ define void @atomic128_add_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection589:
+; O1-NEXT: .Lpcsection544:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection590:
+; O1-NEXT: .Lpcsection545:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB237_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection591:
+; O1-NEXT: .Lpcsection546:
; O1-NEXT: addq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection592:
+; O1-NEXT: .Lpcsection547:
; O1-NEXT: adcq $0, %rcx
-; O1-NEXT: .Lpcsection593:
+; O1-NEXT: .Lpcsection548:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection594:
+; O1-NEXT: .Lpcsection549:
; O1-NEXT: jne .LBB237_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -14917,22 +14782,22 @@ define void @atomic128_add_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection589:
+; O2-NEXT: .Lpcsection544:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection590:
+; O2-NEXT: .Lpcsection545:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB237_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection591:
+; O2-NEXT: .Lpcsection546:
; O2-NEXT: addq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection592:
+; O2-NEXT: .Lpcsection547:
; O2-NEXT: adcq $0, %rcx
-; O2-NEXT: .Lpcsection593:
+; O2-NEXT: .Lpcsection548:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection594:
+; O2-NEXT: .Lpcsection549:
; O2-NEXT: jne .LBB237_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -14946,22 +14811,22 @@ define void @atomic128_add_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection589:
+; O3-NEXT: .Lpcsection544:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection590:
+; O3-NEXT: .Lpcsection545:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB237_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection591:
+; O3-NEXT: .Lpcsection546:
; O3-NEXT: addq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection592:
+; O3-NEXT: .Lpcsection547:
; O3-NEXT: adcq $0, %rcx
-; O3-NEXT: .Lpcsection593:
+; O3-NEXT: .Lpcsection548:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection594:
+; O3-NEXT: .Lpcsection549:
; O3-NEXT: jne .LBB237_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -15021,22 +14886,22 @@ define void @atomic128_sub_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection595:
+; O1-NEXT: .Lpcsection550:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection596:
+; O1-NEXT: .Lpcsection551:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB238_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection597:
+; O1-NEXT: .Lpcsection552:
; O1-NEXT: addq $-42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection598:
+; O1-NEXT: .Lpcsection553:
; O1-NEXT: adcq $-1, %rcx
-; O1-NEXT: .Lpcsection599:
+; O1-NEXT: .Lpcsection554:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection600:
+; O1-NEXT: .Lpcsection555:
; O1-NEXT: jne .LBB238_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -15050,22 +14915,22 @@ define void @atomic128_sub_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection595:
+; O2-NEXT: .Lpcsection550:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection596:
+; O2-NEXT: .Lpcsection551:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB238_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection597:
+; O2-NEXT: .Lpcsection552:
; O2-NEXT: addq $-42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection598:
+; O2-NEXT: .Lpcsection553:
; O2-NEXT: adcq $-1, %rcx
-; O2-NEXT: .Lpcsection599:
+; O2-NEXT: .Lpcsection554:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection600:
+; O2-NEXT: .Lpcsection555:
; O2-NEXT: jne .LBB238_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -15079,22 +14944,22 @@ define void @atomic128_sub_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection595:
+; O3-NEXT: .Lpcsection550:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection596:
+; O3-NEXT: .Lpcsection551:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB238_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection597:
+; O3-NEXT: .Lpcsection552:
; O3-NEXT: addq $-42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection598:
+; O3-NEXT: .Lpcsection553:
; O3-NEXT: adcq $-1, %rcx
-; O3-NEXT: .Lpcsection599:
+; O3-NEXT: .Lpcsection554:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection600:
+; O3-NEXT: .Lpcsection555:
; O3-NEXT: jne .LBB238_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -15156,21 +15021,21 @@ define void @atomic128_and_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection601:
+; O1-NEXT: .Lpcsection556:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection602:
+; O1-NEXT: .Lpcsection557:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB239_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection603:
+; O1-NEXT: .Lpcsection558:
; O1-NEXT: andl $42, %ebx
-; O1-NEXT: .Lpcsection604:
+; O1-NEXT: .Lpcsection559:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection605:
+; O1-NEXT: .Lpcsection560:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection606:
+; O1-NEXT: .Lpcsection561:
; O1-NEXT: jne .LBB239_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -15184,21 +15049,21 @@ define void @atomic128_and_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection601:
+; O2-NEXT: .Lpcsection556:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection602:
+; O2-NEXT: .Lpcsection557:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB239_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection603:
+; O2-NEXT: .Lpcsection558:
; O2-NEXT: andl $42, %ebx
-; O2-NEXT: .Lpcsection604:
+; O2-NEXT: .Lpcsection559:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection605:
+; O2-NEXT: .Lpcsection560:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection606:
+; O2-NEXT: .Lpcsection561:
; O2-NEXT: jne .LBB239_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -15212,21 +15077,21 @@ define void @atomic128_and_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection601:
+; O3-NEXT: .Lpcsection556:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection602:
+; O3-NEXT: .Lpcsection557:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB239_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection603:
+; O3-NEXT: .Lpcsection558:
; O3-NEXT: andl $42, %ebx
-; O3-NEXT: .Lpcsection604:
+; O3-NEXT: .Lpcsection559:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection605:
+; O3-NEXT: .Lpcsection560:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection606:
+; O3-NEXT: .Lpcsection561:
; O3-NEXT: jne .LBB239_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -15284,20 +15149,20 @@ define void @atomic128_or_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection607:
+; O1-NEXT: .Lpcsection562:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection608:
+; O1-NEXT: .Lpcsection563:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB240_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection609:
+; O1-NEXT: .Lpcsection564:
; O1-NEXT: orq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection610:
+; O1-NEXT: .Lpcsection565:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection611:
+; O1-NEXT: .Lpcsection566:
; O1-NEXT: jne .LBB240_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -15311,20 +15176,20 @@ define void @atomic128_or_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection607:
+; O2-NEXT: .Lpcsection562:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection608:
+; O2-NEXT: .Lpcsection563:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB240_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection609:
+; O2-NEXT: .Lpcsection564:
; O2-NEXT: orq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection610:
+; O2-NEXT: .Lpcsection565:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection611:
+; O2-NEXT: .Lpcsection566:
; O2-NEXT: jne .LBB240_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -15338,20 +15203,20 @@ define void @atomic128_or_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection607:
+; O3-NEXT: .Lpcsection562:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection608:
+; O3-NEXT: .Lpcsection563:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB240_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection609:
+; O3-NEXT: .Lpcsection564:
; O3-NEXT: orq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection610:
+; O3-NEXT: .Lpcsection565:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection611:
+; O3-NEXT: .Lpcsection566:
; O3-NEXT: jne .LBB240_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -15409,20 +15274,20 @@ define void @atomic128_xor_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection612:
+; O1-NEXT: .Lpcsection567:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection613:
+; O1-NEXT: .Lpcsection568:
; O1-NEXT: movq 8(%rdi), %rdx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB241_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movq %rax, %rbx
-; O1-NEXT: .Lpcsection614:
+; O1-NEXT: .Lpcsection569:
; O1-NEXT: xorq $42, %rbx
; O1-NEXT: movq %rdx, %rcx
-; O1-NEXT: .Lpcsection615:
+; O1-NEXT: .Lpcsection570:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection616:
+; O1-NEXT: .Lpcsection571:
; O1-NEXT: jne .LBB241_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -15436,20 +15301,20 @@ define void @atomic128_xor_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection612:
+; O2-NEXT: .Lpcsection567:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection613:
+; O2-NEXT: .Lpcsection568:
; O2-NEXT: movq 8(%rdi), %rdx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB241_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movq %rax, %rbx
-; O2-NEXT: .Lpcsection614:
+; O2-NEXT: .Lpcsection569:
; O2-NEXT: xorq $42, %rbx
; O2-NEXT: movq %rdx, %rcx
-; O2-NEXT: .Lpcsection615:
+; O2-NEXT: .Lpcsection570:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection616:
+; O2-NEXT: .Lpcsection571:
; O2-NEXT: jne .LBB241_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -15463,20 +15328,20 @@ define void @atomic128_xor_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection612:
+; O3-NEXT: .Lpcsection567:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection613:
+; O3-NEXT: .Lpcsection568:
; O3-NEXT: movq 8(%rdi), %rdx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB241_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movq %rax, %rbx
-; O3-NEXT: .Lpcsection614:
+; O3-NEXT: .Lpcsection569:
; O3-NEXT: xorq $42, %rbx
; O3-NEXT: movq %rdx, %rcx
-; O3-NEXT: .Lpcsection615:
+; O3-NEXT: .Lpcsection570:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection616:
+; O3-NEXT: .Lpcsection571:
; O3-NEXT: jne .LBB241_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -15540,23 +15405,23 @@ define void @atomic128_nand_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection617:
+; O1-NEXT: .Lpcsection572:
; O1-NEXT: movq (%rdi), %rax
-; O1-NEXT: .Lpcsection618:
+; O1-NEXT: .Lpcsection573:
; O1-NEXT: movq 8(%rdi), %rdx
-; O1-NEXT: .Lpcsection619:
+; O1-NEXT: .Lpcsection574:
; O1-NEXT: movq $-1, %rcx
; O1-NEXT: .p2align 4, 0x90
; O1-NEXT: .LBB242_1: # %atomicrmw.start
; O1-NEXT: # =>This Inner Loop Header: Depth=1
; O1-NEXT: movl %eax, %ebx
-; O1-NEXT: .Lpcsection620:
+; O1-NEXT: .Lpcsection575:
; O1-NEXT: notl %ebx
-; O1-NEXT: .Lpcsection621:
+; O1-NEXT: .Lpcsection576:
; O1-NEXT: orq $-43, %rbx
-; O1-NEXT: .Lpcsection622:
+; O1-NEXT: .Lpcsection577:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection623:
+; O1-NEXT: .Lpcsection578:
; O1-NEXT: jne .LBB242_1
; O1-NEXT: # %bb.2: # %atomicrmw.end
; O1-NEXT: movq $1, foo(%rip)
@@ -15570,23 +15435,23 @@ define void @atomic128_nand_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection617:
+; O2-NEXT: .Lpcsection572:
; O2-NEXT: movq (%rdi), %rax
-; O2-NEXT: .Lpcsection618:
+; O2-NEXT: .Lpcsection573:
; O2-NEXT: movq 8(%rdi), %rdx
-; O2-NEXT: .Lpcsection619:
+; O2-NEXT: .Lpcsection574:
; O2-NEXT: movq $-1, %rcx
; O2-NEXT: .p2align 4, 0x90
; O2-NEXT: .LBB242_1: # %atomicrmw.start
; O2-NEXT: # =>This Inner Loop Header: Depth=1
; O2-NEXT: movl %eax, %ebx
-; O2-NEXT: .Lpcsection620:
+; O2-NEXT: .Lpcsection575:
; O2-NEXT: notl %ebx
-; O2-NEXT: .Lpcsection621:
+; O2-NEXT: .Lpcsection576:
; O2-NEXT: orq $-43, %rbx
-; O2-NEXT: .Lpcsection622:
+; O2-NEXT: .Lpcsection577:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection623:
+; O2-NEXT: .Lpcsection578:
; O2-NEXT: jne .LBB242_1
; O2-NEXT: # %bb.2: # %atomicrmw.end
; O2-NEXT: movq $1, foo(%rip)
@@ -15600,23 +15465,23 @@ define void @atomic128_nand_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection617:
+; O3-NEXT: .Lpcsection572:
; O3-NEXT: movq (%rdi), %rax
-; O3-NEXT: .Lpcsection618:
+; O3-NEXT: .Lpcsection573:
; O3-NEXT: movq 8(%rdi), %rdx
-; O3-NEXT: .Lpcsection619:
+; O3-NEXT: .Lpcsection574:
; O3-NEXT: movq $-1, %rcx
; O3-NEXT: .p2align 4, 0x90
; O3-NEXT: .LBB242_1: # %atomicrmw.start
; O3-NEXT: # =>This Inner Loop Header: Depth=1
; O3-NEXT: movl %eax, %ebx
-; O3-NEXT: .Lpcsection620:
+; O3-NEXT: .Lpcsection575:
; O3-NEXT: notl %ebx
-; O3-NEXT: .Lpcsection621:
+; O3-NEXT: .Lpcsection576:
; O3-NEXT: orq $-43, %rbx
-; O3-NEXT: .Lpcsection622:
+; O3-NEXT: .Lpcsection577:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection623:
+; O3-NEXT: .Lpcsection578:
; O3-NEXT: jne .LBB242_1
; O3-NEXT: # %bb.2: # %atomicrmw.end
; O3-NEXT: movq $1, foo(%rip)
@@ -15677,31 +15542,31 @@ define void @atomic128_cas_monotonic(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection624:
+; O1-NEXT: .Lpcsection579:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection625:
+; O1-NEXT: .Lpcsection580:
; O1-NEXT: movl $1, %ebx
-; O1-NEXT: .Lpcsection626:
+; O1-NEXT: .Lpcsection581:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection627:
+; O1-NEXT: .Lpcsection582:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection628:
+; O1-NEXT: .Lpcsection583:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection629:
+; O1-NEXT: .Lpcsection584:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection630:
+; O1-NEXT: .Lpcsection585:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection631:
+; O1-NEXT: .Lpcsection586:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection632:
+; O1-NEXT: .Lpcsection587:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection633:
+; O1-NEXT: .Lpcsection588:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection634:
+; O1-NEXT: .Lpcsection589:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection635:
+; O1-NEXT: .Lpcsection590:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection636:
+; O1-NEXT: .Lpcsection591:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -15714,31 +15579,31 @@ define void @atomic128_cas_monotonic(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection624:
+; O2-NEXT: .Lpcsection579:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection625:
+; O2-NEXT: .Lpcsection580:
; O2-NEXT: movl $1, %ebx
-; O2-NEXT: .Lpcsection626:
+; O2-NEXT: .Lpcsection581:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection627:
+; O2-NEXT: .Lpcsection582:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection628:
+; O2-NEXT: .Lpcsection583:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection629:
+; O2-NEXT: .Lpcsection584:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection630:
+; O2-NEXT: .Lpcsection585:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection631:
+; O2-NEXT: .Lpcsection586:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection632:
+; O2-NEXT: .Lpcsection587:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection633:
+; O2-NEXT: .Lpcsection588:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection634:
+; O2-NEXT: .Lpcsection589:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection635:
+; O2-NEXT: .Lpcsection590:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection636:
+; O2-NEXT: .Lpcsection591:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -15751,31 +15616,31 @@ define void @atomic128_cas_monotonic(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection624:
+; O3-NEXT: .Lpcsection579:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection625:
+; O3-NEXT: .Lpcsection580:
; O3-NEXT: movl $1, %ebx
-; O3-NEXT: .Lpcsection626:
+; O3-NEXT: .Lpcsection581:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection627:
+; O3-NEXT: .Lpcsection582:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection628:
+; O3-NEXT: .Lpcsection583:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection629:
+; O3-NEXT: .Lpcsection584:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection630:
+; O3-NEXT: .Lpcsection585:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection631:
+; O3-NEXT: .Lpcsection586:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection632:
+; O3-NEXT: .Lpcsection587:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection633:
+; O3-NEXT: .Lpcsection588:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection634:
+; O3-NEXT: .Lpcsection589:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection635:
+; O3-NEXT: .Lpcsection590:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection636:
+; O3-NEXT: .Lpcsection591:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -15837,31 +15702,31 @@ define void @atomic128_cas_acquire(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection637:
+; O1-NEXT: .Lpcsection592:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection638:
+; O1-NEXT: .Lpcsection593:
; O1-NEXT: movl $1, %ebx
-; O1-NEXT: .Lpcsection639:
+; O1-NEXT: .Lpcsection594:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection640:
+; O1-NEXT: .Lpcsection595:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection641:
+; O1-NEXT: .Lpcsection596:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection642:
+; O1-NEXT: .Lpcsection597:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection643:
+; O1-NEXT: .Lpcsection598:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection644:
+; O1-NEXT: .Lpcsection599:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection645:
+; O1-NEXT: .Lpcsection600:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection646:
+; O1-NEXT: .Lpcsection601:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection647:
+; O1-NEXT: .Lpcsection602:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection648:
+; O1-NEXT: .Lpcsection603:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection649:
+; O1-NEXT: .Lpcsection604:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -15874,31 +15739,31 @@ define void @atomic128_cas_acquire(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection637:
+; O2-NEXT: .Lpcsection592:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection638:
+; O2-NEXT: .Lpcsection593:
; O2-NEXT: movl $1, %ebx
-; O2-NEXT: .Lpcsection639:
+; O2-NEXT: .Lpcsection594:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection640:
+; O2-NEXT: .Lpcsection595:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection641:
+; O2-NEXT: .Lpcsection596:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection642:
+; O2-NEXT: .Lpcsection597:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection643:
+; O2-NEXT: .Lpcsection598:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection644:
+; O2-NEXT: .Lpcsection599:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection645:
+; O2-NEXT: .Lpcsection600:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection646:
+; O2-NEXT: .Lpcsection601:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection647:
+; O2-NEXT: .Lpcsection602:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection648:
+; O2-NEXT: .Lpcsection603:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection649:
+; O2-NEXT: .Lpcsection604:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -15911,31 +15776,31 @@ define void @atomic128_cas_acquire(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection637:
+; O3-NEXT: .Lpcsection592:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection638:
+; O3-NEXT: .Lpcsection593:
; O3-NEXT: movl $1, %ebx
-; O3-NEXT: .Lpcsection639:
+; O3-NEXT: .Lpcsection594:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection640:
+; O3-NEXT: .Lpcsection595:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection641:
+; O3-NEXT: .Lpcsection596:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection642:
+; O3-NEXT: .Lpcsection597:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection643:
+; O3-NEXT: .Lpcsection598:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection644:
+; O3-NEXT: .Lpcsection599:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection645:
+; O3-NEXT: .Lpcsection600:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection646:
+; O3-NEXT: .Lpcsection601:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection647:
+; O3-NEXT: .Lpcsection602:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection648:
+; O3-NEXT: .Lpcsection603:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection649:
+; O3-NEXT: .Lpcsection604:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -15997,31 +15862,31 @@ define void @atomic128_cas_release(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection650:
+; O1-NEXT: .Lpcsection605:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection651:
+; O1-NEXT: .Lpcsection606:
; O1-NEXT: movl $1, %ebx
-; O1-NEXT: .Lpcsection652:
+; O1-NEXT: .Lpcsection607:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection653:
+; O1-NEXT: .Lpcsection608:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection654:
+; O1-NEXT: .Lpcsection609:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection655:
+; O1-NEXT: .Lpcsection610:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection656:
+; O1-NEXT: .Lpcsection611:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection657:
+; O1-NEXT: .Lpcsection612:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection658:
+; O1-NEXT: .Lpcsection613:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection659:
+; O1-NEXT: .Lpcsection614:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection660:
+; O1-NEXT: .Lpcsection615:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection661:
+; O1-NEXT: .Lpcsection616:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection662:
+; O1-NEXT: .Lpcsection617:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -16034,31 +15899,31 @@ define void @atomic128_cas_release(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection650:
+; O2-NEXT: .Lpcsection605:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection651:
+; O2-NEXT: .Lpcsection606:
; O2-NEXT: movl $1, %ebx
-; O2-NEXT: .Lpcsection652:
+; O2-NEXT: .Lpcsection607:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection653:
+; O2-NEXT: .Lpcsection608:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection654:
+; O2-NEXT: .Lpcsection609:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection655:
+; O2-NEXT: .Lpcsection610:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection656:
+; O2-NEXT: .Lpcsection611:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection657:
+; O2-NEXT: .Lpcsection612:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection658:
+; O2-NEXT: .Lpcsection613:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection659:
+; O2-NEXT: .Lpcsection614:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection660:
+; O2-NEXT: .Lpcsection615:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection661:
+; O2-NEXT: .Lpcsection616:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection662:
+; O2-NEXT: .Lpcsection617:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -16071,31 +15936,31 @@ define void @atomic128_cas_release(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection650:
+; O3-NEXT: .Lpcsection605:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection651:
+; O3-NEXT: .Lpcsection606:
; O3-NEXT: movl $1, %ebx
-; O3-NEXT: .Lpcsection652:
+; O3-NEXT: .Lpcsection607:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection653:
+; O3-NEXT: .Lpcsection608:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection654:
+; O3-NEXT: .Lpcsection609:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection655:
+; O3-NEXT: .Lpcsection610:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection656:
+; O3-NEXT: .Lpcsection611:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection657:
+; O3-NEXT: .Lpcsection612:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection658:
+; O3-NEXT: .Lpcsection613:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection659:
+; O3-NEXT: .Lpcsection614:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection660:
+; O3-NEXT: .Lpcsection615:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection661:
+; O3-NEXT: .Lpcsection616:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection662:
+; O3-NEXT: .Lpcsection617:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -16157,31 +16022,31 @@ define void @atomic128_cas_acq_rel(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection663:
+; O1-NEXT: .Lpcsection618:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection664:
+; O1-NEXT: .Lpcsection619:
; O1-NEXT: movl $1, %ebx
-; O1-NEXT: .Lpcsection665:
+; O1-NEXT: .Lpcsection620:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection666:
+; O1-NEXT: .Lpcsection621:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection667:
+; O1-NEXT: .Lpcsection622:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection668:
+; O1-NEXT: .Lpcsection623:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection669:
+; O1-NEXT: .Lpcsection624:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection670:
+; O1-NEXT: .Lpcsection625:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection671:
+; O1-NEXT: .Lpcsection626:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection672:
+; O1-NEXT: .Lpcsection627:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection673:
+; O1-NEXT: .Lpcsection628:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection674:
+; O1-NEXT: .Lpcsection629:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection675:
+; O1-NEXT: .Lpcsection630:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $1, foo(%rip)
; O1-NEXT: popq %rbx
@@ -16194,31 +16059,31 @@ define void @atomic128_cas_acq_rel(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection663:
+; O2-NEXT: .Lpcsection618:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection664:
+; O2-NEXT: .Lpcsection619:
; O2-NEXT: movl $1, %ebx
-; O2-NEXT: .Lpcsection665:
+; O2-NEXT: .Lpcsection620:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection666:
+; O2-NEXT: .Lpcsection621:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection667:
+; O2-NEXT: .Lpcsection622:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection668:
+; O2-NEXT: .Lpcsection623:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection669:
+; O2-NEXT: .Lpcsection624:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection670:
+; O2-NEXT: .Lpcsection625:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection671:
+; O2-NEXT: .Lpcsection626:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection672:
+; O2-NEXT: .Lpcsection627:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection673:
+; O2-NEXT: .Lpcsection628:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection674:
+; O2-NEXT: .Lpcsection629:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection675:
+; O2-NEXT: .Lpcsection630:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $1, foo(%rip)
; O2-NEXT: popq %rbx
@@ -16231,31 +16096,31 @@ define void @atomic128_cas_acq_rel(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection663:
+; O3-NEXT: .Lpcsection618:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection664:
+; O3-NEXT: .Lpcsection619:
; O3-NEXT: movl $1, %ebx
-; O3-NEXT: .Lpcsection665:
+; O3-NEXT: .Lpcsection620:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection666:
+; O3-NEXT: .Lpcsection621:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection667:
+; O3-NEXT: .Lpcsection622:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection668:
+; O3-NEXT: .Lpcsection623:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection669:
+; O3-NEXT: .Lpcsection624:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection670:
+; O3-NEXT: .Lpcsection625:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection671:
+; O3-NEXT: .Lpcsection626:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection672:
+; O3-NEXT: .Lpcsection627:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection673:
+; O3-NEXT: .Lpcsection628:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection674:
+; O3-NEXT: .Lpcsection629:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection675:
+; O3-NEXT: .Lpcsection630:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $1, foo(%rip)
; O3-NEXT: popq %rbx
@@ -16317,31 +16182,31 @@ define void @atomic128_cas_seq_cst(ptr %a) {
; O1-NEXT: .cfi_def_cfa_offset 16
; O1-NEXT: .cfi_offset %rbx, -16
; O1-NEXT: movq foo(%rip), %rax
-; O1-NEXT: .Lpcsection676:
+; O1-NEXT: .Lpcsection631:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection677:
+; O1-NEXT: .Lpcsection632:
; O1-NEXT: movl $1, %ebx
-; O1-NEXT: .Lpcsection678:
+; O1-NEXT: .Lpcsection633:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection679:
+; O1-NEXT: .Lpcsection634:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection680:
+; O1-NEXT: .Lpcsection635:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection681:
+; O1-NEXT: .Lpcsection636:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection682:
+; O1-NEXT: .Lpcsection637:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection683:
+; O1-NEXT: .Lpcsection638:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection684:
+; O1-NEXT: .Lpcsection639:
; O1-NEXT: lock cmpxchg16b (%rdi)
-; O1-NEXT: .Lpcsection685:
+; O1-NEXT: .Lpcsection640:
; O1-NEXT: movl $42, %eax
-; O1-NEXT: .Lpcsection686:
+; O1-NEXT: .Lpcsection641:
; O1-NEXT: xorl %edx, %edx
-; O1-NEXT: .Lpcsection687:
+; O1-NEXT: .Lpcsection642:
; O1-NEXT: xorl %ecx, %ecx
-; O1-NEXT: .Lpcsection688:
+; O1-NEXT: .Lpcsection643:
; O1-NEXT: lock cmpxchg16b (%rdi)
; O1-NEXT: movq $3, foo(%rip)
; O1-NEXT: popq %rbx
@@ -16354,31 +16219,31 @@ define void @atomic128_cas_seq_cst(ptr %a) {
; O2-NEXT: .cfi_def_cfa_offset 16
; O2-NEXT: .cfi_offset %rbx, -16
; O2-NEXT: movq foo(%rip), %rax
-; O2-NEXT: .Lpcsection676:
+; O2-NEXT: .Lpcsection631:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection677:
+; O2-NEXT: .Lpcsection632:
; O2-NEXT: movl $1, %ebx
-; O2-NEXT: .Lpcsection678:
+; O2-NEXT: .Lpcsection633:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection679:
+; O2-NEXT: .Lpcsection634:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection680:
+; O2-NEXT: .Lpcsection635:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection681:
+; O2-NEXT: .Lpcsection636:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection682:
+; O2-NEXT: .Lpcsection637:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection683:
+; O2-NEXT: .Lpcsection638:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection684:
+; O2-NEXT: .Lpcsection639:
; O2-NEXT: lock cmpxchg16b (%rdi)
-; O2-NEXT: .Lpcsection685:
+; O2-NEXT: .Lpcsection640:
; O2-NEXT: movl $42, %eax
-; O2-NEXT: .Lpcsection686:
+; O2-NEXT: .Lpcsection641:
; O2-NEXT: xorl %edx, %edx
-; O2-NEXT: .Lpcsection687:
+; O2-NEXT: .Lpcsection642:
; O2-NEXT: xorl %ecx, %ecx
-; O2-NEXT: .Lpcsection688:
+; O2-NEXT: .Lpcsection643:
; O2-NEXT: lock cmpxchg16b (%rdi)
; O2-NEXT: movq $3, foo(%rip)
; O2-NEXT: popq %rbx
@@ -16391,31 +16256,31 @@ define void @atomic128_cas_seq_cst(ptr %a) {
; O3-NEXT: .cfi_def_cfa_offset 16
; O3-NEXT: .cfi_offset %rbx, -16
; O3-NEXT: movq foo(%rip), %rax
-; O3-NEXT: .Lpcsection676:
+; O3-NEXT: .Lpcsection631:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection677:
+; O3-NEXT: .Lpcsection632:
; O3-NEXT: movl $1, %ebx
-; O3-NEXT: .Lpcsection678:
+; O3-NEXT: .Lpcsection633:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection679:
+; O3-NEXT: .Lpcsection634:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection680:
+; O3-NEXT: .Lpcsection635:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection681:
+; O3-NEXT: .Lpcsection636:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection682:
+; O3-NEXT: .Lpcsection637:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection683:
+; O3-NEXT: .Lpcsection638:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection684:
+; O3-NEXT: .Lpcsection639:
; O3-NEXT: lock cmpxchg16b (%rdi)
-; O3-NEXT: .Lpcsection685:
+; O3-NEXT: .Lpcsection640:
; O3-NEXT: movl $42, %eax
-; O3-NEXT: .Lpcsection686:
+; O3-NEXT: .Lpcsection641:
; O3-NEXT: xorl %edx, %edx
-; O3-NEXT: .Lpcsection687:
+; O3-NEXT: .Lpcsection642:
; O3-NEXT: xorl %ecx, %ecx
-; O3-NEXT: .Lpcsection688:
+; O3-NEXT: .Lpcsection643:
; O3-NEXT: lock cmpxchg16b (%rdi)
; O3-NEXT: movq $3, foo(%rip)
; O3-NEXT: popq %rbx
diff --git a/llvm/test/CodeGen/X86/peephole-copy.mir b/llvm/test/CodeGen/X86/peephole-copy.mir
deleted file mode 100644
index e875465dfc9f972..000000000000000
--- a/llvm/test/CodeGen/X86/peephole-copy.mir
+++ /dev/null
@@ -1,34 +0,0 @@
-# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
-# RUN: llc -mtriple=i686-- -run-pass=peephole-opt %s -o - | FileCheck %s
---- |
- define void @c() {
- entry:
- tail call void asm sideeffect "", "q,~{dirflag},~{fpsr},~{flags}"(i32 512)
- tail call void asm sideeffect "", "q,~{dirflag},~{fpsr},~{flags}"(i32 512)
- ret void
- }
-...
----
-# In peephole optimization the modified COPY instruction should not cause
-# compiler failure.
-name: c
-registers:
- - { id: 0, class: gr32_abcd }
- - { id: 1, class: gr32_abcd }
- - { id: 2, class: gr32 }
-
-body: |
- bb.0:
- ; CHECK-LABEL: name: c
- ; CHECK: [[MOV32ri:%[0-9]+]]:gr32_abcd = MOV32ri 512
- ; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 2359305 /* reguse:GR32 */, [[MOV32ri]], 1 /* reguse */, implicit-def early-clobber $df
- ; CHECK-NEXT: [[MOV32ri1:%[0-9]+]]:gr32_abcd = MOV32ri 512
- ; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 2359305 /* reguse:GR32 */, [[MOV32ri1]], 1 /* reguse */, implicit-def early-clobber $df
- ; CHECK-NEXT: RET 0
- %2 = MOV32ri 512
- %0 = COPY %2
- INLINEASM &"", 1 /* sideeffect attdialect */, 2359305 /* reguse:GR32_ABCD */, %0:gr32_abcd, 1 /* clobber */, implicit-def early-clobber $df
- %1 = COPY %2
- INLINEASM &"", 1 /* sideeffect attdialect */, 2359305 /* reguse:GR32_ABCD */, %1:gr32_abcd, 1 /* clobber */, implicit-def early-clobber $df
- RET 0
-...
diff --git a/llvm/test/CodeGen/X86/physreg-pairs.ll b/llvm/test/CodeGen/X86/physreg-pairs.ll
index 07ee803709caa47..5e1d430311a64c2 100644
--- a/llvm/test/CodeGen/X86/physreg-pairs.ll
+++ b/llvm/test/CodeGen/X86/physreg-pairs.ll
@@ -145,8 +145,8 @@ define dso_local i64 @test_ebp(i64 %in) local_unnamed_addr nounwind {
; CHECK-LABEL: test_ebp:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: pushl %ebp
-; CHECK-NEXT: movl $-1985229329, %ebp # imm = 0x89ABCDEF
; CHECK-NEXT: movl $19088743, %esp # imm = 0x1234567
+; CHECK-NEXT: movl $-1985229329, %ebp # imm = 0x89ABCDEF
; CHECK-NEXT: #APP
; CHECK-NEXT: movl %ebp, %eax
; CHECK-NEXT: #NO_APP
diff --git a/llvm/test/CodeGen/X86/popcnt.ll b/llvm/test/CodeGen/X86/popcnt.ll
index a0879ad930a302d..5ed14ab6e0b976e 100644
--- a/llvm/test/CodeGen/X86/popcnt.ll
+++ b/llvm/test/CodeGen/X86/popcnt.ll
@@ -1044,11 +1044,12 @@ define i32 @cnt32_pgso(i32 %x) nounwind readnone !prof !14 {
; X86-NEXT: shrl %ecx
; X86-NEXT: andl $1431655765, %ecx # imm = 0x55555555
; X86-NEXT: subl %ecx, %eax
-; X86-NEXT: movl %eax, %ecx
-; X86-NEXT: andl $858993459, %ecx # imm = 0x33333333
+; X86-NEXT: movl $858993459, %ecx # imm = 0x33333333
+; X86-NEXT: movl %eax, %edx
+; X86-NEXT: andl %ecx, %edx
; X86-NEXT: shrl $2, %eax
-; X86-NEXT: andl $858993459, %eax # imm = 0x33333333
-; X86-NEXT: addl %ecx, %eax
+; X86-NEXT: andl %ecx, %eax
+; X86-NEXT: addl %edx, %eax
; X86-NEXT: movl %eax, %ecx
; X86-NEXT: shrl $4, %ecx
; X86-NEXT: addl %eax, %ecx
@@ -1063,11 +1064,12 @@ define i32 @cnt32_pgso(i32 %x) nounwind readnone !prof !14 {
; X64-NEXT: shrl %eax
; X64-NEXT: andl $1431655765, %eax # imm = 0x55555555
; X64-NEXT: subl %eax, %edi
-; X64-NEXT: movl %edi, %eax
-; X64-NEXT: andl $858993459, %eax # imm = 0x33333333
+; X64-NEXT: movl $858993459, %eax # imm = 0x33333333
+; X64-NEXT: movl %edi, %ecx
+; X64-NEXT: andl %eax, %ecx
; X64-NEXT: shrl $2, %edi
-; X64-NEXT: andl $858993459, %edi # imm = 0x33333333
-; X64-NEXT: addl %eax, %edi
+; X64-NEXT: andl %eax, %edi
+; X64-NEXT: addl %ecx, %edi
; X64-NEXT: movl %edi, %eax
; X64-NEXT: shrl $4, %eax
; X64-NEXT: addl %edi, %eax
@@ -1092,40 +1094,49 @@ define i32 @cnt32_pgso(i32 %x) nounwind readnone !prof !14 {
define i64 @cnt64_pgso(i64 %x) nounwind readnone !prof !14 {
; X86-NOSSE-LABEL: cnt64_pgso:
; X86-NOSSE: # %bb.0:
+; X86-NOSSE-NEXT: pushl %ebx
+; X86-NOSSE-NEXT: pushl %edi
+; X86-NOSSE-NEXT: pushl %esi
; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
-; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
-; X86-NOSSE-NEXT: movl %ecx, %edx
-; X86-NOSSE-NEXT: shrl %edx
-; X86-NOSSE-NEXT: andl $1431655765, %edx # imm = 0x55555555
-; X86-NOSSE-NEXT: subl %edx, %ecx
-; X86-NOSSE-NEXT: movl %ecx, %edx
-; X86-NOSSE-NEXT: andl $858993459, %edx # imm = 0x33333333
-; X86-NOSSE-NEXT: shrl $2, %ecx
-; X86-NOSSE-NEXT: andl $858993459, %ecx # imm = 0x33333333
-; X86-NOSSE-NEXT: addl %edx, %ecx
-; X86-NOSSE-NEXT: movl %ecx, %edx
-; X86-NOSSE-NEXT: shrl $4, %edx
-; X86-NOSSE-NEXT: addl %ecx, %edx
-; X86-NOSSE-NEXT: andl $252645135, %edx # imm = 0xF0F0F0F
-; X86-NOSSE-NEXT: imull $16843009, %edx, %ecx # imm = 0x1010101
-; X86-NOSSE-NEXT: shrl $24, %ecx
-; X86-NOSSE-NEXT: movl %eax, %edx
-; X86-NOSSE-NEXT: shrl %edx
-; X86-NOSSE-NEXT: andl $1431655765, %edx # imm = 0x55555555
-; X86-NOSSE-NEXT: subl %edx, %eax
+; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %esi
+; X86-NOSSE-NEXT: movl %esi, %ecx
+; X86-NOSSE-NEXT: shrl %ecx
+; X86-NOSSE-NEXT: movl $1431655765, %edx # imm = 0x55555555
+; X86-NOSSE-NEXT: andl %edx, %ecx
+; X86-NOSSE-NEXT: subl %ecx, %esi
+; X86-NOSSE-NEXT: movl $858993459, %ecx # imm = 0x33333333
+; X86-NOSSE-NEXT: movl %esi, %edi
+; X86-NOSSE-NEXT: andl %ecx, %edi
+; X86-NOSSE-NEXT: shrl $2, %esi
+; X86-NOSSE-NEXT: andl %ecx, %esi
+; X86-NOSSE-NEXT: addl %edi, %esi
+; X86-NOSSE-NEXT: movl %esi, %ebx
+; X86-NOSSE-NEXT: shrl $4, %ebx
+; X86-NOSSE-NEXT: addl %esi, %ebx
+; X86-NOSSE-NEXT: movl $252645135, %edi # imm = 0xF0F0F0F
+; X86-NOSSE-NEXT: andl %edi, %ebx
+; X86-NOSSE-NEXT: imull $16843009, %ebx, %esi # imm = 0x1010101
+; X86-NOSSE-NEXT: shrl $24, %esi
+; X86-NOSSE-NEXT: movl %eax, %ebx
+; X86-NOSSE-NEXT: shrl %ebx
+; X86-NOSSE-NEXT: andl %edx, %ebx
+; X86-NOSSE-NEXT: subl %ebx, %eax
; X86-NOSSE-NEXT: movl %eax, %edx
-; X86-NOSSE-NEXT: andl $858993459, %edx # imm = 0x33333333
+; X86-NOSSE-NEXT: andl %ecx, %edx
; X86-NOSSE-NEXT: shrl $2, %eax
-; X86-NOSSE-NEXT: andl $858993459, %eax # imm = 0x33333333
+; X86-NOSSE-NEXT: andl %ecx, %eax
; X86-NOSSE-NEXT: addl %edx, %eax
-; X86-NOSSE-NEXT: movl %eax, %edx
-; X86-NOSSE-NEXT: shrl $4, %edx
-; X86-NOSSE-NEXT: addl %eax, %edx
-; X86-NOSSE-NEXT: andl $252645135, %edx # imm = 0xF0F0F0F
-; X86-NOSSE-NEXT: imull $16843009, %edx, %eax # imm = 0x1010101
+; X86-NOSSE-NEXT: movl %eax, %ecx
+; X86-NOSSE-NEXT: shrl $4, %ecx
+; X86-NOSSE-NEXT: addl %eax, %ecx
+; X86-NOSSE-NEXT: andl %edi, %ecx
+; X86-NOSSE-NEXT: imull $16843009, %ecx, %eax # imm = 0x1010101
; X86-NOSSE-NEXT: shrl $24, %eax
-; X86-NOSSE-NEXT: addl %ecx, %eax
+; X86-NOSSE-NEXT: addl %esi, %eax
; X86-NOSSE-NEXT: xorl %edx, %edx
+; X86-NOSSE-NEXT: popl %esi
+; X86-NOSSE-NEXT: popl %edi
+; X86-NOSSE-NEXT: popl %ebx
; X86-NOSSE-NEXT: retl
;
; X64-LABEL: cnt64_pgso:
@@ -1212,85 +1223,92 @@ define i64 @cnt64_pgso(i64 %x) nounwind readnone !prof !14 {
define i128 @cnt128_pgso(i128 %x) nounwind readnone !prof !14 {
; X86-NOSSE-LABEL: cnt128_pgso:
; X86-NOSSE: # %bb.0:
+; X86-NOSSE-NEXT: pushl %ebp
; X86-NOSSE-NEXT: pushl %ebx
; X86-NOSSE-NEXT: pushl %edi
; X86-NOSSE-NEXT: pushl %esi
-; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
-; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %edx
; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %esi
-; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %edi
-; X86-NOSSE-NEXT: movl %edi, %ebx
+; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
+; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ebx
+; X86-NOSSE-NEXT: movl %ebx, %ecx
+; X86-NOSSE-NEXT: shrl %ecx
+; X86-NOSSE-NEXT: movl $1431655765, %edi # imm = 0x55555555
+; X86-NOSSE-NEXT: andl %edi, %ecx
+; X86-NOSSE-NEXT: subl %ecx, %ebx
+; X86-NOSSE-NEXT: movl $858993459, %ecx # imm = 0x33333333
+; X86-NOSSE-NEXT: movl %ebx, %ebp
+; X86-NOSSE-NEXT: andl %ecx, %ebp
+; X86-NOSSE-NEXT: shrl $2, %ebx
+; X86-NOSSE-NEXT: andl %ecx, %ebx
+; X86-NOSSE-NEXT: addl %ebp, %ebx
+; X86-NOSSE-NEXT: movl %ebx, %ebp
+; X86-NOSSE-NEXT: shrl $4, %ebp
+; X86-NOSSE-NEXT: addl %ebx, %ebp
+; X86-NOSSE-NEXT: movl %eax, %ebx
; X86-NOSSE-NEXT: shrl %ebx
-; X86-NOSSE-NEXT: andl $1431655765, %ebx # imm = 0x55555555
-; X86-NOSSE-NEXT: subl %ebx, %edi
-; X86-NOSSE-NEXT: movl %edi, %ebx
-; X86-NOSSE-NEXT: andl $858993459, %ebx # imm = 0x33333333
-; X86-NOSSE-NEXT: shrl $2, %edi
-; X86-NOSSE-NEXT: andl $858993459, %edi # imm = 0x33333333
-; X86-NOSSE-NEXT: addl %ebx, %edi
-; X86-NOSSE-NEXT: movl %edi, %ebx
-; X86-NOSSE-NEXT: shrl $4, %ebx
-; X86-NOSSE-NEXT: addl %edi, %ebx
-; X86-NOSSE-NEXT: andl $252645135, %ebx # imm = 0xF0F0F0F
-; X86-NOSSE-NEXT: imull $16843009, %ebx, %edi # imm = 0x1010101
+; X86-NOSSE-NEXT: andl %edi, %ebx
+; X86-NOSSE-NEXT: subl %ebx, %eax
+; X86-NOSSE-NEXT: movl %eax, %ebx
+; X86-NOSSE-NEXT: andl %ecx, %ebx
+; X86-NOSSE-NEXT: shrl $2, %eax
+; X86-NOSSE-NEXT: andl %ecx, %eax
+; X86-NOSSE-NEXT: addl %ebx, %eax
+; X86-NOSSE-NEXT: movl %eax, %edi
+; X86-NOSSE-NEXT: shrl $4, %edi
+; X86-NOSSE-NEXT: addl %eax, %edi
+; X86-NOSSE-NEXT: movl $252645135, %ebx # imm = 0xF0F0F0F
+; X86-NOSSE-NEXT: andl %ebx, %ebp
+; X86-NOSSE-NEXT: imull $16843009, %ebp, %eax # imm = 0x1010101
+; X86-NOSSE-NEXT: shrl $24, %eax
+; X86-NOSSE-NEXT: andl %ebx, %edi
+; X86-NOSSE-NEXT: imull $16843009, %edi, %edi # imm = 0x1010101
; X86-NOSSE-NEXT: shrl $24, %edi
-; X86-NOSSE-NEXT: movl %esi, %ebx
-; X86-NOSSE-NEXT: shrl %ebx
-; X86-NOSSE-NEXT: andl $1431655765, %ebx # imm = 0x55555555
-; X86-NOSSE-NEXT: subl %ebx, %esi
-; X86-NOSSE-NEXT: movl %esi, %ebx
-; X86-NOSSE-NEXT: andl $858993459, %ebx # imm = 0x33333333
+; X86-NOSSE-NEXT: addl %eax, %edi
+; X86-NOSSE-NEXT: movl %esi, %eax
+; X86-NOSSE-NEXT: shrl %eax
+; X86-NOSSE-NEXT: movl $1431655765, %ebp # imm = 0x55555555
+; X86-NOSSE-NEXT: andl %ebp, %eax
+; X86-NOSSE-NEXT: subl %eax, %esi
+; X86-NOSSE-NEXT: movl %esi, %eax
+; X86-NOSSE-NEXT: andl %ecx, %eax
; X86-NOSSE-NEXT: shrl $2, %esi
-; X86-NOSSE-NEXT: andl $858993459, %esi # imm = 0x33333333
-; X86-NOSSE-NEXT: addl %ebx, %esi
-; X86-NOSSE-NEXT: movl %esi, %ebx
-; X86-NOSSE-NEXT: shrl $4, %ebx
-; X86-NOSSE-NEXT: addl %esi, %ebx
-; X86-NOSSE-NEXT: andl $252645135, %ebx # imm = 0xF0F0F0F
-; X86-NOSSE-NEXT: imull $16843009, %ebx, %esi # imm = 0x1010101
-; X86-NOSSE-NEXT: shrl $24, %esi
-; X86-NOSSE-NEXT: addl %edi, %esi
-; X86-NOSSE-NEXT: movl %edx, %edi
-; X86-NOSSE-NEXT: shrl %edi
-; X86-NOSSE-NEXT: andl $1431655765, %edi # imm = 0x55555555
-; X86-NOSSE-NEXT: subl %edi, %edx
-; X86-NOSSE-NEXT: movl %edx, %edi
-; X86-NOSSE-NEXT: andl $858993459, %edi # imm = 0x33333333
+; X86-NOSSE-NEXT: andl %ecx, %esi
+; X86-NOSSE-NEXT: addl %eax, %esi
+; X86-NOSSE-NEXT: movl %esi, %ebp
+; X86-NOSSE-NEXT: shrl $4, %ebp
+; X86-NOSSE-NEXT: addl %esi, %ebp
+; X86-NOSSE-NEXT: movl %edx, %eax
+; X86-NOSSE-NEXT: shrl %eax
+; X86-NOSSE-NEXT: movl $1431655765, %esi # imm = 0x55555555
+; X86-NOSSE-NEXT: andl %esi, %eax
+; X86-NOSSE-NEXT: subl %eax, %edx
+; X86-NOSSE-NEXT: movl %edx, %eax
+; X86-NOSSE-NEXT: andl %ecx, %eax
; X86-NOSSE-NEXT: shrl $2, %edx
-; X86-NOSSE-NEXT: andl $858993459, %edx # imm = 0x33333333
-; X86-NOSSE-NEXT: addl %edi, %edx
-; X86-NOSSE-NEXT: movl %edx, %edi
-; X86-NOSSE-NEXT: shrl $4, %edi
-; X86-NOSSE-NEXT: addl %edx, %edi
-; X86-NOSSE-NEXT: andl $252645135, %edi # imm = 0xF0F0F0F
-; X86-NOSSE-NEXT: imull $16843009, %edi, %edx # imm = 0x1010101
-; X86-NOSSE-NEXT: shrl $24, %edx
-; X86-NOSSE-NEXT: movl %ecx, %edi
-; X86-NOSSE-NEXT: shrl %edi
-; X86-NOSSE-NEXT: andl $1431655765, %edi # imm = 0x55555555
-; X86-NOSSE-NEXT: subl %edi, %ecx
-; X86-NOSSE-NEXT: movl %ecx, %edi
-; X86-NOSSE-NEXT: andl $858993459, %edi # imm = 0x33333333
-; X86-NOSSE-NEXT: shrl $2, %ecx
-; X86-NOSSE-NEXT: andl $858993459, %ecx # imm = 0x33333333
-; X86-NOSSE-NEXT: addl %edi, %ecx
-; X86-NOSSE-NEXT: movl %ecx, %edi
-; X86-NOSSE-NEXT: shrl $4, %edi
-; X86-NOSSE-NEXT: addl %ecx, %edi
-; X86-NOSSE-NEXT: andl $252645135, %edi # imm = 0xF0F0F0F
-; X86-NOSSE-NEXT: imull $16843009, %edi, %ecx # imm = 0x1010101
+; X86-NOSSE-NEXT: andl %ecx, %edx
+; X86-NOSSE-NEXT: addl %eax, %edx
+; X86-NOSSE-NEXT: movl %edx, %eax
+; X86-NOSSE-NEXT: shrl $4, %eax
+; X86-NOSSE-NEXT: addl %edx, %eax
+; X86-NOSSE-NEXT: andl %ebx, %ebp
+; X86-NOSSE-NEXT: andl %ebx, %eax
+; X86-NOSSE-NEXT: imull $16843009, %ebp, %ecx # imm = 0x1010101
; X86-NOSSE-NEXT: shrl $24, %ecx
-; X86-NOSSE-NEXT: addl %edx, %ecx
-; X86-NOSSE-NEXT: addl %esi, %ecx
-; X86-NOSSE-NEXT: xorl %edx, %edx
-; X86-NOSSE-NEXT: movl %edx, 12(%eax)
-; X86-NOSSE-NEXT: movl %edx, 8(%eax)
-; X86-NOSSE-NEXT: movl %edx, 4(%eax)
-; X86-NOSSE-NEXT: movl %ecx, (%eax)
+; X86-NOSSE-NEXT: imull $16843009, %eax, %edx # imm = 0x1010101
+; X86-NOSSE-NEXT: shrl $24, %edx
+; X86-NOSSE-NEXT: addl %ecx, %edx
+; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
+; X86-NOSSE-NEXT: addl %edi, %edx
+; X86-NOSSE-NEXT: xorl %ecx, %ecx
+; X86-NOSSE-NEXT: movl %ecx, 12(%eax)
+; X86-NOSSE-NEXT: movl %ecx, 8(%eax)
+; X86-NOSSE-NEXT: movl %ecx, 4(%eax)
+; X86-NOSSE-NEXT: movl %edx, (%eax)
; X86-NOSSE-NEXT: popl %esi
; X86-NOSSE-NEXT: popl %edi
; X86-NOSSE-NEXT: popl %ebx
+; X86-NOSSE-NEXT: popl %ebp
; X86-NOSSE-NEXT: retl $4
;
; X64-LABEL: cnt128_pgso:
diff --git a/llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll b/llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
index c0bfb71e189cd5a..e9448a800fd9597 100644
--- a/llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
+++ b/llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
@@ -81,8 +81,8 @@ define ptr @SyFgets(ptr %line, i64 %length, i64 %fid) {
; CHECK-NEXT: imulq $1040, %rdx, %rax ## imm = 0x410
; CHECK-NEXT: movq _syBuf at GOTPCREL(%rip), %rcx
; CHECK-NEXT: leaq 8(%rcx,%rax), %rdx
-; CHECK-NEXT: movq _syCTRO at GOTPCREL(%rip), %rax
; CHECK-NEXT: movl $1, %r13d
+; CHECK-NEXT: movq _syCTRO at GOTPCREL(%rip), %rax
; CHECK-NEXT: movb $1, %cl
; CHECK-NEXT: .p2align 4, 0x90
; CHECK-NEXT: LBB0_9: ## %do.body
diff --git a/llvm/test/CodeGen/X86/remat-phys-dead.ll b/llvm/test/CodeGen/X86/remat-phys-dead.ll
index 9a0a219869353d8..09f2e4320b6d39d 100644
--- a/llvm/test/CodeGen/X86/remat-phys-dead.ll
+++ b/llvm/test/CodeGen/X86/remat-phys-dead.ll
@@ -18,6 +18,6 @@ define i8 @test_remat() {
define i32 @test_remat32() {
ret i32 0
; CHECK: REGISTER COALESCER
-; CHECK: $eax = MOV32r0 implicit-def dead $eflags
+; CHECK: Remat: $eax = MOV32r0 implicit-def dead $eflags
}
diff --git a/llvm/test/CodeGen/X86/select_const_i128.ll b/llvm/test/CodeGen/X86/select_const_i128.ll
index 503cf13ec413157..af38bd6ce9e3eff 100644
--- a/llvm/test/CodeGen/X86/select_const_i128.ll
+++ b/llvm/test/CodeGen/X86/select_const_i128.ll
@@ -9,9 +9,10 @@ define i128 @select_eq_i128(ptr %a) {
; CHECK-NEXT: xorl %eax, %eax
; CHECK-NEXT: ptest %xmm0, %xmm0
; CHECK-NEXT: setne %al
+; CHECK-NEXT: xorl %ecx, %ecx
; CHECK-NEXT: addq $-1, %rax
; CHECK-NEXT: movabsq $9223372036854775807, %rdx # imm = 0x7FFFFFFFFFFFFFFF
-; CHECK-NEXT: adcq $0, %rdx
+; CHECK-NEXT: adcq %rcx, %rdx
; CHECK-NEXT: retq
%1 = load i128, ptr %a, align 16
%cmp = icmp eq i128 %1, 1
diff --git a/llvm/test/CodeGen/X86/shrink_vmul.ll b/llvm/test/CodeGen/X86/shrink_vmul.ll
index 3d80c1554b6c3c2..524ecf2aece7e76 100644
--- a/llvm/test/CodeGen/X86/shrink_vmul.ll
+++ b/llvm/test/CodeGen/X86/shrink_vmul.ll
@@ -1986,29 +1986,29 @@ define void @PR34947(ptr %p0, ptr %p1) nounwind {
; X86-SSE-NEXT: movdqa (%eax), %xmm3
; X86-SSE-NEXT: movdqa (%ecx), %xmm0
; X86-SSE-NEXT: movdqa 16(%ecx), %xmm1
-; X86-SSE-NEXT: pxor %xmm5, %xmm5
+; X86-SSE-NEXT: pxor %xmm4, %xmm4
; X86-SSE-NEXT: movdqa %xmm3, %xmm2
; X86-SSE-NEXT: pextrw $7, %xmm3, %eax
; X86-SSE-NEXT: pextrw $4, %xmm3, %edi
; X86-SSE-NEXT: pextrw $0, %xmm3, %ebp
; X86-SSE-NEXT: pextrw $1, %xmm3, %esi
; X86-SSE-NEXT: pextrw $3, %xmm3, %ebx
-; X86-SSE-NEXT: movdqa %xmm3, %xmm4
-; X86-SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]
-; X86-SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm5[4],xmm2[5],xmm5[5],xmm2[6],xmm5[6],xmm2[7],xmm5[7]
+; X86-SSE-NEXT: movdqa %xmm3, %xmm5
+; X86-SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]
+; X86-SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]
; X86-SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[3,3,3,3]
; X86-SSE-NEXT: movd %xmm3, %ecx
; X86-SSE-NEXT: xorl %edx, %edx
; X86-SSE-NEXT: divl %ecx
; X86-SSE-NEXT: movd %edx, %xmm3
-; X86-SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm2[2,3,2,3]
-; X86-SSE-NEXT: movd %xmm5, %eax
-; X86-SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm1[2,3,2,3]
-; X86-SSE-NEXT: movd %xmm5, %ecx
+; X86-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm2[2,3,2,3]
+; X86-SSE-NEXT: movd %xmm4, %eax
+; X86-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm1[2,3,2,3]
+; X86-SSE-NEXT: movd %xmm4, %ecx
; X86-SSE-NEXT: xorl %edx, %edx
; X86-SSE-NEXT: divl %ecx
-; X86-SSE-NEXT: movd %edx, %xmm5
-; X86-SSE-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
+; X86-SSE-NEXT: movd %edx, %xmm4
+; X86-SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
; X86-SSE-NEXT: movl %edi, %eax
; X86-SSE-NEXT: xorl %edx, %edx
; X86-SSE-NEXT: movl {{[0-9]+}}(%esp), %edi
@@ -2022,7 +2022,7 @@ define void @PR34947(ptr %p0, ptr %p1) nounwind {
; X86-SSE-NEXT: divl %ecx
; X86-SSE-NEXT: movd %edx, %xmm1
; X86-SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
-; X86-SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm5[0]
+; X86-SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm4[0]
; X86-SSE-NEXT: movl %ebp, %eax
; X86-SSE-NEXT: xorl %edx, %edx
; X86-SSE-NEXT: divl (%edi)
@@ -2040,7 +2040,7 @@ define void @PR34947(ptr %p0, ptr %p1) nounwind {
; X86-SSE-NEXT: xorl %edx, %edx
; X86-SSE-NEXT: divl %ecx
; X86-SSE-NEXT: movd %edx, %xmm2
-; X86-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]
+; X86-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm5[2,3,2,3]
; X86-SSE-NEXT: movd %xmm4, %eax
; X86-SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
; X86-SSE-NEXT: movd %xmm0, %ecx
@@ -2207,29 +2207,29 @@ define void @PR34947(ptr %p0, ptr %p1) nounwind {
; X64-SSE-NEXT: movdqa (%rdi), %xmm3
; X64-SSE-NEXT: movdqa (%rsi), %xmm0
; X64-SSE-NEXT: movdqa 16(%rsi), %xmm1
-; X64-SSE-NEXT: pxor %xmm5, %xmm5
+; X64-SSE-NEXT: pxor %xmm4, %xmm4
; X64-SSE-NEXT: movdqa %xmm3, %xmm2
; X64-SSE-NEXT: pextrw $7, %xmm3, %eax
; X64-SSE-NEXT: pextrw $4, %xmm3, %r8d
; X64-SSE-NEXT: pextrw $0, %xmm3, %r10d
; X64-SSE-NEXT: pextrw $1, %xmm3, %edi
; X64-SSE-NEXT: pextrw $3, %xmm3, %r9d
-; X64-SSE-NEXT: movdqa %xmm3, %xmm4
-; X64-SSE-NEXT: punpcklwd {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1],xmm4[2],xmm5[2],xmm4[3],xmm5[3]
-; X64-SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm5[4],xmm2[5],xmm5[5],xmm2[6],xmm5[6],xmm2[7],xmm5[7]
+; X64-SSE-NEXT: movdqa %xmm3, %xmm5
+; X64-SSE-NEXT: punpcklwd {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1],xmm5[2],xmm4[2],xmm5[3],xmm4[3]
+; X64-SSE-NEXT: punpckhwd {{.*#+}} xmm2 = xmm2[4],xmm4[4],xmm2[5],xmm4[5],xmm2[6],xmm4[6],xmm2[7],xmm4[7]
; X64-SSE-NEXT: pshufd {{.*#+}} xmm3 = xmm1[3,3,3,3]
; X64-SSE-NEXT: movd %xmm3, %r11d
; X64-SSE-NEXT: xorl %edx, %edx
; X64-SSE-NEXT: divl %r11d
; X64-SSE-NEXT: movd %edx, %xmm3
-; X64-SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm2[2,3,2,3]
-; X64-SSE-NEXT: movd %xmm5, %eax
-; X64-SSE-NEXT: pshufd {{.*#+}} xmm5 = xmm1[2,3,2,3]
-; X64-SSE-NEXT: movd %xmm5, %r11d
+; X64-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm2[2,3,2,3]
+; X64-SSE-NEXT: movd %xmm4, %eax
+; X64-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm1[2,3,2,3]
+; X64-SSE-NEXT: movd %xmm4, %r11d
; X64-SSE-NEXT: xorl %edx, %edx
; X64-SSE-NEXT: divl %r11d
-; X64-SSE-NEXT: movd %edx, %xmm5
-; X64-SSE-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
+; X64-SSE-NEXT: movd %edx, %xmm4
+; X64-SSE-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
; X64-SSE-NEXT: movl %r8d, %eax
; X64-SSE-NEXT: xorl %edx, %edx
; X64-SSE-NEXT: divl 16(%rsi)
@@ -2242,7 +2242,7 @@ define void @PR34947(ptr %p0, ptr %p1) nounwind {
; X64-SSE-NEXT: divl %r8d
; X64-SSE-NEXT: movd %edx, %xmm1
; X64-SSE-NEXT: punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
-; X64-SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm5[0]
+; X64-SSE-NEXT: punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm4[0]
; X64-SSE-NEXT: movl %r10d, %eax
; X64-SSE-NEXT: xorl %edx, %edx
; X64-SSE-NEXT: divl (%rsi)
@@ -2260,7 +2260,7 @@ define void @PR34947(ptr %p0, ptr %p1) nounwind {
; X64-SSE-NEXT: xorl %edx, %edx
; X64-SSE-NEXT: divl %edi
; X64-SSE-NEXT: movd %edx, %xmm2
-; X64-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]
+; X64-SSE-NEXT: pshufd {{.*#+}} xmm4 = xmm5[2,3,2,3]
; X64-SSE-NEXT: movd %xmm4, %eax
; X64-SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
; X64-SSE-NEXT: movd %xmm0, %edi
diff --git a/llvm/test/CodeGen/X86/speculative-load-hardening-call-and-ret.ll b/llvm/test/CodeGen/X86/speculative-load-hardening-call-and-ret.ll
index 064812323d177fa..3f2226aec2d3fa8 100644
--- a/llvm/test/CodeGen/X86/speculative-load-hardening-call-and-ret.ll
+++ b/llvm/test/CodeGen/X86/speculative-load-hardening-call-and-ret.ll
@@ -283,14 +283,15 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-NOPIC-NEXT: pushq %rbp
; X64-NOPIC-NEXT: pushq %r15
; X64-NOPIC-NEXT: pushq %r14
+; X64-NOPIC-NEXT: pushq %r13
; X64-NOPIC-NEXT: pushq %r12
; X64-NOPIC-NEXT: pushq %rbx
-; X64-NOPIC-NEXT: subq $16, %rsp
+; X64-NOPIC-NEXT: subq $24, %rsp
; X64-NOPIC-NEXT: movq %rsp, %rax
; X64-NOPIC-NEXT: movq %rdi, %rbx
; X64-NOPIC-NEXT: movq $-1, %r15
; X64-NOPIC-NEXT: sarq $63, %rax
-; X64-NOPIC-NEXT: movq %rsp, %r14
+; X64-NOPIC-NEXT: leaq {{[0-9]+}}(%rsp), %r14
; X64-NOPIC-NEXT: shlq $47, %rax
; X64-NOPIC-NEXT: movq %r14, %rdi
; X64-NOPIC-NEXT: orq %rax, %rsp
@@ -301,23 +302,24 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-NOPIC-NEXT: sarq $63, %rax
; X64-NOPIC-NEXT: cmpq $.Lslh_ret_addr4, %r12
; X64-NOPIC-NEXT: cmovneq %r15, %rax
-; X64-NOPIC-NEXT: movl (%rbx), %ebp
+; X64-NOPIC-NEXT: movl (%rbx), %r12d
+; X64-NOPIC-NEXT: movl $42, %ebp
; X64-NOPIC-NEXT: shlq $47, %rax
; X64-NOPIC-NEXT: movq %r14, %rdi
-; X64-NOPIC-NEXT: movl $42, %esi
+; X64-NOPIC-NEXT: movl %ebp, %esi
; X64-NOPIC-NEXT: orq %rax, %rsp
-; X64-NOPIC-NEXT: movq $.Lslh_ret_addr5, %r12
+; X64-NOPIC-NEXT: movq $.Lslh_ret_addr5, %r13
; X64-NOPIC-NEXT: callq sigsetjmp at PLT
; X64-NOPIC-NEXT: .Lslh_ret_addr5:
; X64-NOPIC-NEXT: movq %rsp, %rax
; X64-NOPIC-NEXT: sarq $63, %rax
-; X64-NOPIC-NEXT: cmpq $.Lslh_ret_addr5, %r12
+; X64-NOPIC-NEXT: cmpq $.Lslh_ret_addr5, %r13
; X64-NOPIC-NEXT: cmovneq %r15, %rax
-; X64-NOPIC-NEXT: addl (%rbx), %ebp
+; X64-NOPIC-NEXT: addl (%rbx), %r12d
; X64-NOPIC-NEXT: shlq $47, %rax
; X64-NOPIC-NEXT: movq %r14, %rdi
; X64-NOPIC-NEXT: movq %r14, %rsi
-; X64-NOPIC-NEXT: movl $42, %edx
+; X64-NOPIC-NEXT: movl %ebp, %edx
; X64-NOPIC-NEXT: orq %rax, %rsp
; X64-NOPIC-NEXT: movq $.Lslh_ret_addr6, %r14
; X64-NOPIC-NEXT: callq __sigsetjmp at PLT
@@ -327,14 +329,15 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-NOPIC-NEXT: cmpq $.Lslh_ret_addr6, %r14
; X64-NOPIC-NEXT: movq %rax, %rcx
; X64-NOPIC-NEXT: cmovneq %r15, %rcx
-; X64-NOPIC-NEXT: addl (%rbx), %ebp
-; X64-NOPIC-NEXT: movl %ebp, %eax
+; X64-NOPIC-NEXT: addl (%rbx), %r12d
+; X64-NOPIC-NEXT: movl %r12d, %eax
; X64-NOPIC-NEXT: orl %ecx, %eax
; X64-NOPIC-NEXT: shlq $47, %rcx
; X64-NOPIC-NEXT: orq %rcx, %rsp
-; X64-NOPIC-NEXT: addq $16, %rsp
+; X64-NOPIC-NEXT: addq $24, %rsp
; X64-NOPIC-NEXT: popq %rbx
; X64-NOPIC-NEXT: popq %r12
+; X64-NOPIC-NEXT: popq %r13
; X64-NOPIC-NEXT: popq %r14
; X64-NOPIC-NEXT: popq %r15
; X64-NOPIC-NEXT: popq %rbp
@@ -345,14 +348,15 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-NOPIC-MCM-NEXT: pushq %rbp
; X64-NOPIC-MCM-NEXT: pushq %r15
; X64-NOPIC-MCM-NEXT: pushq %r14
+; X64-NOPIC-MCM-NEXT: pushq %r13
; X64-NOPIC-MCM-NEXT: pushq %r12
; X64-NOPIC-MCM-NEXT: pushq %rbx
-; X64-NOPIC-MCM-NEXT: subq $16, %rsp
+; X64-NOPIC-MCM-NEXT: subq $24, %rsp
; X64-NOPIC-MCM-NEXT: movq %rsp, %rax
; X64-NOPIC-MCM-NEXT: movq %rdi, %rbx
; X64-NOPIC-MCM-NEXT: movq $-1, %r15
; X64-NOPIC-MCM-NEXT: sarq $63, %rax
-; X64-NOPIC-MCM-NEXT: movq %rsp, %r14
+; X64-NOPIC-MCM-NEXT: leaq {{[0-9]+}}(%rsp), %r14
; X64-NOPIC-MCM-NEXT: shlq $47, %rax
; X64-NOPIC-MCM-NEXT: movq %r14, %rdi
; X64-NOPIC-MCM-NEXT: orq %rax, %rsp
@@ -364,24 +368,25 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-NOPIC-MCM-NEXT: leaq .Lslh_ret_addr4(%rip), %rcx
; X64-NOPIC-MCM-NEXT: cmpq %rcx, %r12
; X64-NOPIC-MCM-NEXT: cmovneq %r15, %rax
-; X64-NOPIC-MCM-NEXT: movl (%rbx), %ebp
+; X64-NOPIC-MCM-NEXT: movl (%rbx), %r12d
+; X64-NOPIC-MCM-NEXT: movl $42, %ebp
; X64-NOPIC-MCM-NEXT: shlq $47, %rax
; X64-NOPIC-MCM-NEXT: movq %r14, %rdi
-; X64-NOPIC-MCM-NEXT: movl $42, %esi
+; X64-NOPIC-MCM-NEXT: movl %ebp, %esi
; X64-NOPIC-MCM-NEXT: orq %rax, %rsp
-; X64-NOPIC-MCM-NEXT: leaq .Lslh_ret_addr5(%rip), %r12
+; X64-NOPIC-MCM-NEXT: leaq .Lslh_ret_addr5(%rip), %r13
; X64-NOPIC-MCM-NEXT: callq sigsetjmp at PLT
; X64-NOPIC-MCM-NEXT: .Lslh_ret_addr5:
; X64-NOPIC-MCM-NEXT: movq %rsp, %rax
; X64-NOPIC-MCM-NEXT: sarq $63, %rax
; X64-NOPIC-MCM-NEXT: leaq .Lslh_ret_addr5(%rip), %rcx
-; X64-NOPIC-MCM-NEXT: cmpq %rcx, %r12
+; X64-NOPIC-MCM-NEXT: cmpq %rcx, %r13
; X64-NOPIC-MCM-NEXT: cmovneq %r15, %rax
-; X64-NOPIC-MCM-NEXT: addl (%rbx), %ebp
+; X64-NOPIC-MCM-NEXT: addl (%rbx), %r12d
; X64-NOPIC-MCM-NEXT: shlq $47, %rax
; X64-NOPIC-MCM-NEXT: movq %r14, %rdi
; X64-NOPIC-MCM-NEXT: movq %r14, %rsi
-; X64-NOPIC-MCM-NEXT: movl $42, %edx
+; X64-NOPIC-MCM-NEXT: movl %ebp, %edx
; X64-NOPIC-MCM-NEXT: orq %rax, %rsp
; X64-NOPIC-MCM-NEXT: leaq .Lslh_ret_addr6(%rip), %r14
; X64-NOPIC-MCM-NEXT: callq __sigsetjmp at PLT
@@ -392,14 +397,15 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-NOPIC-MCM-NEXT: cmpq %rcx, %r14
; X64-NOPIC-MCM-NEXT: movq %rax, %rcx
; X64-NOPIC-MCM-NEXT: cmovneq %r15, %rcx
-; X64-NOPIC-MCM-NEXT: addl (%rbx), %ebp
-; X64-NOPIC-MCM-NEXT: movl %ebp, %eax
+; X64-NOPIC-MCM-NEXT: addl (%rbx), %r12d
+; X64-NOPIC-MCM-NEXT: movl %r12d, %eax
; X64-NOPIC-MCM-NEXT: orl %ecx, %eax
; X64-NOPIC-MCM-NEXT: shlq $47, %rcx
; X64-NOPIC-MCM-NEXT: orq %rcx, %rsp
-; X64-NOPIC-MCM-NEXT: addq $16, %rsp
+; X64-NOPIC-MCM-NEXT: addq $24, %rsp
; X64-NOPIC-MCM-NEXT: popq %rbx
; X64-NOPIC-MCM-NEXT: popq %r12
+; X64-NOPIC-MCM-NEXT: popq %r13
; X64-NOPIC-MCM-NEXT: popq %r14
; X64-NOPIC-MCM-NEXT: popq %r15
; X64-NOPIC-MCM-NEXT: popq %rbp
@@ -410,14 +416,15 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-PIC-NEXT: pushq %rbp
; X64-PIC-NEXT: pushq %r15
; X64-PIC-NEXT: pushq %r14
+; X64-PIC-NEXT: pushq %r13
; X64-PIC-NEXT: pushq %r12
; X64-PIC-NEXT: pushq %rbx
-; X64-PIC-NEXT: subq $16, %rsp
+; X64-PIC-NEXT: subq $24, %rsp
; X64-PIC-NEXT: movq %rsp, %rax
; X64-PIC-NEXT: movq %rdi, %rbx
; X64-PIC-NEXT: movq $-1, %r15
; X64-PIC-NEXT: sarq $63, %rax
-; X64-PIC-NEXT: movq %rsp, %r14
+; X64-PIC-NEXT: leaq {{[0-9]+}}(%rsp), %r14
; X64-PIC-NEXT: shlq $47, %rax
; X64-PIC-NEXT: movq %r14, %rdi
; X64-PIC-NEXT: orq %rax, %rsp
@@ -429,24 +436,25 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-PIC-NEXT: leaq .Lslh_ret_addr4(%rip), %rcx
; X64-PIC-NEXT: cmpq %rcx, %r12
; X64-PIC-NEXT: cmovneq %r15, %rax
-; X64-PIC-NEXT: movl (%rbx), %ebp
+; X64-PIC-NEXT: movl (%rbx), %r12d
+; X64-PIC-NEXT: movl $42, %ebp
; X64-PIC-NEXT: shlq $47, %rax
; X64-PIC-NEXT: movq %r14, %rdi
-; X64-PIC-NEXT: movl $42, %esi
+; X64-PIC-NEXT: movl %ebp, %esi
; X64-PIC-NEXT: orq %rax, %rsp
-; X64-PIC-NEXT: leaq .Lslh_ret_addr5(%rip), %r12
+; X64-PIC-NEXT: leaq .Lslh_ret_addr5(%rip), %r13
; X64-PIC-NEXT: callq sigsetjmp at PLT
; X64-PIC-NEXT: .Lslh_ret_addr5:
; X64-PIC-NEXT: movq %rsp, %rax
; X64-PIC-NEXT: sarq $63, %rax
; X64-PIC-NEXT: leaq .Lslh_ret_addr5(%rip), %rcx
-; X64-PIC-NEXT: cmpq %rcx, %r12
+; X64-PIC-NEXT: cmpq %rcx, %r13
; X64-PIC-NEXT: cmovneq %r15, %rax
-; X64-PIC-NEXT: addl (%rbx), %ebp
+; X64-PIC-NEXT: addl (%rbx), %r12d
; X64-PIC-NEXT: shlq $47, %rax
; X64-PIC-NEXT: movq %r14, %rdi
; X64-PIC-NEXT: movq %r14, %rsi
-; X64-PIC-NEXT: movl $42, %edx
+; X64-PIC-NEXT: movl %ebp, %edx
; X64-PIC-NEXT: orq %rax, %rsp
; X64-PIC-NEXT: leaq .Lslh_ret_addr6(%rip), %r14
; X64-PIC-NEXT: callq __sigsetjmp at PLT
@@ -457,14 +465,15 @@ define i32 @test_call_setjmp(ptr%ptr) nounwind {
; X64-PIC-NEXT: cmpq %rcx, %r14
; X64-PIC-NEXT: movq %rax, %rcx
; X64-PIC-NEXT: cmovneq %r15, %rcx
-; X64-PIC-NEXT: addl (%rbx), %ebp
-; X64-PIC-NEXT: movl %ebp, %eax
+; X64-PIC-NEXT: addl (%rbx), %r12d
+; X64-PIC-NEXT: movl %r12d, %eax
; X64-PIC-NEXT: orl %ecx, %eax
; X64-PIC-NEXT: shlq $47, %rcx
; X64-PIC-NEXT: orq %rcx, %rsp
-; X64-PIC-NEXT: addq $16, %rsp
+; X64-PIC-NEXT: addq $24, %rsp
; X64-PIC-NEXT: popq %rbx
; X64-PIC-NEXT: popq %r12
+; X64-PIC-NEXT: popq %r13
; X64-PIC-NEXT: popq %r14
; X64-PIC-NEXT: popq %r15
; X64-PIC-NEXT: popq %rbp
diff --git a/llvm/test/CodeGen/X86/swifterror.ll b/llvm/test/CodeGen/X86/swifterror.ll
index 5814146a5461339..6d77e04504e2d9e 100644
--- a/llvm/test/CodeGen/X86/swifterror.ll
+++ b/llvm/test/CodeGen/X86/swifterror.ll
@@ -1566,11 +1566,11 @@ define swiftcc { i64, i64, i64, i64} @params_and_return_in_reg(i64, i64, i64, i6
; CHECK-APPLE-NEXT: .cfi_offset %r14, -32
; CHECK-APPLE-NEXT: .cfi_offset %r15, -24
; CHECK-APPLE-NEXT: .cfi_offset %rbp, -16
-; CHECK-APPLE-NEXT: movq %r12, (%rsp) ## 8-byte Spill
-; CHECK-APPLE-NEXT: movq %r13, {{[-0-9]+}}(%r{{[sb]}}p) ## 8-byte Spill
+; CHECK-APPLE-NEXT: movq %r12, %rbx
+; CHECK-APPLE-NEXT: movq %r13, (%rsp) ## 8-byte Spill
; CHECK-APPLE-NEXT: movq %r9, {{[-0-9]+}}(%r{{[sb]}}p) ## 8-byte Spill
; CHECK-APPLE-NEXT: movq %r8, {{[-0-9]+}}(%r{{[sb]}}p) ## 8-byte Spill
-; CHECK-APPLE-NEXT: movq %rcx, %rbx
+; CHECK-APPLE-NEXT: movq %rcx, {{[-0-9]+}}(%r{{[sb]}}p) ## 8-byte Spill
; CHECK-APPLE-NEXT: movq %rdx, %r14
; CHECK-APPLE-NEXT: movq %rsi, %r15
; CHECK-APPLE-NEXT: movq %rdi, %rbp
@@ -1587,16 +1587,16 @@ define swiftcc { i64, i64, i64, i64} @params_and_return_in_reg(i64, i64, i64, i6
; CHECK-APPLE-NEXT: movq %rbp, %rdi
; CHECK-APPLE-NEXT: movq %r15, %rsi
; CHECK-APPLE-NEXT: movq %r14, %rdx
-; CHECK-APPLE-NEXT: movq %rbx, %rcx
+; CHECK-APPLE-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %rcx ## 8-byte Reload
; CHECK-APPLE-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %r8 ## 8-byte Reload
; CHECK-APPLE-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %r9 ## 8-byte Reload
-; CHECK-APPLE-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %r13 ## 8-byte Reload
-; CHECK-APPLE-NEXT: movq (%rsp), %r12 ## 8-byte Reload
+; CHECK-APPLE-NEXT: movq (%rsp), %r13 ## 8-byte Reload
+; CHECK-APPLE-NEXT: movq %rbx, %r12
; CHECK-APPLE-NEXT: callq _params_and_return_in_reg2
-; CHECK-APPLE-NEXT: movq %rax, %rbx
-; CHECK-APPLE-NEXT: movq %rdx, %r14
-; CHECK-APPLE-NEXT: movq %rcx, %r15
-; CHECK-APPLE-NEXT: movq %r8, %rbp
+; CHECK-APPLE-NEXT: movq %rax, %r14
+; CHECK-APPLE-NEXT: movq %rdx, %r15
+; CHECK-APPLE-NEXT: movq %rcx, %rbp
+; CHECK-APPLE-NEXT: movq %r8, %rbx
; CHECK-APPLE-NEXT: movq %r12, (%rsp) ## 8-byte Spill
; CHECK-APPLE-NEXT: movl $1, %edi
; CHECK-APPLE-NEXT: movl $2, %esi
@@ -1607,10 +1607,10 @@ define swiftcc { i64, i64, i64, i64} @params_and_return_in_reg(i64, i64, i64, i6
; CHECK-APPLE-NEXT: xorl %r13d, %r13d
; CHECK-APPLE-NEXT: movq {{[-0-9]+}}(%r{{[sb]}}p), %r12 ## 8-byte Reload
; CHECK-APPLE-NEXT: callq _params_in_reg2
-; CHECK-APPLE-NEXT: movq %rbx, %rax
-; CHECK-APPLE-NEXT: movq %r14, %rdx
-; CHECK-APPLE-NEXT: movq %r15, %rcx
-; CHECK-APPLE-NEXT: movq %rbp, %r8
+; CHECK-APPLE-NEXT: movq %r14, %rax
+; CHECK-APPLE-NEXT: movq %r15, %rdx
+; CHECK-APPLE-NEXT: movq %rbp, %rcx
+; CHECK-APPLE-NEXT: movq %rbx, %r8
; CHECK-APPLE-NEXT: movq (%rsp), %r12 ## 8-byte Reload
; CHECK-APPLE-NEXT: addq $48, %rsp
; CHECK-APPLE-NEXT: popq %rbx
diff --git a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
index 23c37af1db2f7c9..8f46209689a1da4 100644
--- a/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
+++ b/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
@@ -173,14 +173,13 @@ define <8 x i32> @PR46393(<8 x i16> %a0, i8 %a1) {
define i64 @PR55050() {
; X86-LABEL: PR55050:
; X86: # %bb.0: # %entry
-; X86-NEXT: xorl %edx, %edx
; X86-NEXT: xorl %eax, %eax
-; X86-NEXT: testb %dl, %dl
+; X86-NEXT: testb %al, %al
; X86-NEXT: jne .LBB10_2
; X86-NEXT: # %bb.1: # %if
; X86-NEXT: xorl %eax, %eax
-; X86-NEXT: xorl %edx, %edx
; X86-NEXT: .LBB10_2: # %exit
+; X86-NEXT: movl %eax, %edx
; X86-NEXT: retl
;
; X64-LABEL: PR55050:
More information about the llvm-commits
mailing list