brintos

brintos / llvm-project-archived public Read only

0
0
Text · 192.6 KiB · 93968b7 Raw
6111 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=powerpc64le-linux-gnu -mcpu=pwr8 -verify-machineinstrs \3; RUN:   < %s | FileCheck %s4; RUN: llc -mtriple=powerpc-aix- -mcpu=pwr7 -verify-machineinstrs \5; RUN:   < %s | FileCheck %s --check-prefix=AIX326; ModuleID = '../clang/test/CodeGen/Atomics.c'7 8@sc = dso_local global i8 0, align 19@uc = dso_local global i8 0, align 110@ss = dso_local global i16 0, align 211@us = dso_local global i16 0, align 212@si = dso_local global i32 0, align 413@ui = dso_local global i32 0, align 414@sll = dso_local global i64 0, align 815@ull = dso_local global i64 0, align 816@u128 = dso_local global i128 0, align 1617@s128 = dso_local global i128 0, align 1618 19define dso_local void @test_op_ignore() local_unnamed_addr #0 {20; CHECK-LABEL: test_op_ignore:21; CHECK:       # %bb.0: # %entry22; CHECK-NEXT:    addis 3, 2, sc@toc@ha23; CHECK-NEXT:    std 26, -48(1) # 8-byte Folded Spill24; CHECK-NEXT:    std 27, -40(1) # 8-byte Folded Spill25; CHECK-NEXT:    addi 4, 3, sc@toc@l26; CHECK-NEXT:    std 28, -32(1) # 8-byte Folded Spill27; CHECK-NEXT:    std 29, -24(1) # 8-byte Folded Spill28; CHECK-NEXT:    std 30, -16(1) # 8-byte Folded Spill29; CHECK-NEXT:    sync30; CHECK-NEXT:    li 3, 131; CHECK-NEXT:  .LBB0_1: # %entry32; CHECK-NEXT:    #33; CHECK-NEXT:    lbarx 5, 0, 434; CHECK-NEXT:    addi 5, 5, 135; CHECK-NEXT:    stbcx. 5, 0, 436; CHECK-NEXT:    bne- 0, .LBB0_137; CHECK-NEXT:  # %bb.2: # %entry38; CHECK-NEXT:    addis 5, 2, uc@toc@ha39; CHECK-NEXT:    lwsync40; CHECK-NEXT:    sync41; CHECK-NEXT:    addi 5, 5, uc@toc@l42; CHECK-NEXT:  .LBB0_3: # %entry43; CHECK-NEXT:    #44; CHECK-NEXT:    lbarx 6, 0, 545; CHECK-NEXT:    addi 6, 6, 146; CHECK-NEXT:    stbcx. 6, 0, 547; CHECK-NEXT:    bne- 0, .LBB0_348; CHECK-NEXT:  # %bb.4: # %entry49; CHECK-NEXT:    addis 6, 2, ss@toc@ha50; CHECK-NEXT:    lwsync51; CHECK-NEXT:    sync52; CHECK-NEXT:    addi 6, 6, ss@toc@l53; CHECK-NEXT:  .LBB0_5: # %entry54; CHECK-NEXT:    #55; CHECK-NEXT:    lharx 7, 0, 656; CHECK-NEXT:    addi 7, 7, 157; CHECK-NEXT:    sthcx. 7, 0, 658; CHECK-NEXT:    bne- 0, .LBB0_559; CHECK-NEXT:  # %bb.6: # %entry60; CHECK-NEXT:    addis 7, 2, us@toc@ha61; CHECK-NEXT:    lwsync62; CHECK-NEXT:    sync63; CHECK-NEXT:    addi 8, 7, us@toc@l64; CHECK-NEXT:  .LBB0_7: # %entry65; CHECK-NEXT:    #66; CHECK-NEXT:    lharx 7, 0, 867; CHECK-NEXT:    addi 7, 7, 168; CHECK-NEXT:    sthcx. 7, 0, 869; CHECK-NEXT:    bne- 0, .LBB0_770; CHECK-NEXT:  # %bb.8: # %entry71; CHECK-NEXT:    addis 7, 2, si@toc@ha72; CHECK-NEXT:    lwsync73; CHECK-NEXT:    sync74; CHECK-NEXT:    addi 9, 7, si@toc@l75; CHECK-NEXT:  .LBB0_9: # %entry76; CHECK-NEXT:    #77; CHECK-NEXT:    lwarx 7, 0, 978; CHECK-NEXT:    addi 7, 7, 179; CHECK-NEXT:    stwcx. 7, 0, 980; CHECK-NEXT:    bne- 0, .LBB0_981; CHECK-NEXT:  # %bb.10: # %entry82; CHECK-NEXT:    addis 7, 2, ui@toc@ha83; CHECK-NEXT:    lwsync84; CHECK-NEXT:    sync85; CHECK-NEXT:    addi 10, 7, ui@toc@l86; CHECK-NEXT:  .LBB0_11: # %entry87; CHECK-NEXT:    #88; CHECK-NEXT:    lwarx 7, 0, 1089; CHECK-NEXT:    addi 7, 7, 190; CHECK-NEXT:    stwcx. 7, 0, 1091; CHECK-NEXT:    bne- 0, .LBB0_1192; CHECK-NEXT:  # %bb.12: # %entry93; CHECK-NEXT:    addis 7, 2, sll@toc@ha94; CHECK-NEXT:    lwsync95; CHECK-NEXT:    sync96; CHECK-NEXT:    addi 11, 7, sll@toc@l97; CHECK-NEXT:    li 7, 198; CHECK-NEXT:  .LBB0_13: # %entry99; CHECK-NEXT:    #100; CHECK-NEXT:    ldarx 12, 0, 11101; CHECK-NEXT:    addi 12, 12, 1102; CHECK-NEXT:    stdcx. 12, 0, 11103; CHECK-NEXT:    bne- 0, .LBB0_13104; CHECK-NEXT:  # %bb.14: # %entry105; CHECK-NEXT:    addis 12, 2, ull@toc@ha106; CHECK-NEXT:    lwsync107; CHECK-NEXT:    sync108; CHECK-NEXT:    addi 12, 12, ull@toc@l109; CHECK-NEXT:  .LBB0_15: # %entry110; CHECK-NEXT:    #111; CHECK-NEXT:    ldarx 30, 0, 12112; CHECK-NEXT:    addi 0, 30, 1113; CHECK-NEXT:    stdcx. 0, 0, 12114; CHECK-NEXT:    bne- 0, .LBB0_15115; CHECK-NEXT:  # %bb.16: # %entry116; CHECK-NEXT:    lwsync117; CHECK-NEXT:    sync118; CHECK-NEXT:  .LBB0_17: # %entry119; CHECK-NEXT:    #120; CHECK-NEXT:    lbarx 0, 0, 4121; CHECK-NEXT:    sub 0, 0, 3122; CHECK-NEXT:    stbcx. 0, 0, 4123; CHECK-NEXT:    bne- 0, .LBB0_17124; CHECK-NEXT:  # %bb.18: # %entry125; CHECK-NEXT:    lwsync126; CHECK-NEXT:    sync127; CHECK-NEXT:  .LBB0_19: # %entry128; CHECK-NEXT:    #129; CHECK-NEXT:    lbarx 0, 0, 5130; CHECK-NEXT:    sub 0, 0, 3131; CHECK-NEXT:    stbcx. 0, 0, 5132; CHECK-NEXT:    bne- 0, .LBB0_19133; CHECK-NEXT:  # %bb.20: # %entry134; CHECK-NEXT:    lwsync135; CHECK-NEXT:    sync136; CHECK-NEXT:  .LBB0_21: # %entry137; CHECK-NEXT:    #138; CHECK-NEXT:    lharx 0, 0, 6139; CHECK-NEXT:    sub 0, 0, 3140; CHECK-NEXT:    sthcx. 0, 0, 6141; CHECK-NEXT:    bne- 0, .LBB0_21142; CHECK-NEXT:  # %bb.22: # %entry143; CHECK-NEXT:    lwsync144; CHECK-NEXT:    sync145; CHECK-NEXT:  .LBB0_23: # %entry146; CHECK-NEXT:    #147; CHECK-NEXT:    lharx 0, 0, 8148; CHECK-NEXT:    sub 0, 0, 3149; CHECK-NEXT:    sthcx. 0, 0, 8150; CHECK-NEXT:    bne- 0, .LBB0_23151; CHECK-NEXT:  # %bb.24: # %entry152; CHECK-NEXT:    lwsync153; CHECK-NEXT:    sync154; CHECK-NEXT:  .LBB0_25: # %entry155; CHECK-NEXT:    #156; CHECK-NEXT:    lwarx 0, 0, 9157; CHECK-NEXT:    sub 0, 0, 3158; CHECK-NEXT:    stwcx. 0, 0, 9159; CHECK-NEXT:    bne- 0, .LBB0_25160; CHECK-NEXT:  # %bb.26: # %entry161; CHECK-NEXT:    lwsync162; CHECK-NEXT:    sync163; CHECK-NEXT:  .LBB0_27: # %entry164; CHECK-NEXT:    #165; CHECK-NEXT:    lwarx 0, 0, 10166; CHECK-NEXT:    sub 0, 0, 3167; CHECK-NEXT:    stwcx. 0, 0, 10168; CHECK-NEXT:    bne- 0, .LBB0_27169; CHECK-NEXT:  # %bb.28: # %entry170; CHECK-NEXT:    lwsync171; CHECK-NEXT:    sync172; CHECK-NEXT:  .LBB0_29: # %entry173; CHECK-NEXT:    #174; CHECK-NEXT:    ldarx 0, 0, 11175; CHECK-NEXT:    sub 0, 0, 7176; CHECK-NEXT:    stdcx. 0, 0, 11177; CHECK-NEXT:    bne- 0, .LBB0_29178; CHECK-NEXT:  # %bb.30: # %entry179; CHECK-NEXT:    lwsync180; CHECK-NEXT:    sync181; CHECK-NEXT:  .LBB0_31: # %entry182; CHECK-NEXT:    #183; CHECK-NEXT:    ldarx 0, 0, 12184; CHECK-NEXT:    sub 0, 0, 7185; CHECK-NEXT:    stdcx. 0, 0, 12186; CHECK-NEXT:    bne- 0, .LBB0_31187; CHECK-NEXT:  # %bb.32: # %entry188; CHECK-NEXT:    lwsync189; CHECK-NEXT:    sync190; CHECK-NEXT:  .LBB0_33: # %entry191; CHECK-NEXT:    #192; CHECK-NEXT:    lbarx 0, 0, 4193; CHECK-NEXT:    ori 0, 0, 1194; CHECK-NEXT:    stbcx. 0, 0, 4195; CHECK-NEXT:    bne- 0, .LBB0_33196; CHECK-NEXT:  # %bb.34: # %entry197; CHECK-NEXT:    lwsync198; CHECK-NEXT:    sync199; CHECK-NEXT:  .LBB0_35: # %entry200; CHECK-NEXT:    #201; CHECK-NEXT:    lbarx 0, 0, 5202; CHECK-NEXT:    ori 0, 0, 1203; CHECK-NEXT:    stbcx. 0, 0, 5204; CHECK-NEXT:    bne- 0, .LBB0_35205; CHECK-NEXT:  # %bb.36: # %entry206; CHECK-NEXT:    lwsync207; CHECK-NEXT:    sync208; CHECK-NEXT:  .LBB0_37: # %entry209; CHECK-NEXT:    #210; CHECK-NEXT:    lharx 0, 0, 6211; CHECK-NEXT:    ori 0, 0, 1212; CHECK-NEXT:    sthcx. 0, 0, 6213; CHECK-NEXT:    bne- 0, .LBB0_37214; CHECK-NEXT:  # %bb.38: # %entry215; CHECK-NEXT:    lwsync216; CHECK-NEXT:    sync217; CHECK-NEXT:  .LBB0_39: # %entry218; CHECK-NEXT:    #219; CHECK-NEXT:    lharx 0, 0, 8220; CHECK-NEXT:    ori 0, 0, 1221; CHECK-NEXT:    sthcx. 0, 0, 8222; CHECK-NEXT:    bne- 0, .LBB0_39223; CHECK-NEXT:  # %bb.40: # %entry224; CHECK-NEXT:    lwsync225; CHECK-NEXT:    sync226; CHECK-NEXT:  .LBB0_41: # %entry227; CHECK-NEXT:    #228; CHECK-NEXT:    lwarx 0, 0, 9229; CHECK-NEXT:    ori 0, 0, 1230; CHECK-NEXT:    stwcx. 0, 0, 9231; CHECK-NEXT:    bne- 0, .LBB0_41232; CHECK-NEXT:  # %bb.42: # %entry233; CHECK-NEXT:    lwsync234; CHECK-NEXT:    sync235; CHECK-NEXT:  .LBB0_43: # %entry236; CHECK-NEXT:    #237; CHECK-NEXT:    lwarx 0, 0, 10238; CHECK-NEXT:    ori 0, 0, 1239; CHECK-NEXT:    stwcx. 0, 0, 10240; CHECK-NEXT:    bne- 0, .LBB0_43241; CHECK-NEXT:  # %bb.44: # %entry242; CHECK-NEXT:    lwsync243; CHECK-NEXT:    sync244; CHECK-NEXT:  .LBB0_45: # %entry245; CHECK-NEXT:    #246; CHECK-NEXT:    ldarx 0, 0, 11247; CHECK-NEXT:    ori 0, 0, 1248; CHECK-NEXT:    stdcx. 0, 0, 11249; CHECK-NEXT:    bne- 0, .LBB0_45250; CHECK-NEXT:  # %bb.46: # %entry251; CHECK-NEXT:    lwsync252; CHECK-NEXT:    sync253; CHECK-NEXT:  .LBB0_47: # %entry254; CHECK-NEXT:    #255; CHECK-NEXT:    ldarx 0, 0, 12256; CHECK-NEXT:    ori 0, 0, 1257; CHECK-NEXT:    stdcx. 0, 0, 12258; CHECK-NEXT:    bne- 0, .LBB0_47259; CHECK-NEXT:  # %bb.48: # %entry260; CHECK-NEXT:    lwsync261; CHECK-NEXT:    sync262; CHECK-NEXT:  .LBB0_49: # %entry263; CHECK-NEXT:    #264; CHECK-NEXT:    lbarx 0, 0, 4265; CHECK-NEXT:    xori 0, 0, 1266; CHECK-NEXT:    stbcx. 0, 0, 4267; CHECK-NEXT:    bne- 0, .LBB0_49268; CHECK-NEXT:  # %bb.50: # %entry269; CHECK-NEXT:    lwsync270; CHECK-NEXT:    sync271; CHECK-NEXT:  .LBB0_51: # %entry272; CHECK-NEXT:    #273; CHECK-NEXT:    lbarx 0, 0, 5274; CHECK-NEXT:    xori 0, 0, 1275; CHECK-NEXT:    stbcx. 0, 0, 5276; CHECK-NEXT:    bne- 0, .LBB0_51277; CHECK-NEXT:  # %bb.52: # %entry278; CHECK-NEXT:    lwsync279; CHECK-NEXT:    sync280; CHECK-NEXT:  .LBB0_53: # %entry281; CHECK-NEXT:    #282; CHECK-NEXT:    lharx 0, 0, 6283; CHECK-NEXT:    xori 0, 0, 1284; CHECK-NEXT:    sthcx. 0, 0, 6285; CHECK-NEXT:    bne- 0, .LBB0_53286; CHECK-NEXT:  # %bb.54: # %entry287; CHECK-NEXT:    lwsync288; CHECK-NEXT:    sync289; CHECK-NEXT:  .LBB0_55: # %entry290; CHECK-NEXT:    #291; CHECK-NEXT:    lharx 0, 0, 8292; CHECK-NEXT:    xori 0, 0, 1293; CHECK-NEXT:    sthcx. 0, 0, 8294; CHECK-NEXT:    bne- 0, .LBB0_55295; CHECK-NEXT:  # %bb.56: # %entry296; CHECK-NEXT:    lwsync297; CHECK-NEXT:    sync298; CHECK-NEXT:  .LBB0_57: # %entry299; CHECK-NEXT:    #300; CHECK-NEXT:    lwarx 0, 0, 9301; CHECK-NEXT:    xori 0, 0, 1302; CHECK-NEXT:    stwcx. 0, 0, 9303; CHECK-NEXT:    bne- 0, .LBB0_57304; CHECK-NEXT:  # %bb.58: # %entry305; CHECK-NEXT:    lwsync306; CHECK-NEXT:    sync307; CHECK-NEXT:  .LBB0_59: # %entry308; CHECK-NEXT:    #309; CHECK-NEXT:    lwarx 0, 0, 10310; CHECK-NEXT:    xori 0, 0, 1311; CHECK-NEXT:    stwcx. 0, 0, 10312; CHECK-NEXT:    bne- 0, .LBB0_59313; CHECK-NEXT:  # %bb.60: # %entry314; CHECK-NEXT:    lwsync315; CHECK-NEXT:    sync316; CHECK-NEXT:  .LBB0_61: # %entry317; CHECK-NEXT:    #318; CHECK-NEXT:    ldarx 0, 0, 11319; CHECK-NEXT:    xori 0, 0, 1320; CHECK-NEXT:    stdcx. 0, 0, 11321; CHECK-NEXT:    bne- 0, .LBB0_61322; CHECK-NEXT:  # %bb.62: # %entry323; CHECK-NEXT:    lwsync324; CHECK-NEXT:    sync325; CHECK-NEXT:  .LBB0_63: # %entry326; CHECK-NEXT:    #327; CHECK-NEXT:    ldarx 0, 0, 12328; CHECK-NEXT:    xori 0, 0, 1329; CHECK-NEXT:    stdcx. 0, 0, 12330; CHECK-NEXT:    bne- 0, .LBB0_63331; CHECK-NEXT:  # %bb.64: # %entry332; CHECK-NEXT:    addis 30, 2, u128@toc@ha333; CHECK-NEXT:    lwsync334; CHECK-NEXT:    sync335; CHECK-NEXT:    addi 0, 30, u128@toc@l336; CHECK-NEXT:    li 30, 0337; CHECK-NEXT:  .LBB0_65: # %entry338; CHECK-NEXT:    #339; CHECK-NEXT:    lqarx 28, 0, 0340; CHECK-NEXT:    xor 27, 7, 29341; CHECK-NEXT:    xor 26, 30, 28342; CHECK-NEXT:    stqcx. 26, 0, 0343; CHECK-NEXT:    bne 0, .LBB0_65344; CHECK-NEXT:  # %bb.66: # %entry345; CHECK-NEXT:    addis 29, 2, s128@toc@ha346; CHECK-NEXT:    lwsync347; CHECK-NEXT:    addi 0, 29, s128@toc@l348; CHECK-NEXT:    sync349; CHECK-NEXT:  .LBB0_67: # %entry350; CHECK-NEXT:    #351; CHECK-NEXT:    lqarx 28, 0, 0352; CHECK-NEXT:    xor 27, 7, 29353; CHECK-NEXT:    xor 26, 30, 28354; CHECK-NEXT:    stqcx. 26, 0, 0355; CHECK-NEXT:    bne 0, .LBB0_67356; CHECK-NEXT:  # %bb.68: # %entry357; CHECK-NEXT:    lwsync358; CHECK-NEXT:    sync359; CHECK-NEXT:  .LBB0_69: # %entry360; CHECK-NEXT:    #361; CHECK-NEXT:    lbarx 0, 0, 4362; CHECK-NEXT:    nand 0, 3, 0363; CHECK-NEXT:    stbcx. 0, 0, 4364; CHECK-NEXT:    bne- 0, .LBB0_69365; CHECK-NEXT:  # %bb.70: # %entry366; CHECK-NEXT:    lwsync367; CHECK-NEXT:    sync368; CHECK-NEXT:  .LBB0_71: # %entry369; CHECK-NEXT:    #370; CHECK-NEXT:    lbarx 0, 0, 5371; CHECK-NEXT:    nand 0, 3, 0372; CHECK-NEXT:    stbcx. 0, 0, 5373; CHECK-NEXT:    bne- 0, .LBB0_71374; CHECK-NEXT:  # %bb.72: # %entry375; CHECK-NEXT:    lwsync376; CHECK-NEXT:    sync377; CHECK-NEXT:  .LBB0_73: # %entry378; CHECK-NEXT:    #379; CHECK-NEXT:    lharx 0, 0, 6380; CHECK-NEXT:    nand 0, 3, 0381; CHECK-NEXT:    sthcx. 0, 0, 6382; CHECK-NEXT:    bne- 0, .LBB0_73383; CHECK-NEXT:  # %bb.74: # %entry384; CHECK-NEXT:    lwsync385; CHECK-NEXT:    sync386; CHECK-NEXT:  .LBB0_75: # %entry387; CHECK-NEXT:    #388; CHECK-NEXT:    lharx 0, 0, 8389; CHECK-NEXT:    nand 0, 3, 0390; CHECK-NEXT:    sthcx. 0, 0, 8391; CHECK-NEXT:    bne- 0, .LBB0_75392; CHECK-NEXT:  # %bb.76: # %entry393; CHECK-NEXT:    lwsync394; CHECK-NEXT:    sync395; CHECK-NEXT:  .LBB0_77: # %entry396; CHECK-NEXT:    #397; CHECK-NEXT:    lwarx 0, 0, 9398; CHECK-NEXT:    nand 0, 3, 0399; CHECK-NEXT:    stwcx. 0, 0, 9400; CHECK-NEXT:    bne- 0, .LBB0_77401; CHECK-NEXT:  # %bb.78: # %entry402; CHECK-NEXT:    lwsync403; CHECK-NEXT:    sync404; CHECK-NEXT:  .LBB0_79: # %entry405; CHECK-NEXT:    #406; CHECK-NEXT:    lwarx 0, 0, 10407; CHECK-NEXT:    nand 0, 3, 0408; CHECK-NEXT:    stwcx. 0, 0, 10409; CHECK-NEXT:    bne- 0, .LBB0_79410; CHECK-NEXT:  # %bb.80: # %entry411; CHECK-NEXT:    lwsync412; CHECK-NEXT:    sync413; CHECK-NEXT:  .LBB0_81: # %entry414; CHECK-NEXT:    #415; CHECK-NEXT:    ldarx 0, 0, 11416; CHECK-NEXT:    nand 0, 7, 0417; CHECK-NEXT:    stdcx. 0, 0, 11418; CHECK-NEXT:    bne- 0, .LBB0_81419; CHECK-NEXT:  # %bb.82: # %entry420; CHECK-NEXT:    lwsync421; CHECK-NEXT:    sync422; CHECK-NEXT:  .LBB0_83: # %entry423; CHECK-NEXT:    #424; CHECK-NEXT:    ldarx 0, 0, 12425; CHECK-NEXT:    nand 0, 7, 0426; CHECK-NEXT:    stdcx. 0, 0, 12427; CHECK-NEXT:    bne- 0, .LBB0_83428; CHECK-NEXT:  # %bb.84: # %entry429; CHECK-NEXT:    lwsync430; CHECK-NEXT:    sync431; CHECK-NEXT:  .LBB0_85: # %entry432; CHECK-NEXT:    #433; CHECK-NEXT:    lbarx 0, 0, 4434; CHECK-NEXT:    and 0, 3, 0435; CHECK-NEXT:    stbcx. 0, 0, 4436; CHECK-NEXT:    bne- 0, .LBB0_85437; CHECK-NEXT:  # %bb.86: # %entry438; CHECK-NEXT:    lwsync439; CHECK-NEXT:    sync440; CHECK-NEXT:  .LBB0_87: # %entry441; CHECK-NEXT:    #442; CHECK-NEXT:    lbarx 4, 0, 5443; CHECK-NEXT:    and 4, 3, 4444; CHECK-NEXT:    stbcx. 4, 0, 5445; CHECK-NEXT:    bne- 0, .LBB0_87446; CHECK-NEXT:  # %bb.88: # %entry447; CHECK-NEXT:    lwsync448; CHECK-NEXT:    sync449; CHECK-NEXT:  .LBB0_89: # %entry450; CHECK-NEXT:    #451; CHECK-NEXT:    lharx 4, 0, 6452; CHECK-NEXT:    and 4, 3, 4453; CHECK-NEXT:    sthcx. 4, 0, 6454; CHECK-NEXT:    bne- 0, .LBB0_89455; CHECK-NEXT:  # %bb.90: # %entry456; CHECK-NEXT:    lwsync457; CHECK-NEXT:    sync458; CHECK-NEXT:  .LBB0_91: # %entry459; CHECK-NEXT:    #460; CHECK-NEXT:    lharx 4, 0, 8461; CHECK-NEXT:    and 4, 3, 4462; CHECK-NEXT:    sthcx. 4, 0, 8463; CHECK-NEXT:    bne- 0, .LBB0_91464; CHECK-NEXT:  # %bb.92: # %entry465; CHECK-NEXT:    lwsync466; CHECK-NEXT:    sync467; CHECK-NEXT:  .LBB0_93: # %entry468; CHECK-NEXT:    #469; CHECK-NEXT:    lwarx 4, 0, 9470; CHECK-NEXT:    and 4, 3, 4471; CHECK-NEXT:    stwcx. 4, 0, 9472; CHECK-NEXT:    bne- 0, .LBB0_93473; CHECK-NEXT:  # %bb.94: # %entry474; CHECK-NEXT:    lwsync475; CHECK-NEXT:    sync476; CHECK-NEXT:  .LBB0_95: # %entry477; CHECK-NEXT:    #478; CHECK-NEXT:    lwarx 4, 0, 10479; CHECK-NEXT:    and 4, 3, 4480; CHECK-NEXT:    stwcx. 4, 0, 10481; CHECK-NEXT:    bne- 0, .LBB0_95482; CHECK-NEXT:  # %bb.96: # %entry483; CHECK-NEXT:    lwsync484; CHECK-NEXT:    sync485; CHECK-NEXT:  .LBB0_97: # %entry486; CHECK-NEXT:    #487; CHECK-NEXT:    ldarx 3, 0, 11488; CHECK-NEXT:    and 3, 7, 3489; CHECK-NEXT:    stdcx. 3, 0, 11490; CHECK-NEXT:    bne- 0, .LBB0_97491; CHECK-NEXT:  # %bb.98: # %entry492; CHECK-NEXT:    lwsync493; CHECK-NEXT:    sync494; CHECK-NEXT:  .LBB0_99: # %entry495; CHECK-NEXT:    #496; CHECK-NEXT:    ldarx 3, 0, 12497; CHECK-NEXT:    and 3, 7, 3498; CHECK-NEXT:    stdcx. 3, 0, 12499; CHECK-NEXT:    bne- 0, .LBB0_99500; CHECK-NEXT:  # %bb.100: # %entry501; CHECK-NEXT:    lwsync502; CHECK-NEXT:    ld 30, -16(1) # 8-byte Folded Reload503; CHECK-NEXT:    ld 29, -24(1) # 8-byte Folded Reload504; CHECK-NEXT:    ld 28, -32(1) # 8-byte Folded Reload505; CHECK-NEXT:    ld 27, -40(1) # 8-byte Folded Reload506; CHECK-NEXT:    ld 26, -48(1) # 8-byte Folded Reload507; CHECK-NEXT:    blr508;509; AIX32-LABEL: test_op_ignore:510; AIX32:       # %bb.0: # %entry511; AIX32-NEXT:    mflr 0512; AIX32-NEXT:    stwu 1, -160(1)513; AIX32-NEXT:    lwz 3, L..C0(2) # @sc514; AIX32-NEXT:    stw 0, 168(1)515; AIX32-NEXT:    rlwinm 4, 3, 3, 27, 28516; AIX32-NEXT:    stw 15, 92(1) # 4-byte Folded Spill517; AIX32-NEXT:    stw 26, 136(1) # 4-byte Folded Spill518; AIX32-NEXT:    stw 28, 144(1) # 4-byte Folded Spill519; AIX32-NEXT:    li 15, 1520; AIX32-NEXT:    rlwinm 28, 3, 0, 0, 29521; AIX32-NEXT:    li 3, 255522; AIX32-NEXT:    xori 26, 4, 24523; AIX32-NEXT:    stw 16, 96(1) # 4-byte Folded Spill524; AIX32-NEXT:    stw 17, 100(1) # 4-byte Folded Spill525; AIX32-NEXT:    stw 18, 104(1) # 4-byte Folded Spill526; AIX32-NEXT:    stw 19, 108(1) # 4-byte Folded Spill527; AIX32-NEXT:    stw 20, 112(1) # 4-byte Folded Spill528; AIX32-NEXT:    stw 21, 116(1) # 4-byte Folded Spill529; AIX32-NEXT:    stw 22, 120(1) # 4-byte Folded Spill530; AIX32-NEXT:    stw 23, 124(1) # 4-byte Folded Spill531; AIX32-NEXT:    stw 24, 128(1) # 4-byte Folded Spill532; AIX32-NEXT:    stw 25, 132(1) # 4-byte Folded Spill533; AIX32-NEXT:    stw 27, 140(1) # 4-byte Folded Spill534; AIX32-NEXT:    stw 29, 148(1) # 4-byte Folded Spill535; AIX32-NEXT:    stw 30, 152(1) # 4-byte Folded Spill536; AIX32-NEXT:    stw 31, 156(1) # 4-byte Folded Spill537; AIX32-NEXT:    sync538; AIX32-NEXT:    slw 29, 15, 26539; AIX32-NEXT:    slw 3, 3, 26540; AIX32-NEXT:  L..BB0_1: # %entry541; AIX32-NEXT:    #542; AIX32-NEXT:    lwarx 4, 0, 28543; AIX32-NEXT:    add 5, 29, 4544; AIX32-NEXT:    andc 4, 4, 3545; AIX32-NEXT:    and 5, 5, 3546; AIX32-NEXT:    or 4, 5, 4547; AIX32-NEXT:    stwcx. 4, 0, 28548; AIX32-NEXT:    bne- 0, L..BB0_1549; AIX32-NEXT:  # %bb.2: # %entry550; AIX32-NEXT:    lwz 3, L..C1(2) # @uc551; AIX32-NEXT:    lwsync552; AIX32-NEXT:    sync553; AIX32-NEXT:    rlwinm 4, 3, 3, 27, 28554; AIX32-NEXT:    rlwinm 27, 3, 0, 0, 29555; AIX32-NEXT:    li 3, 255556; AIX32-NEXT:    xori 24, 4, 24557; AIX32-NEXT:    slw 18, 15, 24558; AIX32-NEXT:    slw 3, 3, 24559; AIX32-NEXT:  L..BB0_3: # %entry560; AIX32-NEXT:    #561; AIX32-NEXT:    lwarx 4, 0, 27562; AIX32-NEXT:    add 5, 18, 4563; AIX32-NEXT:    andc 4, 4, 3564; AIX32-NEXT:    and 5, 5, 3565; AIX32-NEXT:    or 4, 5, 4566; AIX32-NEXT:    stwcx. 4, 0, 27567; AIX32-NEXT:    bne- 0, L..BB0_3568; AIX32-NEXT:  # %bb.4: # %entry569; AIX32-NEXT:    lwz 3, L..C2(2) # @ss570; AIX32-NEXT:    lwsync571; AIX32-NEXT:    sync572; AIX32-NEXT:    rlwinm 4, 3, 3, 27, 27573; AIX32-NEXT:    rlwinm 25, 3, 0, 0, 29574; AIX32-NEXT:    li 3, 0575; AIX32-NEXT:    xori 22, 4, 16576; AIX32-NEXT:    ori 3, 3, 65535577; AIX32-NEXT:    slw 17, 15, 22578; AIX32-NEXT:    slw 3, 3, 22579; AIX32-NEXT:  L..BB0_5: # %entry580; AIX32-NEXT:    #581; AIX32-NEXT:    lwarx 4, 0, 25582; AIX32-NEXT:    add 5, 17, 4583; AIX32-NEXT:    andc 4, 4, 3584; AIX32-NEXT:    and 5, 5, 3585; AIX32-NEXT:    or 4, 5, 4586; AIX32-NEXT:    stwcx. 4, 0, 25587; AIX32-NEXT:    bne- 0, L..BB0_5588; AIX32-NEXT:  # %bb.6: # %entry589; AIX32-NEXT:    lwz 3, L..C3(2) # @us590; AIX32-NEXT:    lwsync591; AIX32-NEXT:    sync592; AIX32-NEXT:    rlwinm 4, 3, 3, 27, 27593; AIX32-NEXT:    rlwinm 23, 3, 0, 0, 29594; AIX32-NEXT:    li 3, 0595; AIX32-NEXT:    xori 21, 4, 16596; AIX32-NEXT:    ori 3, 3, 65535597; AIX32-NEXT:    slw 16, 15, 21598; AIX32-NEXT:    slw 3, 3, 21599; AIX32-NEXT:  L..BB0_7: # %entry600; AIX32-NEXT:    #601; AIX32-NEXT:    lwarx 4, 0, 23602; AIX32-NEXT:    add 5, 16, 4603; AIX32-NEXT:    andc 4, 4, 3604; AIX32-NEXT:    and 5, 5, 3605; AIX32-NEXT:    or 4, 5, 4606; AIX32-NEXT:    stwcx. 4, 0, 23607; AIX32-NEXT:    bne- 0, L..BB0_7608; AIX32-NEXT:  # %bb.8: # %entry609; AIX32-NEXT:    lwsync610; AIX32-NEXT:    lwz 20, L..C4(2) # @si611; AIX32-NEXT:    sync612; AIX32-NEXT:  L..BB0_9: # %entry613; AIX32-NEXT:    #614; AIX32-NEXT:    lwarx 3, 0, 20615; AIX32-NEXT:    addi 3, 3, 1616; AIX32-NEXT:    stwcx. 3, 0, 20617; AIX32-NEXT:    bne- 0, L..BB0_9618; AIX32-NEXT:  # %bb.10: # %entry619; AIX32-NEXT:    lwsync620; AIX32-NEXT:    lwz 19, L..C5(2) # @ui621; AIX32-NEXT:    sync622; AIX32-NEXT:  L..BB0_11: # %entry623; AIX32-NEXT:    #624; AIX32-NEXT:    lwarx 3, 0, 19625; AIX32-NEXT:    addi 3, 3, 1626; AIX32-NEXT:    stwcx. 3, 0, 19627; AIX32-NEXT:    bne- 0, L..BB0_11628; AIX32-NEXT:  # %bb.12: # %entry629; AIX32-NEXT:    lwz 31, L..C6(2) # @sll630; AIX32-NEXT:    lwsync631; AIX32-NEXT:    li 4, 0632; AIX32-NEXT:    li 5, 1633; AIX32-NEXT:    li 6, 5634; AIX32-NEXT:    mr 3, 31635; AIX32-NEXT:    bl .__atomic_fetch_add_8[PR]636; AIX32-NEXT:    nop637; AIX32-NEXT:    lwz 30, L..C7(2) # @ull638; AIX32-NEXT:    li 4, 0639; AIX32-NEXT:    li 5, 1640; AIX32-NEXT:    mr 3, 30641; AIX32-NEXT:    li 6, 5642; AIX32-NEXT:    bl .__atomic_fetch_add_8[PR]643; AIX32-NEXT:    nop644; AIX32-NEXT:    li 3, 255645; AIX32-NEXT:    sync646; AIX32-NEXT:    slw 3, 3, 26647; AIX32-NEXT:  L..BB0_13: # %entry648; AIX32-NEXT:    #649; AIX32-NEXT:    lwarx 4, 0, 28650; AIX32-NEXT:    sub 5, 4, 29651; AIX32-NEXT:    andc 4, 4, 3652; AIX32-NEXT:    and 5, 5, 3653; AIX32-NEXT:    or 4, 5, 4654; AIX32-NEXT:    stwcx. 4, 0, 28655; AIX32-NEXT:    bne- 0, L..BB0_13656; AIX32-NEXT:  # %bb.14: # %entry657; AIX32-NEXT:    li 3, 255658; AIX32-NEXT:    lwsync659; AIX32-NEXT:    sync660; AIX32-NEXT:    slw 3, 3, 24661; AIX32-NEXT:  L..BB0_15: # %entry662; AIX32-NEXT:    #663; AIX32-NEXT:    lwarx 4, 0, 27664; AIX32-NEXT:    sub 5, 4, 18665; AIX32-NEXT:    andc 4, 4, 3666; AIX32-NEXT:    and 5, 5, 3667; AIX32-NEXT:    or 4, 5, 4668; AIX32-NEXT:    stwcx. 4, 0, 27669; AIX32-NEXT:    bne- 0, L..BB0_15670; AIX32-NEXT:  # %bb.16: # %entry671; AIX32-NEXT:    li 3, 0672; AIX32-NEXT:    lwsync673; AIX32-NEXT:    sync674; AIX32-NEXT:    ori 3, 3, 65535675; AIX32-NEXT:    slw 3, 3, 22676; AIX32-NEXT:  L..BB0_17: # %entry677; AIX32-NEXT:    #678; AIX32-NEXT:    lwarx 4, 0, 25679; AIX32-NEXT:    sub 5, 4, 17680; AIX32-NEXT:    andc 4, 4, 3681; AIX32-NEXT:    and 5, 5, 3682; AIX32-NEXT:    or 4, 5, 4683; AIX32-NEXT:    stwcx. 4, 0, 25684; AIX32-NEXT:    bne- 0, L..BB0_17685; AIX32-NEXT:  # %bb.18: # %entry686; AIX32-NEXT:    li 3, 0687; AIX32-NEXT:    lwsync688; AIX32-NEXT:    sync689; AIX32-NEXT:    ori 3, 3, 65535690; AIX32-NEXT:    slw 3, 3, 21691; AIX32-NEXT:  L..BB0_19: # %entry692; AIX32-NEXT:    #693; AIX32-NEXT:    lwarx 4, 0, 23694; AIX32-NEXT:    sub 5, 4, 16695; AIX32-NEXT:    andc 4, 4, 3696; AIX32-NEXT:    and 5, 5, 3697; AIX32-NEXT:    or 4, 5, 4698; AIX32-NEXT:    stwcx. 4, 0, 23699; AIX32-NEXT:    bne- 0, L..BB0_19700; AIX32-NEXT:  # %bb.20: # %entry701; AIX32-NEXT:    lwsync702; AIX32-NEXT:    sync703; AIX32-NEXT:  L..BB0_21: # %entry704; AIX32-NEXT:    #705; AIX32-NEXT:    lwarx 3, 0, 20706; AIX32-NEXT:    sub 3, 3, 15707; AIX32-NEXT:    stwcx. 3, 0, 20708; AIX32-NEXT:    bne- 0, L..BB0_21709; AIX32-NEXT:  # %bb.22: # %entry710; AIX32-NEXT:    lwsync711; AIX32-NEXT:    sync712; AIX32-NEXT:  L..BB0_23: # %entry713; AIX32-NEXT:    #714; AIX32-NEXT:    lwarx 3, 0, 19715; AIX32-NEXT:    sub 3, 3, 15716; AIX32-NEXT:    stwcx. 3, 0, 19717; AIX32-NEXT:    bne- 0, L..BB0_23718; AIX32-NEXT:  # %bb.24: # %entry719; AIX32-NEXT:    lwsync720; AIX32-NEXT:    li 4, 0721; AIX32-NEXT:    li 5, 1722; AIX32-NEXT:    mr 3, 31723; AIX32-NEXT:    li 6, 5724; AIX32-NEXT:    bl .__atomic_fetch_sub_8[PR]725; AIX32-NEXT:    nop726; AIX32-NEXT:    li 4, 0727; AIX32-NEXT:    li 5, 1728; AIX32-NEXT:    mr 3, 30729; AIX32-NEXT:    li 6, 5730; AIX32-NEXT:    bl .__atomic_fetch_sub_8[PR]731; AIX32-NEXT:    nop732; AIX32-NEXT:    li 3, 255733; AIX32-NEXT:    sync734; AIX32-NEXT:    slw 3, 3, 26735; AIX32-NEXT:  L..BB0_25: # %entry736; AIX32-NEXT:    #737; AIX32-NEXT:    lwarx 4, 0, 28738; AIX32-NEXT:    or 5, 29, 4739; AIX32-NEXT:    andc 4, 4, 3740; AIX32-NEXT:    and 5, 5, 3741; AIX32-NEXT:    or 4, 5, 4742; AIX32-NEXT:    stwcx. 4, 0, 28743; AIX32-NEXT:    bne- 0, L..BB0_25744; AIX32-NEXT:  # %bb.26: # %entry745; AIX32-NEXT:    li 3, 255746; AIX32-NEXT:    lwsync747; AIX32-NEXT:    sync748; AIX32-NEXT:    slw 3, 3, 24749; AIX32-NEXT:  L..BB0_27: # %entry750; AIX32-NEXT:    #751; AIX32-NEXT:    lwarx 4, 0, 27752; AIX32-NEXT:    or 5, 18, 4753; AIX32-NEXT:    andc 4, 4, 3754; AIX32-NEXT:    and 5, 5, 3755; AIX32-NEXT:    or 4, 5, 4756; AIX32-NEXT:    stwcx. 4, 0, 27757; AIX32-NEXT:    bne- 0, L..BB0_27758; AIX32-NEXT:  # %bb.28: # %entry759; AIX32-NEXT:    li 3, 0760; AIX32-NEXT:    lwsync761; AIX32-NEXT:    sync762; AIX32-NEXT:    ori 3, 3, 65535763; AIX32-NEXT:    slw 3, 3, 22764; AIX32-NEXT:  L..BB0_29: # %entry765; AIX32-NEXT:    #766; AIX32-NEXT:    lwarx 4, 0, 25767; AIX32-NEXT:    or 5, 17, 4768; AIX32-NEXT:    andc 4, 4, 3769; AIX32-NEXT:    and 5, 5, 3770; AIX32-NEXT:    or 4, 5, 4771; AIX32-NEXT:    stwcx. 4, 0, 25772; AIX32-NEXT:    bne- 0, L..BB0_29773; AIX32-NEXT:  # %bb.30: # %entry774; AIX32-NEXT:    li 3, 0775; AIX32-NEXT:    lwsync776; AIX32-NEXT:    sync777; AIX32-NEXT:    ori 3, 3, 65535778; AIX32-NEXT:    slw 3, 3, 21779; AIX32-NEXT:  L..BB0_31: # %entry780; AIX32-NEXT:    #781; AIX32-NEXT:    lwarx 4, 0, 23782; AIX32-NEXT:    or 5, 16, 4783; AIX32-NEXT:    andc 4, 4, 3784; AIX32-NEXT:    and 5, 5, 3785; AIX32-NEXT:    or 4, 5, 4786; AIX32-NEXT:    stwcx. 4, 0, 23787; AIX32-NEXT:    bne- 0, L..BB0_31788; AIX32-NEXT:  # %bb.32: # %entry789; AIX32-NEXT:    lwsync790; AIX32-NEXT:    sync791; AIX32-NEXT:  L..BB0_33: # %entry792; AIX32-NEXT:    #793; AIX32-NEXT:    lwarx 3, 0, 20794; AIX32-NEXT:    ori 3, 3, 1795; AIX32-NEXT:    stwcx. 3, 0, 20796; AIX32-NEXT:    bne- 0, L..BB0_33797; AIX32-NEXT:  # %bb.34: # %entry798; AIX32-NEXT:    lwsync799; AIX32-NEXT:    sync800; AIX32-NEXT:  L..BB0_35: # %entry801; AIX32-NEXT:    #802; AIX32-NEXT:    lwarx 3, 0, 19803; AIX32-NEXT:    ori 3, 3, 1804; AIX32-NEXT:    stwcx. 3, 0, 19805; AIX32-NEXT:    bne- 0, L..BB0_35806; AIX32-NEXT:  # %bb.36: # %entry807; AIX32-NEXT:    lwsync808; AIX32-NEXT:    li 4, 0809; AIX32-NEXT:    li 5, 1810; AIX32-NEXT:    mr 3, 31811; AIX32-NEXT:    li 6, 5812; AIX32-NEXT:    bl .__atomic_fetch_or_8[PR]813; AIX32-NEXT:    nop814; AIX32-NEXT:    li 4, 0815; AIX32-NEXT:    li 5, 1816; AIX32-NEXT:    mr 3, 30817; AIX32-NEXT:    li 6, 5818; AIX32-NEXT:    bl .__atomic_fetch_or_8[PR]819; AIX32-NEXT:    nop820; AIX32-NEXT:    li 3, 255821; AIX32-NEXT:    sync822; AIX32-NEXT:    slw 3, 3, 26823; AIX32-NEXT:  L..BB0_37: # %entry824; AIX32-NEXT:    #825; AIX32-NEXT:    lwarx 4, 0, 28826; AIX32-NEXT:    xor 5, 29, 4827; AIX32-NEXT:    andc 4, 4, 3828; AIX32-NEXT:    and 5, 5, 3829; AIX32-NEXT:    or 4, 5, 4830; AIX32-NEXT:    stwcx. 4, 0, 28831; AIX32-NEXT:    bne- 0, L..BB0_37832; AIX32-NEXT:  # %bb.38: # %entry833; AIX32-NEXT:    li 3, 255834; AIX32-NEXT:    lwsync835; AIX32-NEXT:    sync836; AIX32-NEXT:    slw 3, 3, 24837; AIX32-NEXT:  L..BB0_39: # %entry838; AIX32-NEXT:    #839; AIX32-NEXT:    lwarx 4, 0, 27840; AIX32-NEXT:    xor 5, 18, 4841; AIX32-NEXT:    andc 4, 4, 3842; AIX32-NEXT:    and 5, 5, 3843; AIX32-NEXT:    or 4, 5, 4844; AIX32-NEXT:    stwcx. 4, 0, 27845; AIX32-NEXT:    bne- 0, L..BB0_39846; AIX32-NEXT:  # %bb.40: # %entry847; AIX32-NEXT:    li 3, 0848; AIX32-NEXT:    lwsync849; AIX32-NEXT:    sync850; AIX32-NEXT:    ori 3, 3, 65535851; AIX32-NEXT:    slw 3, 3, 22852; AIX32-NEXT:  L..BB0_41: # %entry853; AIX32-NEXT:    #854; AIX32-NEXT:    lwarx 4, 0, 25855; AIX32-NEXT:    xor 5, 17, 4856; AIX32-NEXT:    andc 4, 4, 3857; AIX32-NEXT:    and 5, 5, 3858; AIX32-NEXT:    or 4, 5, 4859; AIX32-NEXT:    stwcx. 4, 0, 25860; AIX32-NEXT:    bne- 0, L..BB0_41861; AIX32-NEXT:  # %bb.42: # %entry862; AIX32-NEXT:    li 3, 0863; AIX32-NEXT:    lwsync864; AIX32-NEXT:    sync865; AIX32-NEXT:    ori 3, 3, 65535866; AIX32-NEXT:    slw 3, 3, 21867; AIX32-NEXT:  L..BB0_43: # %entry868; AIX32-NEXT:    #869; AIX32-NEXT:    lwarx 4, 0, 23870; AIX32-NEXT:    xor 5, 16, 4871; AIX32-NEXT:    andc 4, 4, 3872; AIX32-NEXT:    and 5, 5, 3873; AIX32-NEXT:    or 4, 5, 4874; AIX32-NEXT:    stwcx. 4, 0, 23875; AIX32-NEXT:    bne- 0, L..BB0_43876; AIX32-NEXT:  # %bb.44: # %entry877; AIX32-NEXT:    lwsync878; AIX32-NEXT:    sync879; AIX32-NEXT:  L..BB0_45: # %entry880; AIX32-NEXT:    #881; AIX32-NEXT:    lwarx 3, 0, 20882; AIX32-NEXT:    xori 3, 3, 1883; AIX32-NEXT:    stwcx. 3, 0, 20884; AIX32-NEXT:    bne- 0, L..BB0_45885; AIX32-NEXT:  # %bb.46: # %entry886; AIX32-NEXT:    lwsync887; AIX32-NEXT:    sync888; AIX32-NEXT:  L..BB0_47: # %entry889; AIX32-NEXT:    #890; AIX32-NEXT:    lwarx 3, 0, 19891; AIX32-NEXT:    xori 3, 3, 1892; AIX32-NEXT:    stwcx. 3, 0, 19893; AIX32-NEXT:    bne- 0, L..BB0_47894; AIX32-NEXT:  # %bb.48: # %entry895; AIX32-NEXT:    lwsync896; AIX32-NEXT:    li 4, 0897; AIX32-NEXT:    li 5, 1898; AIX32-NEXT:    mr 3, 31899; AIX32-NEXT:    li 6, 5900; AIX32-NEXT:    bl .__atomic_fetch_xor_8[PR]901; AIX32-NEXT:    nop902; AIX32-NEXT:    li 4, 0903; AIX32-NEXT:    li 5, 1904; AIX32-NEXT:    mr 3, 30905; AIX32-NEXT:    li 6, 5906; AIX32-NEXT:    bl .__atomic_fetch_xor_8[PR]907; AIX32-NEXT:    nop908; AIX32-NEXT:    lwz 31, L..C8(2) # @u128909; AIX32-NEXT:    addi 30, 1, 72910; AIX32-NEXT:    addi 29, 1, 56911; AIX32-NEXT:    lwz 5, 12(31)912; AIX32-NEXT:    lwz 4, 8(31)913; AIX32-NEXT:    lwz 6, 4(31)914; AIX32-NEXT:    lwz 7, 0(31)915; AIX32-NEXT:    .align 4916; AIX32-NEXT:  L..BB0_49: # %atomicrmw.start2917; AIX32-NEXT:    #918; AIX32-NEXT:    xori 3, 5, 1919; AIX32-NEXT:    stw 7, 72(1)920; AIX32-NEXT:    stw 7, 56(1)921; AIX32-NEXT:    li 7, 5922; AIX32-NEXT:    stw 3, 68(1)923; AIX32-NEXT:    li 3, 16924; AIX32-NEXT:    li 8, 5925; AIX32-NEXT:    stw 6, 76(1)926; AIX32-NEXT:    stw 4, 80(1)927; AIX32-NEXT:    stw 5, 84(1)928; AIX32-NEXT:    stw 4, 64(1)929; AIX32-NEXT:    stw 6, 60(1)930; AIX32-NEXT:    mr 4, 31931; AIX32-NEXT:    mr 5, 30932; AIX32-NEXT:    mr 6, 29933; AIX32-NEXT:    bl .__atomic_compare_exchange[PR]934; AIX32-NEXT:    nop935; AIX32-NEXT:    lwz 5, 84(1)936; AIX32-NEXT:    lwz 4, 80(1)937; AIX32-NEXT:    lwz 6, 76(1)938; AIX32-NEXT:    lwz 7, 72(1)939; AIX32-NEXT:    cmplwi 3, 0940; AIX32-NEXT:    beq 0, L..BB0_49941; AIX32-NEXT:  # %bb.50: # %atomicrmw.end1942; AIX32-NEXT:    lwz 31, L..C9(2) # @s128943; AIX32-NEXT:    addi 30, 1, 72944; AIX32-NEXT:    addi 29, 1, 56945; AIX32-NEXT:    lwz 5, 12(31)946; AIX32-NEXT:    lwz 4, 8(31)947; AIX32-NEXT:    lwz 6, 4(31)948; AIX32-NEXT:    lwz 7, 0(31)949; AIX32-NEXT:    .align 4950; AIX32-NEXT:  L..BB0_51: # %atomicrmw.start951; AIX32-NEXT:    #952; AIX32-NEXT:    xori 3, 5, 1953; AIX32-NEXT:    stw 7, 72(1)954; AIX32-NEXT:    stw 7, 56(1)955; AIX32-NEXT:    li 7, 5956; AIX32-NEXT:    stw 3, 68(1)957; AIX32-NEXT:    li 3, 16958; AIX32-NEXT:    li 8, 5959; AIX32-NEXT:    stw 6, 76(1)960; AIX32-NEXT:    stw 4, 80(1)961; AIX32-NEXT:    stw 5, 84(1)962; AIX32-NEXT:    stw 4, 64(1)963; AIX32-NEXT:    stw 6, 60(1)964; AIX32-NEXT:    mr 4, 31965; AIX32-NEXT:    mr 5, 30966; AIX32-NEXT:    mr 6, 29967; AIX32-NEXT:    bl .__atomic_compare_exchange[PR]968; AIX32-NEXT:    nop969; AIX32-NEXT:    lwz 5, 84(1)970; AIX32-NEXT:    lwz 4, 80(1)971; AIX32-NEXT:    lwz 6, 76(1)972; AIX32-NEXT:    lwz 7, 72(1)973; AIX32-NEXT:    cmplwi 3, 0974; AIX32-NEXT:    beq 0, L..BB0_51975; AIX32-NEXT:  # %bb.52: # %atomicrmw.end976; AIX32-NEXT:    li 29, 1977; AIX32-NEXT:    li 3, 255978; AIX32-NEXT:    sync979; AIX32-NEXT:    slw 18, 29, 26980; AIX32-NEXT:    slw 3, 3, 26981; AIX32-NEXT:  L..BB0_53: # %atomicrmw.end982; AIX32-NEXT:    #983; AIX32-NEXT:    lwarx 4, 0, 28984; AIX32-NEXT:    nand 5, 18, 4985; AIX32-NEXT:    andc 4, 4, 3986; AIX32-NEXT:    and 5, 5, 3987; AIX32-NEXT:    or 4, 5, 4988; AIX32-NEXT:    stwcx. 4, 0, 28989; AIX32-NEXT:    bne- 0, L..BB0_53990; AIX32-NEXT:  # %bb.54: # %atomicrmw.end991; AIX32-NEXT:    li 3, 255992; AIX32-NEXT:    lwsync993; AIX32-NEXT:    slw 17, 29, 24994; AIX32-NEXT:    sync995; AIX32-NEXT:    slw 3, 3, 24996; AIX32-NEXT:  L..BB0_55: # %atomicrmw.end997; AIX32-NEXT:    #998; AIX32-NEXT:    lwarx 4, 0, 27999; AIX32-NEXT:    nand 5, 17, 41000; AIX32-NEXT:    andc 4, 4, 31001; AIX32-NEXT:    and 5, 5, 31002; AIX32-NEXT:    or 4, 5, 41003; AIX32-NEXT:    stwcx. 4, 0, 271004; AIX32-NEXT:    bne- 0, L..BB0_551005; AIX32-NEXT:  # %bb.56: # %atomicrmw.end1006; AIX32-NEXT:    li 3, 01007; AIX32-NEXT:    lwsync1008; AIX32-NEXT:    slw 16, 29, 221009; AIX32-NEXT:    sync1010; AIX32-NEXT:    ori 3, 3, 655351011; AIX32-NEXT:    slw 3, 3, 221012; AIX32-NEXT:  L..BB0_57: # %atomicrmw.end1013; AIX32-NEXT:    #1014; AIX32-NEXT:    lwarx 4, 0, 251015; AIX32-NEXT:    nand 5, 16, 41016; AIX32-NEXT:    andc 4, 4, 31017; AIX32-NEXT:    and 5, 5, 31018; AIX32-NEXT:    or 4, 5, 41019; AIX32-NEXT:    stwcx. 4, 0, 251020; AIX32-NEXT:    bne- 0, L..BB0_571021; AIX32-NEXT:  # %bb.58: # %atomicrmw.end1022; AIX32-NEXT:    li 3, 01023; AIX32-NEXT:    lwsync1024; AIX32-NEXT:    slw 15, 29, 211025; AIX32-NEXT:    sync1026; AIX32-NEXT:    ori 3, 3, 655351027; AIX32-NEXT:    slw 3, 3, 211028; AIX32-NEXT:  L..BB0_59: # %atomicrmw.end1029; AIX32-NEXT:    #1030; AIX32-NEXT:    lwarx 4, 0, 231031; AIX32-NEXT:    nand 5, 15, 41032; AIX32-NEXT:    andc 4, 4, 31033; AIX32-NEXT:    and 5, 5, 31034; AIX32-NEXT:    or 4, 5, 41035; AIX32-NEXT:    stwcx. 4, 0, 231036; AIX32-NEXT:    bne- 0, L..BB0_591037; AIX32-NEXT:  # %bb.60: # %atomicrmw.end1038; AIX32-NEXT:    lwsync1039; AIX32-NEXT:    sync1040; AIX32-NEXT:  L..BB0_61: # %atomicrmw.end1041; AIX32-NEXT:    #1042; AIX32-NEXT:    lwarx 3, 0, 201043; AIX32-NEXT:    nand 3, 29, 31044; AIX32-NEXT:    stwcx. 3, 0, 201045; AIX32-NEXT:    bne- 0, L..BB0_611046; AIX32-NEXT:  # %bb.62: # %atomicrmw.end1047; AIX32-NEXT:    lwsync1048; AIX32-NEXT:    sync1049; AIX32-NEXT:  L..BB0_63: # %atomicrmw.end1050; AIX32-NEXT:    #1051; AIX32-NEXT:    lwarx 3, 0, 191052; AIX32-NEXT:    nand 3, 29, 31053; AIX32-NEXT:    stwcx. 3, 0, 191054; AIX32-NEXT:    bne- 0, L..BB0_631055; AIX32-NEXT:  # %bb.64: # %atomicrmw.end1056; AIX32-NEXT:    lwz 31, L..C6(2) # @sll1057; AIX32-NEXT:    lwsync1058; AIX32-NEXT:    li 4, 01059; AIX32-NEXT:    li 5, 11060; AIX32-NEXT:    li 6, 51061; AIX32-NEXT:    mr 3, 311062; AIX32-NEXT:    bl .__atomic_fetch_nand_8[PR]1063; AIX32-NEXT:    nop1064; AIX32-NEXT:    lwz 30, L..C7(2) # @ull1065; AIX32-NEXT:    li 4, 01066; AIX32-NEXT:    li 5, 11067; AIX32-NEXT:    mr 3, 301068; AIX32-NEXT:    li 6, 51069; AIX32-NEXT:    bl .__atomic_fetch_nand_8[PR]1070; AIX32-NEXT:    nop1071; AIX32-NEXT:    li 3, 2551072; AIX32-NEXT:    sync1073; AIX32-NEXT:    slw 3, 3, 261074; AIX32-NEXT:  L..BB0_65: # %atomicrmw.end1075; AIX32-NEXT:    #1076; AIX32-NEXT:    lwarx 4, 0, 281077; AIX32-NEXT:    and 5, 18, 41078; AIX32-NEXT:    andc 4, 4, 31079; AIX32-NEXT:    and 5, 5, 31080; AIX32-NEXT:    or 4, 5, 41081; AIX32-NEXT:    stwcx. 4, 0, 281082; AIX32-NEXT:    bne- 0, L..BB0_651083; AIX32-NEXT:  # %bb.66: # %atomicrmw.end1084; AIX32-NEXT:    li 3, 2551085; AIX32-NEXT:    lwsync1086; AIX32-NEXT:    sync1087; AIX32-NEXT:    slw 3, 3, 241088; AIX32-NEXT:  L..BB0_67: # %atomicrmw.end1089; AIX32-NEXT:    #1090; AIX32-NEXT:    lwarx 4, 0, 271091; AIX32-NEXT:    and 5, 17, 41092; AIX32-NEXT:    andc 4, 4, 31093; AIX32-NEXT:    and 5, 5, 31094; AIX32-NEXT:    or 4, 5, 41095; AIX32-NEXT:    stwcx. 4, 0, 271096; AIX32-NEXT:    bne- 0, L..BB0_671097; AIX32-NEXT:  # %bb.68: # %atomicrmw.end1098; AIX32-NEXT:    li 3, 01099; AIX32-NEXT:    lwsync1100; AIX32-NEXT:    sync1101; AIX32-NEXT:    ori 3, 3, 655351102; AIX32-NEXT:    slw 3, 3, 221103; AIX32-NEXT:  L..BB0_69: # %atomicrmw.end1104; AIX32-NEXT:    #1105; AIX32-NEXT:    lwarx 4, 0, 251106; AIX32-NEXT:    and 5, 16, 41107; AIX32-NEXT:    andc 4, 4, 31108; AIX32-NEXT:    and 5, 5, 31109; AIX32-NEXT:    or 4, 5, 41110; AIX32-NEXT:    stwcx. 4, 0, 251111; AIX32-NEXT:    bne- 0, L..BB0_691112; AIX32-NEXT:  # %bb.70: # %atomicrmw.end1113; AIX32-NEXT:    li 3, 01114; AIX32-NEXT:    lwsync1115; AIX32-NEXT:    sync1116; AIX32-NEXT:    ori 3, 3, 655351117; AIX32-NEXT:    slw 3, 3, 211118; AIX32-NEXT:  L..BB0_71: # %atomicrmw.end1119; AIX32-NEXT:    #1120; AIX32-NEXT:    lwarx 4, 0, 231121; AIX32-NEXT:    and 5, 15, 41122; AIX32-NEXT:    andc 4, 4, 31123; AIX32-NEXT:    and 5, 5, 31124; AIX32-NEXT:    or 4, 5, 41125; AIX32-NEXT:    stwcx. 4, 0, 231126; AIX32-NEXT:    bne- 0, L..BB0_711127; AIX32-NEXT:  # %bb.72: # %atomicrmw.end1128; AIX32-NEXT:    lwsync1129; AIX32-NEXT:    sync1130; AIX32-NEXT:  L..BB0_73: # %atomicrmw.end1131; AIX32-NEXT:    #1132; AIX32-NEXT:    lwarx 3, 0, 201133; AIX32-NEXT:    and 3, 29, 31134; AIX32-NEXT:    stwcx. 3, 0, 201135; AIX32-NEXT:    bne- 0, L..BB0_731136; AIX32-NEXT:  # %bb.74: # %atomicrmw.end1137; AIX32-NEXT:    lwsync1138; AIX32-NEXT:    sync1139; AIX32-NEXT:  L..BB0_75: # %atomicrmw.end1140; AIX32-NEXT:    #1141; AIX32-NEXT:    lwarx 3, 0, 191142; AIX32-NEXT:    and 3, 29, 31143; AIX32-NEXT:    stwcx. 3, 0, 191144; AIX32-NEXT:    bne- 0, L..BB0_751145; AIX32-NEXT:  # %bb.76: # %atomicrmw.end1146; AIX32-NEXT:    lwsync1147; AIX32-NEXT:    li 4, 01148; AIX32-NEXT:    li 5, 11149; AIX32-NEXT:    mr 3, 311150; AIX32-NEXT:    li 6, 51151; AIX32-NEXT:    bl .__atomic_fetch_and_8[PR]1152; AIX32-NEXT:    nop1153; AIX32-NEXT:    li 4, 01154; AIX32-NEXT:    li 5, 11155; AIX32-NEXT:    mr 3, 301156; AIX32-NEXT:    li 6, 51157; AIX32-NEXT:    bl .__atomic_fetch_and_8[PR]1158; AIX32-NEXT:    nop1159; AIX32-NEXT:    lwz 31, 156(1) # 4-byte Folded Reload1160; AIX32-NEXT:    lwz 30, 152(1) # 4-byte Folded Reload1161; AIX32-NEXT:    lwz 29, 148(1) # 4-byte Folded Reload1162; AIX32-NEXT:    lwz 28, 144(1) # 4-byte Folded Reload1163; AIX32-NEXT:    lwz 27, 140(1) # 4-byte Folded Reload1164; AIX32-NEXT:    lwz 26, 136(1) # 4-byte Folded Reload1165; AIX32-NEXT:    lwz 25, 132(1) # 4-byte Folded Reload1166; AIX32-NEXT:    lwz 24, 128(1) # 4-byte Folded Reload1167; AIX32-NEXT:    lwz 23, 124(1) # 4-byte Folded Reload1168; AIX32-NEXT:    lwz 22, 120(1) # 4-byte Folded Reload1169; AIX32-NEXT:    lwz 21, 116(1) # 4-byte Folded Reload1170; AIX32-NEXT:    lwz 20, 112(1) # 4-byte Folded Reload1171; AIX32-NEXT:    lwz 19, 108(1) # 4-byte Folded Reload1172; AIX32-NEXT:    lwz 18, 104(1) # 4-byte Folded Reload1173; AIX32-NEXT:    lwz 17, 100(1) # 4-byte Folded Reload1174; AIX32-NEXT:    lwz 16, 96(1) # 4-byte Folded Reload1175; AIX32-NEXT:    lwz 15, 92(1) # 4-byte Folded Reload1176; AIX32-NEXT:    addi 1, 1, 1601177; AIX32-NEXT:    lwz 0, 8(1)1178; AIX32-NEXT:    mtlr 01179; AIX32-NEXT:    blr1180entry:1181  %0 = atomicrmw add ptr @sc, i8 1 seq_cst, align 11182  %1 = atomicrmw add ptr @uc, i8 1 seq_cst, align 11183  %2 = atomicrmw add ptr @ss, i16 1 seq_cst, align 21184  %3 = atomicrmw add ptr @us, i16 1 seq_cst, align 21185  %4 = atomicrmw add ptr @si, i32 1 seq_cst, align 41186  %5 = atomicrmw add ptr @ui, i32 1 seq_cst, align 41187  %6 = atomicrmw add ptr @sll, i64 1 seq_cst, align 81188  %7 = atomicrmw add ptr @ull, i64 1 seq_cst, align 81189  %8 = atomicrmw sub ptr @sc, i8 1 seq_cst, align 11190  %9 = atomicrmw sub ptr @uc, i8 1 seq_cst, align 11191  %10 = atomicrmw sub ptr @ss, i16 1 seq_cst, align 21192  %11 = atomicrmw sub ptr @us, i16 1 seq_cst, align 21193  %12 = atomicrmw sub ptr @si, i32 1 seq_cst, align 41194  %13 = atomicrmw sub ptr @ui, i32 1 seq_cst, align 41195  %14 = atomicrmw sub ptr @sll, i64 1 seq_cst, align 81196  %15 = atomicrmw sub ptr @ull, i64 1 seq_cst, align 81197  %16 = atomicrmw or ptr @sc, i8 1 seq_cst, align 11198  %17 = atomicrmw or ptr @uc, i8 1 seq_cst, align 11199  %18 = atomicrmw or ptr @ss, i16 1 seq_cst, align 21200  %19 = atomicrmw or ptr @us, i16 1 seq_cst, align 21201  %20 = atomicrmw or ptr @si, i32 1 seq_cst, align 41202  %21 = atomicrmw or ptr @ui, i32 1 seq_cst, align 41203  %22 = atomicrmw or ptr @sll, i64 1 seq_cst, align 81204  %23 = atomicrmw or ptr @ull, i64 1 seq_cst, align 81205  %24 = atomicrmw xor ptr @sc, i8 1 seq_cst, align 11206  %25 = atomicrmw xor ptr @uc, i8 1 seq_cst, align 11207  %26 = atomicrmw xor ptr @ss, i16 1 seq_cst, align 21208  %27 = atomicrmw xor ptr @us, i16 1 seq_cst, align 21209  %28 = atomicrmw xor ptr @si, i32 1 seq_cst, align 41210  %29 = atomicrmw xor ptr @ui, i32 1 seq_cst, align 41211  %30 = atomicrmw xor ptr @sll, i64 1 seq_cst, align 81212  %31 = atomicrmw xor ptr @ull, i64 1 seq_cst, align 81213  %32 = atomicrmw xor ptr @u128, i128 1 seq_cst, align 161214  %33 = atomicrmw xor ptr @s128, i128 1 seq_cst, align 161215  %34 = atomicrmw nand ptr @sc, i8 1 seq_cst, align 11216  %35 = atomicrmw nand ptr @uc, i8 1 seq_cst, align 11217  %36 = atomicrmw nand ptr @ss, i16 1 seq_cst, align 21218  %37 = atomicrmw nand ptr @us, i16 1 seq_cst, align 21219  %38 = atomicrmw nand ptr @si, i32 1 seq_cst, align 41220  %39 = atomicrmw nand ptr @ui, i32 1 seq_cst, align 41221  %40 = atomicrmw nand ptr @sll, i64 1 seq_cst, align 81222  %41 = atomicrmw nand ptr @ull, i64 1 seq_cst, align 81223  %42 = atomicrmw and ptr @sc, i8 1 seq_cst, align 11224  %43 = atomicrmw and ptr @uc, i8 1 seq_cst, align 11225  %44 = atomicrmw and ptr @ss, i16 1 seq_cst, align 21226  %45 = atomicrmw and ptr @us, i16 1 seq_cst, align 21227  %46 = atomicrmw and ptr @si, i32 1 seq_cst, align 41228  %47 = atomicrmw and ptr @ui, i32 1 seq_cst, align 41229  %48 = atomicrmw and ptr @sll, i64 1 seq_cst, align 81230  %49 = atomicrmw and ptr @ull, i64 1 seq_cst, align 81231  ret void1232}1233 1234define dso_local void @test_fetch_and_op() local_unnamed_addr #0 {1235; CHECK-LABEL: test_fetch_and_op:1236; CHECK:       # %bb.0: # %entry1237; CHECK-NEXT:    addis 4, 2, sc@toc@ha1238; CHECK-NEXT:    std 22, -80(1) # 8-byte Folded Spill1239; CHECK-NEXT:    std 23, -72(1) # 8-byte Folded Spill1240; CHECK-NEXT:    li 3, 111241; CHECK-NEXT:    std 24, -64(1) # 8-byte Folded Spill1242; CHECK-NEXT:    std 25, -56(1) # 8-byte Folded Spill1243; CHECK-NEXT:    addi 6, 4, sc@toc@l1244; CHECK-NEXT:    std 26, -48(1) # 8-byte Folded Spill1245; CHECK-NEXT:    std 27, -40(1) # 8-byte Folded Spill1246; CHECK-NEXT:    std 28, -32(1) # 8-byte Folded Spill1247; CHECK-NEXT:    std 29, -24(1) # 8-byte Folded Spill1248; CHECK-NEXT:    std 30, -16(1) # 8-byte Folded Spill1249; CHECK-NEXT:    sync1250; CHECK-NEXT:  .LBB1_1: # %entry1251; CHECK-NEXT:    #1252; CHECK-NEXT:    lbarx 5, 0, 61253; CHECK-NEXT:    addi 7, 5, 111254; CHECK-NEXT:    stbcx. 7, 0, 61255; CHECK-NEXT:    bne- 0, .LBB1_11256; CHECK-NEXT:  # %bb.2: # %entry1257; CHECK-NEXT:    lwsync1258; CHECK-NEXT:    stb 5, sc@toc@l(4)1259; CHECK-NEXT:    addis 5, 2, uc@toc@ha1260; CHECK-NEXT:    sync1261; CHECK-NEXT:    addi 8, 5, uc@toc@l1262; CHECK-NEXT:  .LBB1_3: # %entry1263; CHECK-NEXT:    #1264; CHECK-NEXT:    lbarx 7, 0, 81265; CHECK-NEXT:    addi 9, 7, 111266; CHECK-NEXT:    stbcx. 9, 0, 81267; CHECK-NEXT:    bne- 0, .LBB1_31268; CHECK-NEXT:  # %bb.4: # %entry1269; CHECK-NEXT:    lwsync1270; CHECK-NEXT:    stb 7, uc@toc@l(5)1271; CHECK-NEXT:    addis 7, 2, ss@toc@ha1272; CHECK-NEXT:    sync1273; CHECK-NEXT:    addi 10, 7, ss@toc@l1274; CHECK-NEXT:  .LBB1_5: # %entry1275; CHECK-NEXT:    #1276; CHECK-NEXT:    lharx 9, 0, 101277; CHECK-NEXT:    addi 11, 9, 111278; CHECK-NEXT:    sthcx. 11, 0, 101279; CHECK-NEXT:    bne- 0, .LBB1_51280; CHECK-NEXT:  # %bb.6: # %entry1281; CHECK-NEXT:    lwsync1282; CHECK-NEXT:    sth 9, ss@toc@l(7)1283; CHECK-NEXT:    addis 9, 2, us@toc@ha1284; CHECK-NEXT:    sync1285; CHECK-NEXT:    addi 0, 9, us@toc@l1286; CHECK-NEXT:  .LBB1_7: # %entry1287; CHECK-NEXT:    #1288; CHECK-NEXT:    lharx 11, 0, 01289; CHECK-NEXT:    addi 12, 11, 111290; CHECK-NEXT:    sthcx. 12, 0, 01291; CHECK-NEXT:    bne- 0, .LBB1_71292; CHECK-NEXT:  # %bb.8: # %entry1293; CHECK-NEXT:    addis 12, 2, si@toc@ha1294; CHECK-NEXT:    lwsync1295; CHECK-NEXT:    sth 11, us@toc@l(9)1296; CHECK-NEXT:    sync1297; CHECK-NEXT:    addi 29, 12, si@toc@l1298; CHECK-NEXT:  .LBB1_9: # %entry1299; CHECK-NEXT:    #1300; CHECK-NEXT:    lwarx 11, 0, 291301; CHECK-NEXT:    addi 30, 11, 111302; CHECK-NEXT:    stwcx. 30, 0, 291303; CHECK-NEXT:    bne- 0, .LBB1_91304; CHECK-NEXT:  # %bb.10: # %entry1305; CHECK-NEXT:    addis 30, 2, ui@toc@ha1306; CHECK-NEXT:    lwsync1307; CHECK-NEXT:    stw 11, si@toc@l(12)1308; CHECK-NEXT:    sync1309; CHECK-NEXT:    addi 27, 30, ui@toc@l1310; CHECK-NEXT:  .LBB1_11: # %entry1311; CHECK-NEXT:    #1312; CHECK-NEXT:    lwarx 11, 0, 271313; CHECK-NEXT:    addi 28, 11, 111314; CHECK-NEXT:    stwcx. 28, 0, 271315; CHECK-NEXT:    bne- 0, .LBB1_111316; CHECK-NEXT:  # %bb.12: # %entry1317; CHECK-NEXT:    addis 28, 2, sll@toc@ha1318; CHECK-NEXT:    lwsync1319; CHECK-NEXT:    stw 11, ui@toc@l(30)1320; CHECK-NEXT:    li 11, 111321; CHECK-NEXT:    sync1322; CHECK-NEXT:    addi 25, 28, sll@toc@l1323; CHECK-NEXT:  .LBB1_13: # %entry1324; CHECK-NEXT:    #1325; CHECK-NEXT:    ldarx 26, 0, 251326; CHECK-NEXT:    addi 24, 26, 111327; CHECK-NEXT:    stdcx. 24, 0, 251328; CHECK-NEXT:    bne- 0, .LBB1_131329; CHECK-NEXT:  # %bb.14: # %entry1330; CHECK-NEXT:    lwsync1331; CHECK-NEXT:    std 26, sll@toc@l(28)1332; CHECK-NEXT:    addis 26, 2, ull@toc@ha1333; CHECK-NEXT:    sync1334; CHECK-NEXT:    addi 24, 26, ull@toc@l1335; CHECK-NEXT:  .LBB1_15: # %entry1336; CHECK-NEXT:    #1337; CHECK-NEXT:    ldarx 23, 0, 241338; CHECK-NEXT:    addi 22, 23, 111339; CHECK-NEXT:    stdcx. 22, 0, 241340; CHECK-NEXT:    bne- 0, .LBB1_151341; CHECK-NEXT:  # %bb.16: # %entry1342; CHECK-NEXT:    lwsync1343; CHECK-NEXT:    std 23, ull@toc@l(26)1344; CHECK-NEXT:    sync1345; CHECK-NEXT:  .LBB1_17: # %entry1346; CHECK-NEXT:    #1347; CHECK-NEXT:    lbarx 23, 0, 61348; CHECK-NEXT:    sub 22, 23, 31349; CHECK-NEXT:    stbcx. 22, 0, 61350; CHECK-NEXT:    bne- 0, .LBB1_171351; CHECK-NEXT:  # %bb.18: # %entry1352; CHECK-NEXT:    lwsync1353; CHECK-NEXT:    stb 23, sc@toc@l(4)1354; CHECK-NEXT:    sync1355; CHECK-NEXT:  .LBB1_19: # %entry1356; CHECK-NEXT:    #1357; CHECK-NEXT:    lbarx 23, 0, 81358; CHECK-NEXT:    sub 22, 23, 31359; CHECK-NEXT:    stbcx. 22, 0, 81360; CHECK-NEXT:    bne- 0, .LBB1_191361; CHECK-NEXT:  # %bb.20: # %entry1362; CHECK-NEXT:    lwsync1363; CHECK-NEXT:    stb 23, uc@toc@l(5)1364; CHECK-NEXT:    sync1365; CHECK-NEXT:  .LBB1_21: # %entry1366; CHECK-NEXT:    #1367; CHECK-NEXT:    lharx 23, 0, 101368; CHECK-NEXT:    sub 22, 23, 31369; CHECK-NEXT:    sthcx. 22, 0, 101370; CHECK-NEXT:    bne- 0, .LBB1_211371; CHECK-NEXT:  # %bb.22: # %entry1372; CHECK-NEXT:    lwsync1373; CHECK-NEXT:    sth 23, ss@toc@l(7)1374; CHECK-NEXT:    sync1375; CHECK-NEXT:  .LBB1_23: # %entry1376; CHECK-NEXT:    #1377; CHECK-NEXT:    lharx 23, 0, 01378; CHECK-NEXT:    sub 22, 23, 31379; CHECK-NEXT:    sthcx. 22, 0, 01380; CHECK-NEXT:    bne- 0, .LBB1_231381; CHECK-NEXT:  # %bb.24: # %entry1382; CHECK-NEXT:    lwsync1383; CHECK-NEXT:    sth 23, us@toc@l(9)1384; CHECK-NEXT:    sync1385; CHECK-NEXT:  .LBB1_25: # %entry1386; CHECK-NEXT:    #1387; CHECK-NEXT:    lwarx 23, 0, 291388; CHECK-NEXT:    sub 22, 23, 31389; CHECK-NEXT:    stwcx. 22, 0, 291390; CHECK-NEXT:    bne- 0, .LBB1_251391; CHECK-NEXT:  # %bb.26: # %entry1392; CHECK-NEXT:    lwsync1393; CHECK-NEXT:    stw 23, si@toc@l(12)1394; CHECK-NEXT:    sync1395; CHECK-NEXT:  .LBB1_27: # %entry1396; CHECK-NEXT:    #1397; CHECK-NEXT:    lwarx 23, 0, 271398; CHECK-NEXT:    sub 22, 23, 31399; CHECK-NEXT:    stwcx. 22, 0, 271400; CHECK-NEXT:    bne- 0, .LBB1_271401; CHECK-NEXT:  # %bb.28: # %entry1402; CHECK-NEXT:    lwsync1403; CHECK-NEXT:    stw 23, ui@toc@l(30)1404; CHECK-NEXT:    sync1405; CHECK-NEXT:  .LBB1_29: # %entry1406; CHECK-NEXT:    #1407; CHECK-NEXT:    ldarx 23, 0, 251408; CHECK-NEXT:    sub 22, 23, 111409; CHECK-NEXT:    stdcx. 22, 0, 251410; CHECK-NEXT:    bne- 0, .LBB1_291411; CHECK-NEXT:  # %bb.30: # %entry1412; CHECK-NEXT:    lwsync1413; CHECK-NEXT:    std 23, sll@toc@l(28)1414; CHECK-NEXT:    sync1415; CHECK-NEXT:  .LBB1_31: # %entry1416; CHECK-NEXT:    #1417; CHECK-NEXT:    ldarx 23, 0, 241418; CHECK-NEXT:    sub 22, 23, 111419; CHECK-NEXT:    stdcx. 22, 0, 241420; CHECK-NEXT:    bne- 0, .LBB1_311421; CHECK-NEXT:  # %bb.32: # %entry1422; CHECK-NEXT:    lwsync1423; CHECK-NEXT:    std 23, ull@toc@l(26)1424; CHECK-NEXT:    sync1425; CHECK-NEXT:  .LBB1_33: # %entry1426; CHECK-NEXT:    #1427; CHECK-NEXT:    lbarx 23, 0, 61428; CHECK-NEXT:    ori 22, 23, 111429; CHECK-NEXT:    stbcx. 22, 0, 61430; CHECK-NEXT:    bne- 0, .LBB1_331431; CHECK-NEXT:  # %bb.34: # %entry1432; CHECK-NEXT:    lwsync1433; CHECK-NEXT:    stb 23, sc@toc@l(4)1434; CHECK-NEXT:    sync1435; CHECK-NEXT:  .LBB1_35: # %entry1436; CHECK-NEXT:    #1437; CHECK-NEXT:    lbarx 23, 0, 81438; CHECK-NEXT:    ori 22, 23, 111439; CHECK-NEXT:    stbcx. 22, 0, 81440; CHECK-NEXT:    bne- 0, .LBB1_351441; CHECK-NEXT:  # %bb.36: # %entry1442; CHECK-NEXT:    lwsync1443; CHECK-NEXT:    stb 23, uc@toc@l(5)1444; CHECK-NEXT:    sync1445; CHECK-NEXT:  .LBB1_37: # %entry1446; CHECK-NEXT:    #1447; CHECK-NEXT:    lharx 23, 0, 101448; CHECK-NEXT:    ori 22, 23, 111449; CHECK-NEXT:    sthcx. 22, 0, 101450; CHECK-NEXT:    bne- 0, .LBB1_371451; CHECK-NEXT:  # %bb.38: # %entry1452; CHECK-NEXT:    lwsync1453; CHECK-NEXT:    sth 23, ss@toc@l(7)1454; CHECK-NEXT:    sync1455; CHECK-NEXT:  .LBB1_39: # %entry1456; CHECK-NEXT:    #1457; CHECK-NEXT:    lharx 23, 0, 01458; CHECK-NEXT:    ori 22, 23, 111459; CHECK-NEXT:    sthcx. 22, 0, 01460; CHECK-NEXT:    bne- 0, .LBB1_391461; CHECK-NEXT:  # %bb.40: # %entry1462; CHECK-NEXT:    lwsync1463; CHECK-NEXT:    sth 23, us@toc@l(9)1464; CHECK-NEXT:    sync1465; CHECK-NEXT:  .LBB1_41: # %entry1466; CHECK-NEXT:    #1467; CHECK-NEXT:    lwarx 23, 0, 291468; CHECK-NEXT:    ori 22, 23, 111469; CHECK-NEXT:    stwcx. 22, 0, 291470; CHECK-NEXT:    bne- 0, .LBB1_411471; CHECK-NEXT:  # %bb.42: # %entry1472; CHECK-NEXT:    lwsync1473; CHECK-NEXT:    stw 23, si@toc@l(12)1474; CHECK-NEXT:    sync1475; CHECK-NEXT:  .LBB1_43: # %entry1476; CHECK-NEXT:    #1477; CHECK-NEXT:    lwarx 23, 0, 271478; CHECK-NEXT:    ori 22, 23, 111479; CHECK-NEXT:    stwcx. 22, 0, 271480; CHECK-NEXT:    bne- 0, .LBB1_431481; CHECK-NEXT:  # %bb.44: # %entry1482; CHECK-NEXT:    lwsync1483; CHECK-NEXT:    stw 23, ui@toc@l(30)1484; CHECK-NEXT:    sync1485; CHECK-NEXT:  .LBB1_45: # %entry1486; CHECK-NEXT:    #1487; CHECK-NEXT:    ldarx 23, 0, 251488; CHECK-NEXT:    ori 22, 23, 111489; CHECK-NEXT:    stdcx. 22, 0, 251490; CHECK-NEXT:    bne- 0, .LBB1_451491; CHECK-NEXT:  # %bb.46: # %entry1492; CHECK-NEXT:    lwsync1493; CHECK-NEXT:    std 23, sll@toc@l(28)1494; CHECK-NEXT:    sync1495; CHECK-NEXT:  .LBB1_47: # %entry1496; CHECK-NEXT:    #1497; CHECK-NEXT:    ldarx 23, 0, 241498; CHECK-NEXT:    ori 22, 23, 111499; CHECK-NEXT:    stdcx. 22, 0, 241500; CHECK-NEXT:    bne- 0, .LBB1_471501; CHECK-NEXT:  # %bb.48: # %entry1502; CHECK-NEXT:    lwsync1503; CHECK-NEXT:    std 23, ull@toc@l(26)1504; CHECK-NEXT:    sync1505; CHECK-NEXT:  .LBB1_49: # %entry1506; CHECK-NEXT:    #1507; CHECK-NEXT:    lbarx 23, 0, 61508; CHECK-NEXT:    xori 22, 23, 111509; CHECK-NEXT:    stbcx. 22, 0, 61510; CHECK-NEXT:    bne- 0, .LBB1_491511; CHECK-NEXT:  # %bb.50: # %entry1512; CHECK-NEXT:    lwsync1513; CHECK-NEXT:    stb 23, sc@toc@l(4)1514; CHECK-NEXT:    sync1515; CHECK-NEXT:  .LBB1_51: # %entry1516; CHECK-NEXT:    #1517; CHECK-NEXT:    lbarx 23, 0, 81518; CHECK-NEXT:    xori 22, 23, 111519; CHECK-NEXT:    stbcx. 22, 0, 81520; CHECK-NEXT:    bne- 0, .LBB1_511521; CHECK-NEXT:  # %bb.52: # %entry1522; CHECK-NEXT:    lwsync1523; CHECK-NEXT:    stb 23, uc@toc@l(5)1524; CHECK-NEXT:    sync1525; CHECK-NEXT:  .LBB1_53: # %entry1526; CHECK-NEXT:    #1527; CHECK-NEXT:    lharx 23, 0, 101528; CHECK-NEXT:    xori 22, 23, 111529; CHECK-NEXT:    sthcx. 22, 0, 101530; CHECK-NEXT:    bne- 0, .LBB1_531531; CHECK-NEXT:  # %bb.54: # %entry1532; CHECK-NEXT:    lwsync1533; CHECK-NEXT:    sth 23, ss@toc@l(7)1534; CHECK-NEXT:    sync1535; CHECK-NEXT:  .LBB1_55: # %entry1536; CHECK-NEXT:    #1537; CHECK-NEXT:    lharx 23, 0, 01538; CHECK-NEXT:    xori 22, 23, 111539; CHECK-NEXT:    sthcx. 22, 0, 01540; CHECK-NEXT:    bne- 0, .LBB1_551541; CHECK-NEXT:  # %bb.56: # %entry1542; CHECK-NEXT:    lwsync1543; CHECK-NEXT:    sth 23, us@toc@l(9)1544; CHECK-NEXT:    sync1545; CHECK-NEXT:  .LBB1_57: # %entry1546; CHECK-NEXT:    #1547; CHECK-NEXT:    lwarx 23, 0, 291548; CHECK-NEXT:    xori 22, 23, 111549; CHECK-NEXT:    stwcx. 22, 0, 291550; CHECK-NEXT:    bne- 0, .LBB1_571551; CHECK-NEXT:  # %bb.58: # %entry1552; CHECK-NEXT:    lwsync1553; CHECK-NEXT:    stw 23, si@toc@l(12)1554; CHECK-NEXT:    sync1555; CHECK-NEXT:  .LBB1_59: # %entry1556; CHECK-NEXT:    #1557; CHECK-NEXT:    lwarx 23, 0, 271558; CHECK-NEXT:    xori 22, 23, 111559; CHECK-NEXT:    stwcx. 22, 0, 271560; CHECK-NEXT:    bne- 0, .LBB1_591561; CHECK-NEXT:  # %bb.60: # %entry1562; CHECK-NEXT:    lwsync1563; CHECK-NEXT:    stw 23, ui@toc@l(30)1564; CHECK-NEXT:    sync1565; CHECK-NEXT:  .LBB1_61: # %entry1566; CHECK-NEXT:    #1567; CHECK-NEXT:    ldarx 23, 0, 251568; CHECK-NEXT:    xori 22, 23, 111569; CHECK-NEXT:    stdcx. 22, 0, 251570; CHECK-NEXT:    bne- 0, .LBB1_611571; CHECK-NEXT:  # %bb.62: # %entry1572; CHECK-NEXT:    lwsync1573; CHECK-NEXT:    std 23, sll@toc@l(28)1574; CHECK-NEXT:    sync1575; CHECK-NEXT:  .LBB1_63: # %entry1576; CHECK-NEXT:    #1577; CHECK-NEXT:    ldarx 23, 0, 241578; CHECK-NEXT:    xori 22, 23, 111579; CHECK-NEXT:    stdcx. 22, 0, 241580; CHECK-NEXT:    bne- 0, .LBB1_631581; CHECK-NEXT:  # %bb.64: # %entry1582; CHECK-NEXT:    lwsync1583; CHECK-NEXT:    std 23, ull@toc@l(26)1584; CHECK-NEXT:    sync1585; CHECK-NEXT:  .LBB1_65: # %entry1586; CHECK-NEXT:    #1587; CHECK-NEXT:    lbarx 23, 0, 61588; CHECK-NEXT:    nand 22, 3, 231589; CHECK-NEXT:    stbcx. 22, 0, 61590; CHECK-NEXT:    bne- 0, .LBB1_651591; CHECK-NEXT:  # %bb.66: # %entry1592; CHECK-NEXT:    lwsync1593; CHECK-NEXT:    stb 23, sc@toc@l(4)1594; CHECK-NEXT:    sync1595; CHECK-NEXT:  .LBB1_67: # %entry1596; CHECK-NEXT:    #1597; CHECK-NEXT:    lbarx 23, 0, 81598; CHECK-NEXT:    nand 22, 3, 231599; CHECK-NEXT:    stbcx. 22, 0, 81600; CHECK-NEXT:    bne- 0, .LBB1_671601; CHECK-NEXT:  # %bb.68: # %entry1602; CHECK-NEXT:    lwsync1603; CHECK-NEXT:    stb 23, uc@toc@l(5)1604; CHECK-NEXT:    sync1605; CHECK-NEXT:  .LBB1_69: # %entry1606; CHECK-NEXT:    #1607; CHECK-NEXT:    lharx 23, 0, 101608; CHECK-NEXT:    nand 22, 3, 231609; CHECK-NEXT:    sthcx. 22, 0, 101610; CHECK-NEXT:    bne- 0, .LBB1_691611; CHECK-NEXT:  # %bb.70: # %entry1612; CHECK-NEXT:    lwsync1613; CHECK-NEXT:    sth 23, ss@toc@l(7)1614; CHECK-NEXT:    sync1615; CHECK-NEXT:  .LBB1_71: # %entry1616; CHECK-NEXT:    #1617; CHECK-NEXT:    lharx 23, 0, 01618; CHECK-NEXT:    nand 22, 3, 231619; CHECK-NEXT:    sthcx. 22, 0, 01620; CHECK-NEXT:    bne- 0, .LBB1_711621; CHECK-NEXT:  # %bb.72: # %entry1622; CHECK-NEXT:    lwsync1623; CHECK-NEXT:    sth 23, us@toc@l(9)1624; CHECK-NEXT:    sync1625; CHECK-NEXT:  .LBB1_73: # %entry1626; CHECK-NEXT:    #1627; CHECK-NEXT:    lwarx 23, 0, 291628; CHECK-NEXT:    nand 22, 3, 231629; CHECK-NEXT:    stwcx. 22, 0, 291630; CHECK-NEXT:    bne- 0, .LBB1_731631; CHECK-NEXT:  # %bb.74: # %entry1632; CHECK-NEXT:    lwsync1633; CHECK-NEXT:    stw 23, si@toc@l(12)1634; CHECK-NEXT:    sync1635; CHECK-NEXT:  .LBB1_75: # %entry1636; CHECK-NEXT:    #1637; CHECK-NEXT:    lwarx 23, 0, 271638; CHECK-NEXT:    nand 22, 3, 231639; CHECK-NEXT:    stwcx. 22, 0, 271640; CHECK-NEXT:    bne- 0, .LBB1_751641; CHECK-NEXT:  # %bb.76: # %entry1642; CHECK-NEXT:    lwsync1643; CHECK-NEXT:    stw 23, ui@toc@l(30)1644; CHECK-NEXT:    sync1645; CHECK-NEXT:  .LBB1_77: # %entry1646; CHECK-NEXT:    #1647; CHECK-NEXT:    ldarx 23, 0, 251648; CHECK-NEXT:    nand 22, 11, 231649; CHECK-NEXT:    stdcx. 22, 0, 251650; CHECK-NEXT:    bne- 0, .LBB1_771651; CHECK-NEXT:  # %bb.78: # %entry1652; CHECK-NEXT:    lwsync1653; CHECK-NEXT:    std 23, sll@toc@l(28)1654; CHECK-NEXT:    sync1655; CHECK-NEXT:  .LBB1_79: # %entry1656; CHECK-NEXT:    #1657; CHECK-NEXT:    ldarx 23, 0, 241658; CHECK-NEXT:    nand 22, 11, 231659; CHECK-NEXT:    stdcx. 22, 0, 241660; CHECK-NEXT:    bne- 0, .LBB1_791661; CHECK-NEXT:  # %bb.80: # %entry1662; CHECK-NEXT:    lwsync1663; CHECK-NEXT:    std 23, ull@toc@l(26)1664; CHECK-NEXT:    sync1665; CHECK-NEXT:  .LBB1_81: # %entry1666; CHECK-NEXT:    #1667; CHECK-NEXT:    lbarx 23, 0, 61668; CHECK-NEXT:    and 22, 3, 231669; CHECK-NEXT:    stbcx. 22, 0, 61670; CHECK-NEXT:    bne- 0, .LBB1_811671; CHECK-NEXT:  # %bb.82: # %entry1672; CHECK-NEXT:    lwsync1673; CHECK-NEXT:    stb 23, sc@toc@l(4)1674; CHECK-NEXT:    sync1675; CHECK-NEXT:  .LBB1_83: # %entry1676; CHECK-NEXT:    #1677; CHECK-NEXT:    lbarx 4, 0, 81678; CHECK-NEXT:    and 6, 3, 41679; CHECK-NEXT:    stbcx. 6, 0, 81680; CHECK-NEXT:    bne- 0, .LBB1_831681; CHECK-NEXT:  # %bb.84: # %entry1682; CHECK-NEXT:    lwsync1683; CHECK-NEXT:    stb 4, uc@toc@l(5)1684; CHECK-NEXT:    sync1685; CHECK-NEXT:  .LBB1_85: # %entry1686; CHECK-NEXT:    #1687; CHECK-NEXT:    lharx 4, 0, 101688; CHECK-NEXT:    and 5, 3, 41689; CHECK-NEXT:    sthcx. 5, 0, 101690; CHECK-NEXT:    bne- 0, .LBB1_851691; CHECK-NEXT:  # %bb.86: # %entry1692; CHECK-NEXT:    lwsync1693; CHECK-NEXT:    sth 4, ss@toc@l(7)1694; CHECK-NEXT:    sync1695; CHECK-NEXT:  .LBB1_87: # %entry1696; CHECK-NEXT:    #1697; CHECK-NEXT:    lharx 4, 0, 01698; CHECK-NEXT:    and 5, 3, 41699; CHECK-NEXT:    sthcx. 5, 0, 01700; CHECK-NEXT:    bne- 0, .LBB1_871701; CHECK-NEXT:  # %bb.88: # %entry1702; CHECK-NEXT:    lwsync1703; CHECK-NEXT:    sth 4, us@toc@l(9)1704; CHECK-NEXT:    sync1705; CHECK-NEXT:  .LBB1_89: # %entry1706; CHECK-NEXT:    #1707; CHECK-NEXT:    lwarx 4, 0, 291708; CHECK-NEXT:    and 5, 3, 41709; CHECK-NEXT:    stwcx. 5, 0, 291710; CHECK-NEXT:    bne- 0, .LBB1_891711; CHECK-NEXT:  # %bb.90: # %entry1712; CHECK-NEXT:    lwsync1713; CHECK-NEXT:    stw 4, si@toc@l(12)1714; CHECK-NEXT:    sync1715; CHECK-NEXT:  .LBB1_91: # %entry1716; CHECK-NEXT:    #1717; CHECK-NEXT:    lwarx 4, 0, 271718; CHECK-NEXT:    and 5, 3, 41719; CHECK-NEXT:    stwcx. 5, 0, 271720; CHECK-NEXT:    bne- 0, .LBB1_911721; CHECK-NEXT:  # %bb.92: # %entry1722; CHECK-NEXT:    lwsync1723; CHECK-NEXT:    stw 4, ui@toc@l(30)1724; CHECK-NEXT:    sync1725; CHECK-NEXT:  .LBB1_93: # %entry1726; CHECK-NEXT:    #1727; CHECK-NEXT:    ldarx 3, 0, 251728; CHECK-NEXT:    and 4, 11, 31729; CHECK-NEXT:    stdcx. 4, 0, 251730; CHECK-NEXT:    bne- 0, .LBB1_931731; CHECK-NEXT:  # %bb.94: # %entry1732; CHECK-NEXT:    lwsync1733; CHECK-NEXT:    std 3, sll@toc@l(28)1734; CHECK-NEXT:    sync1735; CHECK-NEXT:  .LBB1_95: # %entry1736; CHECK-NEXT:    #1737; CHECK-NEXT:    ldarx 3, 0, 241738; CHECK-NEXT:    and 4, 11, 31739; CHECK-NEXT:    stdcx. 4, 0, 241740; CHECK-NEXT:    bne- 0, .LBB1_951741; CHECK-NEXT:  # %bb.96: # %entry1742; CHECK-NEXT:    lwsync1743; CHECK-NEXT:    std 3, ull@toc@l(26)1744; CHECK-NEXT:    ld 30, -16(1) # 8-byte Folded Reload1745; CHECK-NEXT:    ld 29, -24(1) # 8-byte Folded Reload1746; CHECK-NEXT:    ld 28, -32(1) # 8-byte Folded Reload1747; CHECK-NEXT:    ld 27, -40(1) # 8-byte Folded Reload1748; CHECK-NEXT:    ld 26, -48(1) # 8-byte Folded Reload1749; CHECK-NEXT:    ld 25, -56(1) # 8-byte Folded Reload1750; CHECK-NEXT:    ld 24, -64(1) # 8-byte Folded Reload1751; CHECK-NEXT:    ld 23, -72(1) # 8-byte Folded Reload1752; CHECK-NEXT:    ld 22, -80(1) # 8-byte Folded Reload1753; CHECK-NEXT:    blr1754;1755; AIX32-LABEL: test_fetch_and_op:1756; AIX32:       # %bb.0: # %entry1757; AIX32-NEXT:    mflr 01758; AIX32-NEXT:    stwu 1, -144(1)1759; AIX32-NEXT:    lwz 4, L..C0(2) # @sc1760; AIX32-NEXT:    stw 0, 152(1)1761; AIX32-NEXT:    li 7, 111762; AIX32-NEXT:    stw 26, 120(1) # 4-byte Folded Spill1763; AIX32-NEXT:    stw 13, 68(1) # 4-byte Folded Spill1764; AIX32-NEXT:    stw 14, 72(1) # 4-byte Folded Spill1765; AIX32-NEXT:    stw 15, 76(1) # 4-byte Folded Spill1766; AIX32-NEXT:    rlwinm 3, 4, 3, 27, 281767; AIX32-NEXT:    stw 16, 80(1) # 4-byte Folded Spill1768; AIX32-NEXT:    stw 17, 84(1) # 4-byte Folded Spill1769; AIX32-NEXT:    stw 18, 88(1) # 4-byte Folded Spill1770; AIX32-NEXT:    xori 26, 3, 241771; AIX32-NEXT:    li 3, 2551772; AIX32-NEXT:    slw 3, 3, 261773; AIX32-NEXT:    stw 19, 92(1) # 4-byte Folded Spill1774; AIX32-NEXT:    stw 20, 96(1) # 4-byte Folded Spill1775; AIX32-NEXT:    stw 21, 100(1) # 4-byte Folded Spill1776; AIX32-NEXT:    stw 22, 104(1) # 4-byte Folded Spill1777; AIX32-NEXT:    stw 23, 108(1) # 4-byte Folded Spill1778; AIX32-NEXT:    stw 24, 112(1) # 4-byte Folded Spill1779; AIX32-NEXT:    stw 25, 116(1) # 4-byte Folded Spill1780; AIX32-NEXT:    stw 27, 124(1) # 4-byte Folded Spill1781; AIX32-NEXT:    stw 28, 128(1) # 4-byte Folded Spill1782; AIX32-NEXT:    stw 29, 132(1) # 4-byte Folded Spill1783; AIX32-NEXT:    stw 30, 136(1) # 4-byte Folded Spill1784; AIX32-NEXT:    stw 31, 140(1) # 4-byte Folded Spill1785; AIX32-NEXT:    sync1786; AIX32-NEXT:    rlwinm 25, 4, 0, 0, 291787; AIX32-NEXT:    slw 24, 7, 261788; AIX32-NEXT:    stw 4, 64(1) # 4-byte Folded Spill1789; AIX32-NEXT:  L..BB1_1: # %entry1790; AIX32-NEXT:    #1791; AIX32-NEXT:    lwarx 4, 0, 251792; AIX32-NEXT:    add 5, 24, 41793; AIX32-NEXT:    andc 6, 4, 31794; AIX32-NEXT:    and 5, 5, 31795; AIX32-NEXT:    or 5, 5, 61796; AIX32-NEXT:    stwcx. 5, 0, 251797; AIX32-NEXT:    bne- 0, L..BB1_11798; AIX32-NEXT:  # %bb.2: # %entry1799; AIX32-NEXT:    srw 3, 4, 261800; AIX32-NEXT:    lwsync1801; AIX32-NEXT:    lwz 27, L..C1(2) # @uc1802; AIX32-NEXT:    lwz 4, 64(1) # 4-byte Folded Reload1803; AIX32-NEXT:    clrlwi 3, 3, 241804; AIX32-NEXT:    rlwinm 21, 27, 0, 0, 291805; AIX32-NEXT:    stb 3, 0(4)1806; AIX32-NEXT:    rlwinm 3, 27, 3, 27, 281807; AIX32-NEXT:    sync1808; AIX32-NEXT:    xori 22, 3, 241809; AIX32-NEXT:    li 3, 2551810; AIX32-NEXT:    slw 20, 7, 221811; AIX32-NEXT:    slw 3, 3, 221812; AIX32-NEXT:  L..BB1_3: # %entry1813; AIX32-NEXT:    #1814; AIX32-NEXT:    lwarx 4, 0, 211815; AIX32-NEXT:    add 5, 20, 41816; AIX32-NEXT:    andc 6, 4, 31817; AIX32-NEXT:    and 5, 5, 31818; AIX32-NEXT:    or 5, 5, 61819; AIX32-NEXT:    stwcx. 5, 0, 211820; AIX32-NEXT:    bne- 0, L..BB1_31821; AIX32-NEXT:  # %bb.4: # %entry1822; AIX32-NEXT:    srw 3, 4, 221823; AIX32-NEXT:    lwz 23, L..C2(2) # @ss1824; AIX32-NEXT:    lwsync1825; AIX32-NEXT:    clrlwi 3, 3, 241826; AIX32-NEXT:    rlwinm 17, 23, 0, 0, 291827; AIX32-NEXT:    stb 3, 0(27)1828; AIX32-NEXT:    sync1829; AIX32-NEXT:    rlwinm 3, 23, 3, 27, 271830; AIX32-NEXT:    xori 18, 3, 161831; AIX32-NEXT:    li 3, 01832; AIX32-NEXT:    ori 3, 3, 655351833; AIX32-NEXT:    slw 16, 7, 181834; AIX32-NEXT:    slw 3, 3, 181835; AIX32-NEXT:  L..BB1_5: # %entry1836; AIX32-NEXT:    #1837; AIX32-NEXT:    lwarx 4, 0, 171838; AIX32-NEXT:    add 5, 16, 41839; AIX32-NEXT:    andc 6, 4, 31840; AIX32-NEXT:    and 5, 5, 31841; AIX32-NEXT:    or 5, 5, 61842; AIX32-NEXT:    stwcx. 5, 0, 171843; AIX32-NEXT:    bne- 0, L..BB1_51844; AIX32-NEXT:  # %bb.6: # %entry1845; AIX32-NEXT:    srw 3, 4, 181846; AIX32-NEXT:    lwz 19, L..C3(2) # @us1847; AIX32-NEXT:    lwsync1848; AIX32-NEXT:    clrlwi 3, 3, 161849; AIX32-NEXT:    rlwinm 14, 19, 0, 0, 291850; AIX32-NEXT:    sth 3, 0(23)1851; AIX32-NEXT:    sync1852; AIX32-NEXT:    rlwinm 3, 19, 3, 27, 271853; AIX32-NEXT:    xori 15, 3, 161854; AIX32-NEXT:    li 3, 01855; AIX32-NEXT:    ori 3, 3, 655351856; AIX32-NEXT:    slw 13, 7, 151857; AIX32-NEXT:    slw 3, 3, 151858; AIX32-NEXT:  L..BB1_7: # %entry1859; AIX32-NEXT:    #1860; AIX32-NEXT:    lwarx 4, 0, 141861; AIX32-NEXT:    add 5, 13, 41862; AIX32-NEXT:    andc 6, 4, 31863; AIX32-NEXT:    and 5, 5, 31864; AIX32-NEXT:    or 5, 5, 61865; AIX32-NEXT:    stwcx. 5, 0, 141866; AIX32-NEXT:    bne- 0, L..BB1_71867; AIX32-NEXT:  # %bb.8: # %entry1868; AIX32-NEXT:    srw 3, 4, 151869; AIX32-NEXT:    lwsync1870; AIX32-NEXT:    lwz 29, L..C4(2) # @si1871; AIX32-NEXT:    clrlwi 3, 3, 161872; AIX32-NEXT:    sth 3, 0(19)1873; AIX32-NEXT:    sync1874; AIX32-NEXT:  L..BB1_9: # %entry1875; AIX32-NEXT:    #1876; AIX32-NEXT:    lwarx 3, 0, 291877; AIX32-NEXT:    addi 4, 3, 111878; AIX32-NEXT:    stwcx. 4, 0, 291879; AIX32-NEXT:    bne- 0, L..BB1_91880; AIX32-NEXT:  # %bb.10: # %entry1881; AIX32-NEXT:    lwsync1882; AIX32-NEXT:    stw 3, 0(29)1883; AIX32-NEXT:    lwz 28, L..C5(2) # @ui1884; AIX32-NEXT:    sync1885; AIX32-NEXT:  L..BB1_11: # %entry1886; AIX32-NEXT:    #1887; AIX32-NEXT:    lwarx 3, 0, 281888; AIX32-NEXT:    addi 4, 3, 111889; AIX32-NEXT:    stwcx. 4, 0, 281890; AIX32-NEXT:    bne- 0, L..BB1_111891; AIX32-NEXT:  # %bb.12: # %entry1892; AIX32-NEXT:    lwz 31, L..C6(2) # @sll1893; AIX32-NEXT:    lwsync1894; AIX32-NEXT:    li 4, 01895; AIX32-NEXT:    li 5, 111896; AIX32-NEXT:    li 6, 51897; AIX32-NEXT:    stw 3, 0(28)1898; AIX32-NEXT:    mr 3, 311899; AIX32-NEXT:    bl .__atomic_fetch_add_8[PR]1900; AIX32-NEXT:    nop1901; AIX32-NEXT:    lwz 30, L..C7(2) # @ull1902; AIX32-NEXT:    stw 4, 4(31)1903; AIX32-NEXT:    li 4, 01904; AIX32-NEXT:    li 5, 111905; AIX32-NEXT:    li 6, 51906; AIX32-NEXT:    stw 3, 0(31)1907; AIX32-NEXT:    mr 3, 301908; AIX32-NEXT:    bl .__atomic_fetch_add_8[PR]1909; AIX32-NEXT:    nop1910; AIX32-NEXT:    stw 3, 0(30)1911; AIX32-NEXT:    li 3, 2551912; AIX32-NEXT:    stw 4, 4(30)1913; AIX32-NEXT:    sync1914; AIX32-NEXT:    slw 3, 3, 261915; AIX32-NEXT:  L..BB1_13: # %entry1916; AIX32-NEXT:    #1917; AIX32-NEXT:    lwarx 4, 0, 251918; AIX32-NEXT:    sub 5, 4, 241919; AIX32-NEXT:    andc 6, 4, 31920; AIX32-NEXT:    and 5, 5, 31921; AIX32-NEXT:    or 5, 5, 61922; AIX32-NEXT:    stwcx. 5, 0, 251923; AIX32-NEXT:    bne- 0, L..BB1_131924; AIX32-NEXT:  # %bb.14: # %entry1925; AIX32-NEXT:    srw 3, 4, 261926; AIX32-NEXT:    lwsync1927; AIX32-NEXT:    lwz 4, 64(1) # 4-byte Folded Reload1928; AIX32-NEXT:    clrlwi 3, 3, 241929; AIX32-NEXT:    stb 3, 0(4)1930; AIX32-NEXT:    li 3, 2551931; AIX32-NEXT:    sync1932; AIX32-NEXT:    slw 3, 3, 221933; AIX32-NEXT:  L..BB1_15: # %entry1934; AIX32-NEXT:    #1935; AIX32-NEXT:    lwarx 4, 0, 211936; AIX32-NEXT:    sub 5, 4, 201937; AIX32-NEXT:    andc 6, 4, 31938; AIX32-NEXT:    and 5, 5, 31939; AIX32-NEXT:    or 5, 5, 61940; AIX32-NEXT:    stwcx. 5, 0, 211941; AIX32-NEXT:    bne- 0, L..BB1_151942; AIX32-NEXT:  # %bb.16: # %entry1943; AIX32-NEXT:    srw 3, 4, 221944; AIX32-NEXT:    lwsync1945; AIX32-NEXT:    li 7, 111946; AIX32-NEXT:    clrlwi 3, 3, 241947; AIX32-NEXT:    stb 3, 0(27)1948; AIX32-NEXT:    sync1949; AIX32-NEXT:    li 3, 01950; AIX32-NEXT:    ori 3, 3, 655351951; AIX32-NEXT:    slw 3, 3, 181952; AIX32-NEXT:  L..BB1_17: # %entry1953; AIX32-NEXT:    #1954; AIX32-NEXT:    lwarx 4, 0, 171955; AIX32-NEXT:    sub 5, 4, 161956; AIX32-NEXT:    andc 6, 4, 31957; AIX32-NEXT:    and 5, 5, 31958; AIX32-NEXT:    or 5, 5, 61959; AIX32-NEXT:    stwcx. 5, 0, 171960; AIX32-NEXT:    bne- 0, L..BB1_171961; AIX32-NEXT:  # %bb.18: # %entry1962; AIX32-NEXT:    srw 3, 4, 181963; AIX32-NEXT:    lwsync1964; AIX32-NEXT:    clrlwi 3, 3, 161965; AIX32-NEXT:    sth 3, 0(23)1966; AIX32-NEXT:    li 3, 01967; AIX32-NEXT:    sync1968; AIX32-NEXT:    ori 3, 3, 655351969; AIX32-NEXT:    slw 3, 3, 151970; AIX32-NEXT:  L..BB1_19: # %entry1971; AIX32-NEXT:    #1972; AIX32-NEXT:    lwarx 4, 0, 141973; AIX32-NEXT:    sub 5, 4, 131974; AIX32-NEXT:    andc 6, 4, 31975; AIX32-NEXT:    and 5, 5, 31976; AIX32-NEXT:    or 5, 5, 61977; AIX32-NEXT:    stwcx. 5, 0, 141978; AIX32-NEXT:    bne- 0, L..BB1_191979; AIX32-NEXT:  # %bb.20: # %entry1980; AIX32-NEXT:    srw 3, 4, 151981; AIX32-NEXT:    lwsync1982; AIX32-NEXT:    clrlwi 3, 3, 161983; AIX32-NEXT:    sth 3, 0(19)1984; AIX32-NEXT:    sync1985; AIX32-NEXT:  L..BB1_21: # %entry1986; AIX32-NEXT:    #1987; AIX32-NEXT:    lwarx 3, 0, 291988; AIX32-NEXT:    sub 4, 3, 71989; AIX32-NEXT:    stwcx. 4, 0, 291990; AIX32-NEXT:    bne- 0, L..BB1_211991; AIX32-NEXT:  # %bb.22: # %entry1992; AIX32-NEXT:    lwsync1993; AIX32-NEXT:    stw 3, 0(29)1994; AIX32-NEXT:    sync1995; AIX32-NEXT:  L..BB1_23: # %entry1996; AIX32-NEXT:    #1997; AIX32-NEXT:    lwarx 3, 0, 281998; AIX32-NEXT:    sub 4, 3, 71999; AIX32-NEXT:    stwcx. 4, 0, 282000; AIX32-NEXT:    bne- 0, L..BB1_232001; AIX32-NEXT:  # %bb.24: # %entry2002; AIX32-NEXT:    lwsync2003; AIX32-NEXT:    li 4, 02004; AIX32-NEXT:    li 5, 112005; AIX32-NEXT:    li 6, 52006; AIX32-NEXT:    stw 3, 0(28)2007; AIX32-NEXT:    mr 3, 312008; AIX32-NEXT:    bl .__atomic_fetch_sub_8[PR]2009; AIX32-NEXT:    nop2010; AIX32-NEXT:    stw 4, 4(31)2011; AIX32-NEXT:    li 4, 02012; AIX32-NEXT:    li 5, 112013; AIX32-NEXT:    li 6, 52014; AIX32-NEXT:    stw 3, 0(31)2015; AIX32-NEXT:    mr 3, 302016; AIX32-NEXT:    bl .__atomic_fetch_sub_8[PR]2017; AIX32-NEXT:    nop2018; AIX32-NEXT:    stw 3, 0(30)2019; AIX32-NEXT:    li 3, 2552020; AIX32-NEXT:    stw 4, 4(30)2021; AIX32-NEXT:    sync2022; AIX32-NEXT:    slw 3, 3, 262023; AIX32-NEXT:  L..BB1_25: # %entry2024; AIX32-NEXT:    #2025; AIX32-NEXT:    lwarx 4, 0, 252026; AIX32-NEXT:    or 5, 24, 42027; AIX32-NEXT:    andc 6, 4, 32028; AIX32-NEXT:    and 5, 5, 32029; AIX32-NEXT:    or 5, 5, 62030; AIX32-NEXT:    stwcx. 5, 0, 252031; AIX32-NEXT:    bne- 0, L..BB1_252032; AIX32-NEXT:  # %bb.26: # %entry2033; AIX32-NEXT:    srw 3, 4, 262034; AIX32-NEXT:    lwsync2035; AIX32-NEXT:    lwz 4, 64(1) # 4-byte Folded Reload2036; AIX32-NEXT:    clrlwi 3, 3, 242037; AIX32-NEXT:    stb 3, 0(4)2038; AIX32-NEXT:    li 3, 2552039; AIX32-NEXT:    sync2040; AIX32-NEXT:    slw 3, 3, 222041; AIX32-NEXT:  L..BB1_27: # %entry2042; AIX32-NEXT:    #2043; AIX32-NEXT:    lwarx 4, 0, 212044; AIX32-NEXT:    or 5, 20, 42045; AIX32-NEXT:    andc 6, 4, 32046; AIX32-NEXT:    and 5, 5, 32047; AIX32-NEXT:    or 5, 5, 62048; AIX32-NEXT:    stwcx. 5, 0, 212049; AIX32-NEXT:    bne- 0, L..BB1_272050; AIX32-NEXT:  # %bb.28: # %entry2051; AIX32-NEXT:    srw 3, 4, 222052; AIX32-NEXT:    lwsync2053; AIX32-NEXT:    clrlwi 3, 3, 242054; AIX32-NEXT:    stb 3, 0(27)2055; AIX32-NEXT:    li 3, 02056; AIX32-NEXT:    sync2057; AIX32-NEXT:    ori 3, 3, 655352058; AIX32-NEXT:    slw 3, 3, 182059; AIX32-NEXT:  L..BB1_29: # %entry2060; AIX32-NEXT:    #2061; AIX32-NEXT:    lwarx 4, 0, 172062; AIX32-NEXT:    or 5, 16, 42063; AIX32-NEXT:    andc 6, 4, 32064; AIX32-NEXT:    and 5, 5, 32065; AIX32-NEXT:    or 5, 5, 62066; AIX32-NEXT:    stwcx. 5, 0, 172067; AIX32-NEXT:    bne- 0, L..BB1_292068; AIX32-NEXT:  # %bb.30: # %entry2069; AIX32-NEXT:    srw 3, 4, 182070; AIX32-NEXT:    lwsync2071; AIX32-NEXT:    clrlwi 3, 3, 162072; AIX32-NEXT:    sth 3, 0(23)2073; AIX32-NEXT:    li 3, 02074; AIX32-NEXT:    sync2075; AIX32-NEXT:    ori 3, 3, 655352076; AIX32-NEXT:    slw 3, 3, 152077; AIX32-NEXT:  L..BB1_31: # %entry2078; AIX32-NEXT:    #2079; AIX32-NEXT:    lwarx 4, 0, 142080; AIX32-NEXT:    or 5, 13, 42081; AIX32-NEXT:    andc 6, 4, 32082; AIX32-NEXT:    and 5, 5, 32083; AIX32-NEXT:    or 5, 5, 62084; AIX32-NEXT:    stwcx. 5, 0, 142085; AIX32-NEXT:    bne- 0, L..BB1_312086; AIX32-NEXT:  # %bb.32: # %entry2087; AIX32-NEXT:    srw 3, 4, 152088; AIX32-NEXT:    lwsync2089; AIX32-NEXT:    clrlwi 3, 3, 162090; AIX32-NEXT:    sth 3, 0(19)2091; AIX32-NEXT:    sync2092; AIX32-NEXT:  L..BB1_33: # %entry2093; AIX32-NEXT:    #2094; AIX32-NEXT:    lwarx 3, 0, 292095; AIX32-NEXT:    ori 4, 3, 112096; AIX32-NEXT:    stwcx. 4, 0, 292097; AIX32-NEXT:    bne- 0, L..BB1_332098; AIX32-NEXT:  # %bb.34: # %entry2099; AIX32-NEXT:    lwsync2100; AIX32-NEXT:    stw 3, 0(29)2101; AIX32-NEXT:    sync2102; AIX32-NEXT:  L..BB1_35: # %entry2103; AIX32-NEXT:    #2104; AIX32-NEXT:    lwarx 3, 0, 282105; AIX32-NEXT:    ori 4, 3, 112106; AIX32-NEXT:    stwcx. 4, 0, 282107; AIX32-NEXT:    bne- 0, L..BB1_352108; AIX32-NEXT:  # %bb.36: # %entry2109; AIX32-NEXT:    lwsync2110; AIX32-NEXT:    li 4, 02111; AIX32-NEXT:    li 5, 112112; AIX32-NEXT:    li 6, 52113; AIX32-NEXT:    stw 3, 0(28)2114; AIX32-NEXT:    mr 3, 312115; AIX32-NEXT:    bl .__atomic_fetch_or_8[PR]2116; AIX32-NEXT:    nop2117; AIX32-NEXT:    stw 4, 4(31)2118; AIX32-NEXT:    li 4, 02119; AIX32-NEXT:    li 5, 112120; AIX32-NEXT:    li 6, 52121; AIX32-NEXT:    stw 3, 0(31)2122; AIX32-NEXT:    mr 3, 302123; AIX32-NEXT:    bl .__atomic_fetch_or_8[PR]2124; AIX32-NEXT:    nop2125; AIX32-NEXT:    stw 3, 0(30)2126; AIX32-NEXT:    li 3, 2552127; AIX32-NEXT:    stw 4, 4(30)2128; AIX32-NEXT:    sync2129; AIX32-NEXT:    slw 3, 3, 262130; AIX32-NEXT:  L..BB1_37: # %entry2131; AIX32-NEXT:    #2132; AIX32-NEXT:    lwarx 4, 0, 252133; AIX32-NEXT:    xor 5, 24, 42134; AIX32-NEXT:    andc 6, 4, 32135; AIX32-NEXT:    and 5, 5, 32136; AIX32-NEXT:    or 5, 5, 62137; AIX32-NEXT:    stwcx. 5, 0, 252138; AIX32-NEXT:    bne- 0, L..BB1_372139; AIX32-NEXT:  # %bb.38: # %entry2140; AIX32-NEXT:    srw 3, 4, 262141; AIX32-NEXT:    lwsync2142; AIX32-NEXT:    lwz 4, 64(1) # 4-byte Folded Reload2143; AIX32-NEXT:    clrlwi 3, 3, 242144; AIX32-NEXT:    stb 3, 0(4)2145; AIX32-NEXT:    li 3, 2552146; AIX32-NEXT:    sync2147; AIX32-NEXT:    slw 3, 3, 222148; AIX32-NEXT:  L..BB1_39: # %entry2149; AIX32-NEXT:    #2150; AIX32-NEXT:    lwarx 4, 0, 212151; AIX32-NEXT:    xor 5, 20, 42152; AIX32-NEXT:    andc 6, 4, 32153; AIX32-NEXT:    and 5, 5, 32154; AIX32-NEXT:    or 5, 5, 62155; AIX32-NEXT:    stwcx. 5, 0, 212156; AIX32-NEXT:    bne- 0, L..BB1_392157; AIX32-NEXT:  # %bb.40: # %entry2158; AIX32-NEXT:    srw 3, 4, 222159; AIX32-NEXT:    lwsync2160; AIX32-NEXT:    clrlwi 3, 3, 242161; AIX32-NEXT:    stb 3, 0(27)2162; AIX32-NEXT:    li 3, 02163; AIX32-NEXT:    sync2164; AIX32-NEXT:    ori 3, 3, 655352165; AIX32-NEXT:    slw 3, 3, 182166; AIX32-NEXT:  L..BB1_41: # %entry2167; AIX32-NEXT:    #2168; AIX32-NEXT:    lwarx 4, 0, 172169; AIX32-NEXT:    xor 5, 16, 42170; AIX32-NEXT:    andc 6, 4, 32171; AIX32-NEXT:    and 5, 5, 32172; AIX32-NEXT:    or 5, 5, 62173; AIX32-NEXT:    stwcx. 5, 0, 172174; AIX32-NEXT:    bne- 0, L..BB1_412175; AIX32-NEXT:  # %bb.42: # %entry2176; AIX32-NEXT:    srw 3, 4, 182177; AIX32-NEXT:    lwsync2178; AIX32-NEXT:    clrlwi 3, 3, 162179; AIX32-NEXT:    sth 3, 0(23)2180; AIX32-NEXT:    li 3, 02181; AIX32-NEXT:    sync2182; AIX32-NEXT:    ori 3, 3, 655352183; AIX32-NEXT:    slw 3, 3, 152184; AIX32-NEXT:  L..BB1_43: # %entry2185; AIX32-NEXT:    #2186; AIX32-NEXT:    lwarx 4, 0, 142187; AIX32-NEXT:    xor 5, 13, 42188; AIX32-NEXT:    andc 6, 4, 32189; AIX32-NEXT:    and 5, 5, 32190; AIX32-NEXT:    or 5, 5, 62191; AIX32-NEXT:    stwcx. 5, 0, 142192; AIX32-NEXT:    bne- 0, L..BB1_432193; AIX32-NEXT:  # %bb.44: # %entry2194; AIX32-NEXT:    srw 3, 4, 152195; AIX32-NEXT:    lwsync2196; AIX32-NEXT:    clrlwi 3, 3, 162197; AIX32-NEXT:    sth 3, 0(19)2198; AIX32-NEXT:    sync2199; AIX32-NEXT:  L..BB1_45: # %entry2200; AIX32-NEXT:    #2201; AIX32-NEXT:    lwarx 3, 0, 292202; AIX32-NEXT:    xori 4, 3, 112203; AIX32-NEXT:    stwcx. 4, 0, 292204; AIX32-NEXT:    bne- 0, L..BB1_452205; AIX32-NEXT:  # %bb.46: # %entry2206; AIX32-NEXT:    lwsync2207; AIX32-NEXT:    stw 3, 0(29)2208; AIX32-NEXT:    sync2209; AIX32-NEXT:  L..BB1_47: # %entry2210; AIX32-NEXT:    #2211; AIX32-NEXT:    lwarx 3, 0, 282212; AIX32-NEXT:    xori 4, 3, 112213; AIX32-NEXT:    stwcx. 4, 0, 282214; AIX32-NEXT:    bne- 0, L..BB1_472215; AIX32-NEXT:  # %bb.48: # %entry2216; AIX32-NEXT:    lwsync2217; AIX32-NEXT:    li 4, 02218; AIX32-NEXT:    li 5, 112219; AIX32-NEXT:    li 6, 52220; AIX32-NEXT:    stw 3, 0(28)2221; AIX32-NEXT:    mr 3, 312222; AIX32-NEXT:    bl .__atomic_fetch_xor_8[PR]2223; AIX32-NEXT:    nop2224; AIX32-NEXT:    stw 4, 4(31)2225; AIX32-NEXT:    li 4, 02226; AIX32-NEXT:    li 5, 112227; AIX32-NEXT:    li 6, 52228; AIX32-NEXT:    stw 3, 0(31)2229; AIX32-NEXT:    mr 3, 302230; AIX32-NEXT:    bl .__atomic_fetch_xor_8[PR]2231; AIX32-NEXT:    nop2232; AIX32-NEXT:    stw 3, 0(30)2233; AIX32-NEXT:    li 3, 2552234; AIX32-NEXT:    stw 4, 4(30)2235; AIX32-NEXT:    sync2236; AIX32-NEXT:    slw 3, 3, 262237; AIX32-NEXT:  L..BB1_49: # %entry2238; AIX32-NEXT:    #2239; AIX32-NEXT:    lwarx 4, 0, 252240; AIX32-NEXT:    nand 5, 24, 42241; AIX32-NEXT:    andc 6, 4, 32242; AIX32-NEXT:    and 5, 5, 32243; AIX32-NEXT:    or 5, 5, 62244; AIX32-NEXT:    stwcx. 5, 0, 252245; AIX32-NEXT:    bne- 0, L..BB1_492246; AIX32-NEXT:  # %bb.50: # %entry2247; AIX32-NEXT:    srw 3, 4, 262248; AIX32-NEXT:    lwsync2249; AIX32-NEXT:    li 7, 112250; AIX32-NEXT:    lwz 4, 64(1) # 4-byte Folded Reload2251; AIX32-NEXT:    clrlwi 3, 3, 242252; AIX32-NEXT:    stb 3, 0(4)2253; AIX32-NEXT:    sync2254; AIX32-NEXT:    li 3, 2552255; AIX32-NEXT:    slw 3, 3, 222256; AIX32-NEXT:  L..BB1_51: # %entry2257; AIX32-NEXT:    #2258; AIX32-NEXT:    lwarx 4, 0, 212259; AIX32-NEXT:    nand 5, 20, 42260; AIX32-NEXT:    andc 6, 4, 32261; AIX32-NEXT:    and 5, 5, 32262; AIX32-NEXT:    or 5, 5, 62263; AIX32-NEXT:    stwcx. 5, 0, 212264; AIX32-NEXT:    bne- 0, L..BB1_512265; AIX32-NEXT:  # %bb.52: # %entry2266; AIX32-NEXT:    srw 3, 4, 222267; AIX32-NEXT:    lwsync2268; AIX32-NEXT:    clrlwi 3, 3, 242269; AIX32-NEXT:    stb 3, 0(27)2270; AIX32-NEXT:    li 3, 02271; AIX32-NEXT:    sync2272; AIX32-NEXT:    ori 3, 3, 655352273; AIX32-NEXT:    slw 3, 3, 182274; AIX32-NEXT:  L..BB1_53: # %entry2275; AIX32-NEXT:    #2276; AIX32-NEXT:    lwarx 4, 0, 172277; AIX32-NEXT:    nand 5, 16, 42278; AIX32-NEXT:    andc 6, 4, 32279; AIX32-NEXT:    and 5, 5, 32280; AIX32-NEXT:    or 5, 5, 62281; AIX32-NEXT:    stwcx. 5, 0, 172282; AIX32-NEXT:    bne- 0, L..BB1_532283; AIX32-NEXT:  # %bb.54: # %entry2284; AIX32-NEXT:    srw 3, 4, 182285; AIX32-NEXT:    lwsync2286; AIX32-NEXT:    clrlwi 3, 3, 162287; AIX32-NEXT:    sth 3, 0(23)2288; AIX32-NEXT:    li 3, 02289; AIX32-NEXT:    sync2290; AIX32-NEXT:    ori 3, 3, 655352291; AIX32-NEXT:    slw 3, 3, 152292; AIX32-NEXT:  L..BB1_55: # %entry2293; AIX32-NEXT:    #2294; AIX32-NEXT:    lwarx 4, 0, 142295; AIX32-NEXT:    nand 5, 13, 42296; AIX32-NEXT:    andc 6, 4, 32297; AIX32-NEXT:    and 5, 5, 32298; AIX32-NEXT:    or 5, 5, 62299; AIX32-NEXT:    stwcx. 5, 0, 142300; AIX32-NEXT:    bne- 0, L..BB1_552301; AIX32-NEXT:  # %bb.56: # %entry2302; AIX32-NEXT:    srw 3, 4, 152303; AIX32-NEXT:    lwsync2304; AIX32-NEXT:    clrlwi 3, 3, 162305; AIX32-NEXT:    sth 3, 0(19)2306; AIX32-NEXT:    sync2307; AIX32-NEXT:  L..BB1_57: # %entry2308; AIX32-NEXT:    #2309; AIX32-NEXT:    lwarx 3, 0, 292310; AIX32-NEXT:    nand 4, 7, 32311; AIX32-NEXT:    stwcx. 4, 0, 292312; AIX32-NEXT:    bne- 0, L..BB1_572313; AIX32-NEXT:  # %bb.58: # %entry2314; AIX32-NEXT:    lwsync2315; AIX32-NEXT:    stw 3, 0(29)2316; AIX32-NEXT:    sync2317; AIX32-NEXT:  L..BB1_59: # %entry2318; AIX32-NEXT:    #2319; AIX32-NEXT:    lwarx 3, 0, 282320; AIX32-NEXT:    nand 4, 7, 32321; AIX32-NEXT:    stwcx. 4, 0, 282322; AIX32-NEXT:    bne- 0, L..BB1_592323; AIX32-NEXT:  # %bb.60: # %entry2324; AIX32-NEXT:    lwsync2325; AIX32-NEXT:    li 4, 02326; AIX32-NEXT:    li 5, 112327; AIX32-NEXT:    li 6, 52328; AIX32-NEXT:    stw 3, 0(28)2329; AIX32-NEXT:    mr 3, 312330; AIX32-NEXT:    bl .__atomic_fetch_nand_8[PR]2331; AIX32-NEXT:    nop2332; AIX32-NEXT:    stw 4, 4(31)2333; AIX32-NEXT:    li 4, 02334; AIX32-NEXT:    li 5, 112335; AIX32-NEXT:    li 6, 52336; AIX32-NEXT:    stw 3, 0(31)2337; AIX32-NEXT:    mr 3, 302338; AIX32-NEXT:    bl .__atomic_fetch_nand_8[PR]2339; AIX32-NEXT:    nop2340; AIX32-NEXT:    stw 3, 0(30)2341; AIX32-NEXT:    li 3, 2552342; AIX32-NEXT:    stw 4, 4(30)2343; AIX32-NEXT:    sync2344; AIX32-NEXT:    slw 3, 3, 262345; AIX32-NEXT:  L..BB1_61: # %entry2346; AIX32-NEXT:    #2347; AIX32-NEXT:    lwarx 4, 0, 252348; AIX32-NEXT:    and 5, 24, 42349; AIX32-NEXT:    andc 6, 4, 32350; AIX32-NEXT:    and 5, 5, 32351; AIX32-NEXT:    or 5, 5, 62352; AIX32-NEXT:    stwcx. 5, 0, 252353; AIX32-NEXT:    bne- 0, L..BB1_612354; AIX32-NEXT:  # %bb.62: # %entry2355; AIX32-NEXT:    srw 3, 4, 262356; AIX32-NEXT:    lwsync2357; AIX32-NEXT:    lwz 4, 64(1) # 4-byte Folded Reload2358; AIX32-NEXT:    clrlwi 3, 3, 242359; AIX32-NEXT:    stb 3, 0(4)2360; AIX32-NEXT:    li 3, 2552361; AIX32-NEXT:    sync2362; AIX32-NEXT:    slw 3, 3, 222363; AIX32-NEXT:  L..BB1_63: # %entry2364; AIX32-NEXT:    #2365; AIX32-NEXT:    lwarx 4, 0, 212366; AIX32-NEXT:    and 5, 20, 42367; AIX32-NEXT:    andc 6, 4, 32368; AIX32-NEXT:    and 5, 5, 32369; AIX32-NEXT:    or 5, 5, 62370; AIX32-NEXT:    stwcx. 5, 0, 212371; AIX32-NEXT:    bne- 0, L..BB1_632372; AIX32-NEXT:  # %bb.64: # %entry2373; AIX32-NEXT:    srw 3, 4, 222374; AIX32-NEXT:    lwsync2375; AIX32-NEXT:    li 7, 112376; AIX32-NEXT:    clrlwi 3, 3, 242377; AIX32-NEXT:    stb 3, 0(27)2378; AIX32-NEXT:    sync2379; AIX32-NEXT:    li 3, 02380; AIX32-NEXT:    ori 3, 3, 655352381; AIX32-NEXT:    slw 3, 3, 182382; AIX32-NEXT:  L..BB1_65: # %entry2383; AIX32-NEXT:    #2384; AIX32-NEXT:    lwarx 4, 0, 172385; AIX32-NEXT:    and 5, 16, 42386; AIX32-NEXT:    andc 6, 4, 32387; AIX32-NEXT:    and 5, 5, 32388; AIX32-NEXT:    or 5, 5, 62389; AIX32-NEXT:    stwcx. 5, 0, 172390; AIX32-NEXT:    bne- 0, L..BB1_652391; AIX32-NEXT:  # %bb.66: # %entry2392; AIX32-NEXT:    srw 3, 4, 182393; AIX32-NEXT:    lwsync2394; AIX32-NEXT:    clrlwi 3, 3, 162395; AIX32-NEXT:    sth 3, 0(23)2396; AIX32-NEXT:    li 3, 02397; AIX32-NEXT:    sync2398; AIX32-NEXT:    ori 3, 3, 655352399; AIX32-NEXT:    slw 3, 3, 152400; AIX32-NEXT:  L..BB1_67: # %entry2401; AIX32-NEXT:    #2402; AIX32-NEXT:    lwarx 4, 0, 142403; AIX32-NEXT:    and 5, 13, 42404; AIX32-NEXT:    andc 6, 4, 32405; AIX32-NEXT:    and 5, 5, 32406; AIX32-NEXT:    or 5, 5, 62407; AIX32-NEXT:    stwcx. 5, 0, 142408; AIX32-NEXT:    bne- 0, L..BB1_672409; AIX32-NEXT:  # %bb.68: # %entry2410; AIX32-NEXT:    srw 3, 4, 152411; AIX32-NEXT:    lwsync2412; AIX32-NEXT:    clrlwi 3, 3, 162413; AIX32-NEXT:    sth 3, 0(19)2414; AIX32-NEXT:    sync2415; AIX32-NEXT:  L..BB1_69: # %entry2416; AIX32-NEXT:    #2417; AIX32-NEXT:    lwarx 3, 0, 292418; AIX32-NEXT:    and 4, 7, 32419; AIX32-NEXT:    stwcx. 4, 0, 292420; AIX32-NEXT:    bne- 0, L..BB1_692421; AIX32-NEXT:  # %bb.70: # %entry2422; AIX32-NEXT:    lwsync2423; AIX32-NEXT:    stw 3, 0(29)2424; AIX32-NEXT:    sync2425; AIX32-NEXT:  L..BB1_71: # %entry2426; AIX32-NEXT:    #2427; AIX32-NEXT:    lwarx 3, 0, 282428; AIX32-NEXT:    and 4, 7, 32429; AIX32-NEXT:    stwcx. 4, 0, 282430; AIX32-NEXT:    bne- 0, L..BB1_712431; AIX32-NEXT:  # %bb.72: # %entry2432; AIX32-NEXT:    lwsync2433; AIX32-NEXT:    li 4, 02434; AIX32-NEXT:    li 5, 112435; AIX32-NEXT:    li 6, 52436; AIX32-NEXT:    stw 3, 0(28)2437; AIX32-NEXT:    mr 3, 312438; AIX32-NEXT:    bl .__atomic_fetch_and_8[PR]2439; AIX32-NEXT:    nop2440; AIX32-NEXT:    stw 4, 4(31)2441; AIX32-NEXT:    li 4, 02442; AIX32-NEXT:    li 5, 112443; AIX32-NEXT:    li 6, 52444; AIX32-NEXT:    stw 3, 0(31)2445; AIX32-NEXT:    mr 3, 302446; AIX32-NEXT:    bl .__atomic_fetch_and_8[PR]2447; AIX32-NEXT:    nop2448; AIX32-NEXT:    stw 4, 4(30)2449; AIX32-NEXT:    stw 3, 0(30)2450; AIX32-NEXT:    lwz 31, 140(1) # 4-byte Folded Reload2451; AIX32-NEXT:    lwz 30, 136(1) # 4-byte Folded Reload2452; AIX32-NEXT:    lwz 29, 132(1) # 4-byte Folded Reload2453; AIX32-NEXT:    lwz 28, 128(1) # 4-byte Folded Reload2454; AIX32-NEXT:    lwz 27, 124(1) # 4-byte Folded Reload2455; AIX32-NEXT:    lwz 26, 120(1) # 4-byte Folded Reload2456; AIX32-NEXT:    lwz 25, 116(1) # 4-byte Folded Reload2457; AIX32-NEXT:    lwz 24, 112(1) # 4-byte Folded Reload2458; AIX32-NEXT:    lwz 23, 108(1) # 4-byte Folded Reload2459; AIX32-NEXT:    lwz 22, 104(1) # 4-byte Folded Reload2460; AIX32-NEXT:    lwz 21, 100(1) # 4-byte Folded Reload2461; AIX32-NEXT:    lwz 20, 96(1) # 4-byte Folded Reload2462; AIX32-NEXT:    lwz 19, 92(1) # 4-byte Folded Reload2463; AIX32-NEXT:    lwz 18, 88(1) # 4-byte Folded Reload2464; AIX32-NEXT:    lwz 17, 84(1) # 4-byte Folded Reload2465; AIX32-NEXT:    lwz 16, 80(1) # 4-byte Folded Reload2466; AIX32-NEXT:    lwz 15, 76(1) # 4-byte Folded Reload2467; AIX32-NEXT:    lwz 14, 72(1) # 4-byte Folded Reload2468; AIX32-NEXT:    lwz 13, 68(1) # 4-byte Folded Reload2469; AIX32-NEXT:    addi 1, 1, 1442470; AIX32-NEXT:    lwz 0, 8(1)2471; AIX32-NEXT:    mtlr 02472; AIX32-NEXT:    blr2473entry:2474  %0 = atomicrmw add ptr @sc, i8 11 seq_cst, align 12475  store i8 %0, ptr @sc, align 12476  %1 = atomicrmw add ptr @uc, i8 11 seq_cst, align 12477  store i8 %1, ptr @uc, align 12478  %2 = atomicrmw add ptr @ss, i16 11 seq_cst, align 22479  store i16 %2, ptr @ss, align 22480  %3 = atomicrmw add ptr @us, i16 11 seq_cst, align 22481  store i16 %3, ptr @us, align 22482  %4 = atomicrmw add ptr @si, i32 11 seq_cst, align 42483  store i32 %4, ptr @si, align 42484  %5 = atomicrmw add ptr @ui, i32 11 seq_cst, align 42485  store i32 %5, ptr @ui, align 42486  %6 = atomicrmw add ptr @sll, i64 11 seq_cst, align 82487  store i64 %6, ptr @sll, align 82488  %7 = atomicrmw add ptr @ull, i64 11 seq_cst, align 82489  store i64 %7, ptr @ull, align 82490  %8 = atomicrmw sub ptr @sc, i8 11 seq_cst, align 12491  store i8 %8, ptr @sc, align 12492  %9 = atomicrmw sub ptr @uc, i8 11 seq_cst, align 12493  store i8 %9, ptr @uc, align 12494  %10 = atomicrmw sub ptr @ss, i16 11 seq_cst, align 22495  store i16 %10, ptr @ss, align 22496  %11 = atomicrmw sub ptr @us, i16 11 seq_cst, align 22497  store i16 %11, ptr @us, align 22498  %12 = atomicrmw sub ptr @si, i32 11 seq_cst, align 42499  store i32 %12, ptr @si, align 42500  %13 = atomicrmw sub ptr @ui, i32 11 seq_cst, align 42501  store i32 %13, ptr @ui, align 42502  %14 = atomicrmw sub ptr @sll, i64 11 seq_cst, align 82503  store i64 %14, ptr @sll, align 82504  %15 = atomicrmw sub ptr @ull, i64 11 seq_cst, align 82505  store i64 %15, ptr @ull, align 82506  %16 = atomicrmw or ptr @sc, i8 11 seq_cst, align 12507  store i8 %16, ptr @sc, align 12508  %17 = atomicrmw or ptr @uc, i8 11 seq_cst, align 12509  store i8 %17, ptr @uc, align 12510  %18 = atomicrmw or ptr @ss, i16 11 seq_cst, align 22511  store i16 %18, ptr @ss, align 22512  %19 = atomicrmw or ptr @us, i16 11 seq_cst, align 22513  store i16 %19, ptr @us, align 22514  %20 = atomicrmw or ptr @si, i32 11 seq_cst, align 42515  store i32 %20, ptr @si, align 42516  %21 = atomicrmw or ptr @ui, i32 11 seq_cst, align 42517  store i32 %21, ptr @ui, align 42518  %22 = atomicrmw or ptr @sll, i64 11 seq_cst, align 82519  store i64 %22, ptr @sll, align 82520  %23 = atomicrmw or ptr @ull, i64 11 seq_cst, align 82521  store i64 %23, ptr @ull, align 82522  %24 = atomicrmw xor ptr @sc, i8 11 seq_cst, align 12523  store i8 %24, ptr @sc, align 12524  %25 = atomicrmw xor ptr @uc, i8 11 seq_cst, align 12525  store i8 %25, ptr @uc, align 12526  %26 = atomicrmw xor ptr @ss, i16 11 seq_cst, align 22527  store i16 %26, ptr @ss, align 22528  %27 = atomicrmw xor ptr @us, i16 11 seq_cst, align 22529  store i16 %27, ptr @us, align 22530  %28 = atomicrmw xor ptr @si, i32 11 seq_cst, align 42531  store i32 %28, ptr @si, align 42532  %29 = atomicrmw xor ptr @ui, i32 11 seq_cst, align 42533  store i32 %29, ptr @ui, align 42534  %30 = atomicrmw xor ptr @sll, i64 11 seq_cst, align 82535  store i64 %30, ptr @sll, align 82536  %31 = atomicrmw xor ptr @ull, i64 11 seq_cst, align 82537  store i64 %31, ptr @ull, align 82538  %32 = atomicrmw nand ptr @sc, i8 11 seq_cst, align 12539  store i8 %32, ptr @sc, align 12540  %33 = atomicrmw nand ptr @uc, i8 11 seq_cst, align 12541  store i8 %33, ptr @uc, align 12542  %34 = atomicrmw nand ptr @ss, i16 11 seq_cst, align 22543  store i16 %34, ptr @ss, align 22544  %35 = atomicrmw nand ptr @us, i16 11 seq_cst, align 22545  store i16 %35, ptr @us, align 22546  %36 = atomicrmw nand ptr @si, i32 11 seq_cst, align 42547  store i32 %36, ptr @si, align 42548  %37 = atomicrmw nand ptr @ui, i32 11 seq_cst, align 42549  store i32 %37, ptr @ui, align 42550  %38 = atomicrmw nand ptr @sll, i64 11 seq_cst, align 82551  store i64 %38, ptr @sll, align 82552  %39 = atomicrmw nand ptr @ull, i64 11 seq_cst, align 82553  store i64 %39, ptr @ull, align 82554  %40 = atomicrmw and ptr @sc, i8 11 seq_cst, align 12555  store i8 %40, ptr @sc, align 12556  %41 = atomicrmw and ptr @uc, i8 11 seq_cst, align 12557  store i8 %41, ptr @uc, align 12558  %42 = atomicrmw and ptr @ss, i16 11 seq_cst, align 22559  store i16 %42, ptr @ss, align 22560  %43 = atomicrmw and ptr @us, i16 11 seq_cst, align 22561  store i16 %43, ptr @us, align 22562  %44 = atomicrmw and ptr @si, i32 11 seq_cst, align 42563  store i32 %44, ptr @si, align 42564  %45 = atomicrmw and ptr @ui, i32 11 seq_cst, align 42565  store i32 %45, ptr @ui, align 42566  %46 = atomicrmw and ptr @sll, i64 11 seq_cst, align 82567  store i64 %46, ptr @sll, align 82568  %47 = atomicrmw and ptr @ull, i64 11 seq_cst, align 82569  store i64 %47, ptr @ull, align 82570  ret void2571}2572 2573define dso_local void @test_op_and_fetch() local_unnamed_addr #0 {2574; CHECK-LABEL: test_op_and_fetch:2575; CHECK:       # %bb.0: # %entry2576; CHECK-NEXT:    addis 3, 2, uc@toc@ha2577; CHECK-NEXT:    addis 5, 2, sc@toc@ha2578; CHECK-NEXT:    std 16, -128(1) # 8-byte Folded Spill2579; CHECK-NEXT:    std 17, -120(1) # 8-byte Folded Spill2580; CHECK-NEXT:    std 18, -112(1) # 8-byte Folded Spill2581; CHECK-NEXT:    std 19, -104(1) # 8-byte Folded Spill2582; CHECK-NEXT:    lbz 6, uc@toc@l(3)2583; CHECK-NEXT:    std 20, -96(1) # 8-byte Folded Spill2584; CHECK-NEXT:    std 21, -88(1) # 8-byte Folded Spill2585; CHECK-NEXT:    addi 4, 3, uc@toc@l2586; CHECK-NEXT:    addi 7, 5, sc@toc@l2587; CHECK-NEXT:    std 22, -80(1) # 8-byte Folded Spill2588; CHECK-NEXT:    std 23, -72(1) # 8-byte Folded Spill2589; CHECK-NEXT:    std 24, -64(1) # 8-byte Folded Spill2590; CHECK-NEXT:    std 25, -56(1) # 8-byte Folded Spill2591; CHECK-NEXT:    std 26, -48(1) # 8-byte Folded Spill2592; CHECK-NEXT:    std 27, -40(1) # 8-byte Folded Spill2593; CHECK-NEXT:    std 28, -32(1) # 8-byte Folded Spill2594; CHECK-NEXT:    std 29, -24(1) # 8-byte Folded Spill2595; CHECK-NEXT:    std 30, -16(1) # 8-byte Folded Spill2596; CHECK-NEXT:    sync2597; CHECK-NEXT:  .LBB2_1: # %entry2598; CHECK-NEXT:    #2599; CHECK-NEXT:    lbarx 8, 0, 72600; CHECK-NEXT:    add 8, 6, 82601; CHECK-NEXT:    stbcx. 8, 0, 72602; CHECK-NEXT:    bne- 0, .LBB2_12603; CHECK-NEXT:  # %bb.2: # %entry2604; CHECK-NEXT:    lwsync2605; CHECK-NEXT:    stb 8, sc@toc@l(5)2606; CHECK-NEXT:    lbz 6, uc@toc@l(3)2607; CHECK-NEXT:    sync2608; CHECK-NEXT:  .LBB2_3: # %entry2609; CHECK-NEXT:    #2610; CHECK-NEXT:    lbarx 8, 0, 42611; CHECK-NEXT:    add 8, 6, 82612; CHECK-NEXT:    stbcx. 8, 0, 42613; CHECK-NEXT:    bne- 0, .LBB2_32614; CHECK-NEXT:  # %bb.4: # %entry2615; CHECK-NEXT:    addis 6, 2, ss@toc@ha2616; CHECK-NEXT:    lwsync2617; CHECK-NEXT:    stb 8, uc@toc@l(3)2618; CHECK-NEXT:    clrlwi 8, 8, 242619; CHECK-NEXT:    sync2620; CHECK-NEXT:    addi 9, 6, ss@toc@l2621; CHECK-NEXT:  .LBB2_5: # %entry2622; CHECK-NEXT:    #2623; CHECK-NEXT:    lharx 10, 0, 92624; CHECK-NEXT:    add 10, 8, 102625; CHECK-NEXT:    sthcx. 10, 0, 92626; CHECK-NEXT:    bne- 0, .LBB2_52627; CHECK-NEXT:  # %bb.6: # %entry2628; CHECK-NEXT:    lwsync2629; CHECK-NEXT:    addis 8, 2, us@toc@ha2630; CHECK-NEXT:    sth 10, ss@toc@l(6)2631; CHECK-NEXT:    lbz 10, uc@toc@l(3)2632; CHECK-NEXT:    sync2633; CHECK-NEXT:    addi 11, 8, us@toc@l2634; CHECK-NEXT:  .LBB2_7: # %entry2635; CHECK-NEXT:    #2636; CHECK-NEXT:    lharx 12, 0, 112637; CHECK-NEXT:    add 12, 10, 122638; CHECK-NEXT:    sthcx. 12, 0, 112639; CHECK-NEXT:    bne- 0, .LBB2_72640; CHECK-NEXT:  # %bb.8: # %entry2641; CHECK-NEXT:    lwsync2642; CHECK-NEXT:    addis 10, 2, si@toc@ha2643; CHECK-NEXT:    sth 12, us@toc@l(8)2644; CHECK-NEXT:    lbz 12, uc@toc@l(3)2645; CHECK-NEXT:    sync2646; CHECK-NEXT:    addi 0, 10, si@toc@l2647; CHECK-NEXT:  .LBB2_9: # %entry2648; CHECK-NEXT:    #2649; CHECK-NEXT:    lwarx 30, 0, 02650; CHECK-NEXT:    add 30, 12, 302651; CHECK-NEXT:    stwcx. 30, 0, 02652; CHECK-NEXT:    bne- 0, .LBB2_92653; CHECK-NEXT:  # %bb.10: # %entry2654; CHECK-NEXT:    lwsync2655; CHECK-NEXT:    addis 12, 2, ui@toc@ha2656; CHECK-NEXT:    stw 30, si@toc@l(10)2657; CHECK-NEXT:    lbz 30, uc@toc@l(3)2658; CHECK-NEXT:    sync2659; CHECK-NEXT:    addi 29, 12, ui@toc@l2660; CHECK-NEXT:  .LBB2_11: # %entry2661; CHECK-NEXT:    #2662; CHECK-NEXT:    lwarx 28, 0, 292663; CHECK-NEXT:    add 28, 30, 282664; CHECK-NEXT:    stwcx. 28, 0, 292665; CHECK-NEXT:    bne- 0, .LBB2_112666; CHECK-NEXT:  # %bb.12: # %entry2667; CHECK-NEXT:    lwsync2668; CHECK-NEXT:    addis 30, 2, sll@toc@ha2669; CHECK-NEXT:    stw 28, ui@toc@l(12)2670; CHECK-NEXT:    lbz 28, uc@toc@l(3)2671; CHECK-NEXT:    sync2672; CHECK-NEXT:    addi 27, 30, sll@toc@l2673; CHECK-NEXT:  .LBB2_13: # %entry2674; CHECK-NEXT:    #2675; CHECK-NEXT:    ldarx 26, 0, 272676; CHECK-NEXT:    add 26, 28, 262677; CHECK-NEXT:    stdcx. 26, 0, 272678; CHECK-NEXT:    bne- 0, .LBB2_132679; CHECK-NEXT:  # %bb.14: # %entry2680; CHECK-NEXT:    lwsync2681; CHECK-NEXT:    addis 28, 2, ull@toc@ha2682; CHECK-NEXT:    std 26, sll@toc@l(30)2683; CHECK-NEXT:    lbz 25, uc@toc@l(3)2684; CHECK-NEXT:    sync2685; CHECK-NEXT:    addi 26, 28, ull@toc@l2686; CHECK-NEXT:  .LBB2_15: # %entry2687; CHECK-NEXT:    #2688; CHECK-NEXT:    ldarx 24, 0, 262689; CHECK-NEXT:    add 24, 25, 242690; CHECK-NEXT:    stdcx. 24, 0, 262691; CHECK-NEXT:    bne- 0, .LBB2_152692; CHECK-NEXT:  # %bb.16: # %entry2693; CHECK-NEXT:    lwsync2694; CHECK-NEXT:    std 24, ull@toc@l(28)2695; CHECK-NEXT:    lbz 25, uc@toc@l(3)2696; CHECK-NEXT:    sync2697; CHECK-NEXT:  .LBB2_17: # %entry2698; CHECK-NEXT:    #2699; CHECK-NEXT:    lbarx 24, 0, 72700; CHECK-NEXT:    sub 24, 24, 252701; CHECK-NEXT:    stbcx. 24, 0, 72702; CHECK-NEXT:    bne- 0, .LBB2_172703; CHECK-NEXT:  # %bb.18: # %entry2704; CHECK-NEXT:    lwsync2705; CHECK-NEXT:    stb 24, sc@toc@l(5)2706; CHECK-NEXT:    lbz 25, uc@toc@l(3)2707; CHECK-NEXT:    sync2708; CHECK-NEXT:  .LBB2_19: # %entry2709; CHECK-NEXT:    #2710; CHECK-NEXT:    lbarx 24, 0, 42711; CHECK-NEXT:    sub 24, 24, 252712; CHECK-NEXT:    stbcx. 24, 0, 42713; CHECK-NEXT:    bne- 0, .LBB2_192714; CHECK-NEXT:  # %bb.20: # %entry2715; CHECK-NEXT:    lwsync2716; CHECK-NEXT:    stb 24, uc@toc@l(3)2717; CHECK-NEXT:    clrlwi 25, 24, 242718; CHECK-NEXT:    sync2719; CHECK-NEXT:  .LBB2_21: # %entry2720; CHECK-NEXT:    #2721; CHECK-NEXT:    lharx 24, 0, 92722; CHECK-NEXT:    sub 24, 24, 252723; CHECK-NEXT:    sthcx. 24, 0, 92724; CHECK-NEXT:    bne- 0, .LBB2_212725; CHECK-NEXT:  # %bb.22: # %entry2726; CHECK-NEXT:    lwsync2727; CHECK-NEXT:    sth 24, ss@toc@l(6)2728; CHECK-NEXT:    lbz 25, uc@toc@l(3)2729; CHECK-NEXT:    sync2730; CHECK-NEXT:  .LBB2_23: # %entry2731; CHECK-NEXT:    #2732; CHECK-NEXT:    lharx 24, 0, 112733; CHECK-NEXT:    sub 24, 24, 252734; CHECK-NEXT:    sthcx. 24, 0, 112735; CHECK-NEXT:    bne- 0, .LBB2_232736; CHECK-NEXT:  # %bb.24: # %entry2737; CHECK-NEXT:    lwsync2738; CHECK-NEXT:    sth 24, us@toc@l(8)2739; CHECK-NEXT:    lbz 25, uc@toc@l(3)2740; CHECK-NEXT:    sync2741; CHECK-NEXT:  .LBB2_25: # %entry2742; CHECK-NEXT:    #2743; CHECK-NEXT:    lwarx 24, 0, 02744; CHECK-NEXT:    sub 24, 24, 252745; CHECK-NEXT:    stwcx. 24, 0, 02746; CHECK-NEXT:    bne- 0, .LBB2_252747; CHECK-NEXT:  # %bb.26: # %entry2748; CHECK-NEXT:    lwsync2749; CHECK-NEXT:    stw 24, si@toc@l(10)2750; CHECK-NEXT:    lbz 25, uc@toc@l(3)2751; CHECK-NEXT:    sync2752; CHECK-NEXT:  .LBB2_27: # %entry2753; CHECK-NEXT:    #2754; CHECK-NEXT:    lwarx 24, 0, 292755; CHECK-NEXT:    sub 24, 24, 252756; CHECK-NEXT:    stwcx. 24, 0, 292757; CHECK-NEXT:    bne- 0, .LBB2_272758; CHECK-NEXT:  # %bb.28: # %entry2759; CHECK-NEXT:    lwsync2760; CHECK-NEXT:    stw 24, ui@toc@l(12)2761; CHECK-NEXT:    lbz 25, uc@toc@l(3)2762; CHECK-NEXT:    sync2763; CHECK-NEXT:  .LBB2_29: # %entry2764; CHECK-NEXT:    #2765; CHECK-NEXT:    ldarx 24, 0, 272766; CHECK-NEXT:    sub 24, 24, 252767; CHECK-NEXT:    stdcx. 24, 0, 272768; CHECK-NEXT:    bne- 0, .LBB2_292769; CHECK-NEXT:  # %bb.30: # %entry2770; CHECK-NEXT:    lwsync2771; CHECK-NEXT:    std 24, sll@toc@l(30)2772; CHECK-NEXT:    lbz 25, uc@toc@l(3)2773; CHECK-NEXT:    sync2774; CHECK-NEXT:  .LBB2_31: # %entry2775; CHECK-NEXT:    #2776; CHECK-NEXT:    ldarx 24, 0, 262777; CHECK-NEXT:    sub 24, 24, 252778; CHECK-NEXT:    stdcx. 24, 0, 262779; CHECK-NEXT:    bne- 0, .LBB2_312780; CHECK-NEXT:  # %bb.32: # %entry2781; CHECK-NEXT:    lwsync2782; CHECK-NEXT:    std 24, ull@toc@l(28)2783; CHECK-NEXT:    lbz 25, uc@toc@l(3)2784; CHECK-NEXT:    sync2785; CHECK-NEXT:  .LBB2_33: # %entry2786; CHECK-NEXT:    #2787; CHECK-NEXT:    lbarx 24, 0, 72788; CHECK-NEXT:    or 24, 25, 242789; CHECK-NEXT:    stbcx. 24, 0, 72790; CHECK-NEXT:    bne- 0, .LBB2_332791; CHECK-NEXT:  # %bb.34: # %entry2792; CHECK-NEXT:    lwsync2793; CHECK-NEXT:    stb 24, sc@toc@l(5)2794; CHECK-NEXT:    lbz 25, uc@toc@l(3)2795; CHECK-NEXT:    sync2796; CHECK-NEXT:  .LBB2_35: # %entry2797; CHECK-NEXT:    #2798; CHECK-NEXT:    lbarx 24, 0, 42799; CHECK-NEXT:    or 24, 25, 242800; CHECK-NEXT:    stbcx. 24, 0, 42801; CHECK-NEXT:    bne- 0, .LBB2_352802; CHECK-NEXT:  # %bb.36: # %entry2803; CHECK-NEXT:    lwsync2804; CHECK-NEXT:    stb 24, uc@toc@l(3)2805; CHECK-NEXT:    clrlwi 25, 24, 242806; CHECK-NEXT:    sync2807; CHECK-NEXT:  .LBB2_37: # %entry2808; CHECK-NEXT:    #2809; CHECK-NEXT:    lharx 24, 0, 92810; CHECK-NEXT:    or 24, 25, 242811; CHECK-NEXT:    sthcx. 24, 0, 92812; CHECK-NEXT:    bne- 0, .LBB2_372813; CHECK-NEXT:  # %bb.38: # %entry2814; CHECK-NEXT:    lwsync2815; CHECK-NEXT:    sth 24, ss@toc@l(6)2816; CHECK-NEXT:    lbz 25, uc@toc@l(3)2817; CHECK-NEXT:    sync2818; CHECK-NEXT:  .LBB2_39: # %entry2819; CHECK-NEXT:    #2820; CHECK-NEXT:    lharx 24, 0, 112821; CHECK-NEXT:    or 24, 25, 242822; CHECK-NEXT:    sthcx. 24, 0, 112823; CHECK-NEXT:    bne- 0, .LBB2_392824; CHECK-NEXT:  # %bb.40: # %entry2825; CHECK-NEXT:    lwsync2826; CHECK-NEXT:    sth 24, us@toc@l(8)2827; CHECK-NEXT:    lbz 25, uc@toc@l(3)2828; CHECK-NEXT:    sync2829; CHECK-NEXT:  .LBB2_41: # %entry2830; CHECK-NEXT:    #2831; CHECK-NEXT:    lwarx 24, 0, 02832; CHECK-NEXT:    or 24, 25, 242833; CHECK-NEXT:    stwcx. 24, 0, 02834; CHECK-NEXT:    bne- 0, .LBB2_412835; CHECK-NEXT:  # %bb.42: # %entry2836; CHECK-NEXT:    lwsync2837; CHECK-NEXT:    stw 24, si@toc@l(10)2838; CHECK-NEXT:    lbz 25, uc@toc@l(3)2839; CHECK-NEXT:    sync2840; CHECK-NEXT:  .LBB2_43: # %entry2841; CHECK-NEXT:    #2842; CHECK-NEXT:    lwarx 24, 0, 292843; CHECK-NEXT:    or 24, 25, 242844; CHECK-NEXT:    stwcx. 24, 0, 292845; CHECK-NEXT:    bne- 0, .LBB2_432846; CHECK-NEXT:  # %bb.44: # %entry2847; CHECK-NEXT:    lwsync2848; CHECK-NEXT:    stw 24, ui@toc@l(12)2849; CHECK-NEXT:    lbz 25, uc@toc@l(3)2850; CHECK-NEXT:    sync2851; CHECK-NEXT:  .LBB2_45: # %entry2852; CHECK-NEXT:    #2853; CHECK-NEXT:    ldarx 24, 0, 272854; CHECK-NEXT:    or 24, 25, 242855; CHECK-NEXT:    stdcx. 24, 0, 272856; CHECK-NEXT:    bne- 0, .LBB2_452857; CHECK-NEXT:  # %bb.46: # %entry2858; CHECK-NEXT:    lwsync2859; CHECK-NEXT:    std 24, sll@toc@l(30)2860; CHECK-NEXT:    lbz 25, uc@toc@l(3)2861; CHECK-NEXT:    sync2862; CHECK-NEXT:  .LBB2_47: # %entry2863; CHECK-NEXT:    #2864; CHECK-NEXT:    ldarx 24, 0, 262865; CHECK-NEXT:    or 24, 25, 242866; CHECK-NEXT:    stdcx. 24, 0, 262867; CHECK-NEXT:    bne- 0, .LBB2_472868; CHECK-NEXT:  # %bb.48: # %entry2869; CHECK-NEXT:    lwsync2870; CHECK-NEXT:    std 24, ull@toc@l(28)2871; CHECK-NEXT:    lbz 25, uc@toc@l(3)2872; CHECK-NEXT:    sync2873; CHECK-NEXT:  .LBB2_49: # %entry2874; CHECK-NEXT:    #2875; CHECK-NEXT:    lbarx 24, 0, 72876; CHECK-NEXT:    xor 24, 25, 242877; CHECK-NEXT:    stbcx. 24, 0, 72878; CHECK-NEXT:    bne- 0, .LBB2_492879; CHECK-NEXT:  # %bb.50: # %entry2880; CHECK-NEXT:    lwsync2881; CHECK-NEXT:    stb 24, sc@toc@l(5)2882; CHECK-NEXT:    lbz 25, uc@toc@l(3)2883; CHECK-NEXT:    sync2884; CHECK-NEXT:  .LBB2_51: # %entry2885; CHECK-NEXT:    #2886; CHECK-NEXT:    lbarx 24, 0, 42887; CHECK-NEXT:    xor 24, 25, 242888; CHECK-NEXT:    stbcx. 24, 0, 42889; CHECK-NEXT:    bne- 0, .LBB2_512890; CHECK-NEXT:  # %bb.52: # %entry2891; CHECK-NEXT:    lwsync2892; CHECK-NEXT:    stb 24, uc@toc@l(3)2893; CHECK-NEXT:    clrlwi 25, 24, 242894; CHECK-NEXT:    sync2895; CHECK-NEXT:  .LBB2_53: # %entry2896; CHECK-NEXT:    #2897; CHECK-NEXT:    lharx 24, 0, 92898; CHECK-NEXT:    xor 24, 25, 242899; CHECK-NEXT:    sthcx. 24, 0, 92900; CHECK-NEXT:    bne- 0, .LBB2_532901; CHECK-NEXT:  # %bb.54: # %entry2902; CHECK-NEXT:    lwsync2903; CHECK-NEXT:    sth 24, ss@toc@l(6)2904; CHECK-NEXT:    lbz 25, uc@toc@l(3)2905; CHECK-NEXT:    sync2906; CHECK-NEXT:  .LBB2_55: # %entry2907; CHECK-NEXT:    #2908; CHECK-NEXT:    lharx 24, 0, 112909; CHECK-NEXT:    xor 24, 25, 242910; CHECK-NEXT:    sthcx. 24, 0, 112911; CHECK-NEXT:    bne- 0, .LBB2_552912; CHECK-NEXT:  # %bb.56: # %entry2913; CHECK-NEXT:    lwsync2914; CHECK-NEXT:    sth 24, us@toc@l(8)2915; CHECK-NEXT:    lbz 25, uc@toc@l(3)2916; CHECK-NEXT:    sync2917; CHECK-NEXT:  .LBB2_57: # %entry2918; CHECK-NEXT:    #2919; CHECK-NEXT:    lwarx 24, 0, 02920; CHECK-NEXT:    xor 24, 25, 242921; CHECK-NEXT:    stwcx. 24, 0, 02922; CHECK-NEXT:    bne- 0, .LBB2_572923; CHECK-NEXT:  # %bb.58: # %entry2924; CHECK-NEXT:    lwsync2925; CHECK-NEXT:    stw 24, si@toc@l(10)2926; CHECK-NEXT:    lbz 25, uc@toc@l(3)2927; CHECK-NEXT:    sync2928; CHECK-NEXT:  .LBB2_59: # %entry2929; CHECK-NEXT:    #2930; CHECK-NEXT:    lwarx 24, 0, 292931; CHECK-NEXT:    xor 24, 25, 242932; CHECK-NEXT:    stwcx. 24, 0, 292933; CHECK-NEXT:    bne- 0, .LBB2_592934; CHECK-NEXT:  # %bb.60: # %entry2935; CHECK-NEXT:    lwsync2936; CHECK-NEXT:    stw 24, ui@toc@l(12)2937; CHECK-NEXT:    lbz 25, uc@toc@l(3)2938; CHECK-NEXT:    sync2939; CHECK-NEXT:  .LBB2_61: # %entry2940; CHECK-NEXT:    #2941; CHECK-NEXT:    ldarx 24, 0, 272942; CHECK-NEXT:    xor 24, 25, 242943; CHECK-NEXT:    stdcx. 24, 0, 272944; CHECK-NEXT:    bne- 0, .LBB2_612945; CHECK-NEXT:  # %bb.62: # %entry2946; CHECK-NEXT:    lwsync2947; CHECK-NEXT:    std 24, sll@toc@l(30)2948; CHECK-NEXT:    lbz 25, uc@toc@l(3)2949; CHECK-NEXT:    sync2950; CHECK-NEXT:  .LBB2_63: # %entry2951; CHECK-NEXT:    #2952; CHECK-NEXT:    ldarx 24, 0, 262953; CHECK-NEXT:    xor 24, 25, 242954; CHECK-NEXT:    stdcx. 24, 0, 262955; CHECK-NEXT:    bne- 0, .LBB2_632956; CHECK-NEXT:  # %bb.64: # %entry2957; CHECK-NEXT:    lwsync2958; CHECK-NEXT:    std 24, ull@toc@l(28)2959; CHECK-NEXT:    lbz 25, uc@toc@l(3)2960; CHECK-NEXT:    sync2961; CHECK-NEXT:  .LBB2_65: # %entry2962; CHECK-NEXT:    #2963; CHECK-NEXT:    lbarx 24, 0, 72964; CHECK-NEXT:    nand 24, 25, 242965; CHECK-NEXT:    stbcx. 24, 0, 72966; CHECK-NEXT:    bne- 0, .LBB2_652967; CHECK-NEXT:  # %bb.66: # %entry2968; CHECK-NEXT:    lwsync2969; CHECK-NEXT:    stb 24, sc@toc@l(5)2970; CHECK-NEXT:    lbz 25, uc@toc@l(3)2971; CHECK-NEXT:    sync2972; CHECK-NEXT:  .LBB2_67: # %entry2973; CHECK-NEXT:    #2974; CHECK-NEXT:    lbarx 24, 0, 42975; CHECK-NEXT:    nand 24, 25, 242976; CHECK-NEXT:    stbcx. 24, 0, 42977; CHECK-NEXT:    bne- 0, .LBB2_672978; CHECK-NEXT:  # %bb.68: # %entry2979; CHECK-NEXT:    lwsync2980; CHECK-NEXT:    stb 24, uc@toc@l(3)2981; CHECK-NEXT:    clrlwi 25, 24, 242982; CHECK-NEXT:    sync2983; CHECK-NEXT:  .LBB2_69: # %entry2984; CHECK-NEXT:    #2985; CHECK-NEXT:    lharx 24, 0, 92986; CHECK-NEXT:    nand 24, 25, 242987; CHECK-NEXT:    sthcx. 24, 0, 92988; CHECK-NEXT:    bne- 0, .LBB2_692989; CHECK-NEXT:  # %bb.70: # %entry2990; CHECK-NEXT:    lwsync2991; CHECK-NEXT:    sth 24, ss@toc@l(6)2992; CHECK-NEXT:    lbz 25, uc@toc@l(3)2993; CHECK-NEXT:    sync2994; CHECK-NEXT:  .LBB2_71: # %entry2995; CHECK-NEXT:    #2996; CHECK-NEXT:    lharx 24, 0, 112997; CHECK-NEXT:    nand 24, 25, 242998; CHECK-NEXT:    sthcx. 24, 0, 112999; CHECK-NEXT:    bne- 0, .LBB2_713000; CHECK-NEXT:  # %bb.72: # %entry3001; CHECK-NEXT:    lwsync3002; CHECK-NEXT:    sth 24, us@toc@l(8)3003; CHECK-NEXT:    lbz 25, uc@toc@l(3)3004; CHECK-NEXT:    sync3005; CHECK-NEXT:  .LBB2_73: # %entry3006; CHECK-NEXT:    #3007; CHECK-NEXT:    lwarx 24, 0, 03008; CHECK-NEXT:    nand 24, 25, 243009; CHECK-NEXT:    stwcx. 24, 0, 03010; CHECK-NEXT:    bne- 0, .LBB2_733011; CHECK-NEXT:  # %bb.74: # %entry3012; CHECK-NEXT:    lwsync3013; CHECK-NEXT:    stw 24, si@toc@l(10)3014; CHECK-NEXT:    lbz 25, uc@toc@l(3)3015; CHECK-NEXT:    sync3016; CHECK-NEXT:  .LBB2_75: # %entry3017; CHECK-NEXT:    #3018; CHECK-NEXT:    lwarx 24, 0, 293019; CHECK-NEXT:    nand 24, 25, 243020; CHECK-NEXT:    stwcx. 24, 0, 293021; CHECK-NEXT:    bne- 0, .LBB2_753022; CHECK-NEXT:  # %bb.76: # %entry3023; CHECK-NEXT:    lwsync3024; CHECK-NEXT:    stw 24, ui@toc@l(12)3025; CHECK-NEXT:    lbz 25, uc@toc@l(3)3026; CHECK-NEXT:    sync3027; CHECK-NEXT:  .LBB2_77: # %entry3028; CHECK-NEXT:    #3029; CHECK-NEXT:    ldarx 24, 0, 273030; CHECK-NEXT:    nand 24, 25, 243031; CHECK-NEXT:    stdcx. 24, 0, 273032; CHECK-NEXT:    bne- 0, .LBB2_773033; CHECK-NEXT:  # %bb.78: # %entry3034; CHECK-NEXT:    lwsync3035; CHECK-NEXT:    std 24, sll@toc@l(30)3036; CHECK-NEXT:    lbz 25, uc@toc@l(3)3037; CHECK-NEXT:    sync3038; CHECK-NEXT:  .LBB2_79: # %entry3039; CHECK-NEXT:    #3040; CHECK-NEXT:    ldarx 24, 0, 263041; CHECK-NEXT:    nand 24, 25, 243042; CHECK-NEXT:    stdcx. 24, 0, 263043; CHECK-NEXT:    bne- 0, .LBB2_793044; CHECK-NEXT:  # %bb.80: # %entry3045; CHECK-NEXT:    lwsync3046; CHECK-NEXT:    std 24, ull@toc@l(28)3047; CHECK-NEXT:    addis 24, 2, u128@toc@ha3048; CHECK-NEXT:    li 22, 03049; CHECK-NEXT:    lbz 25, uc@toc@l(3)3050; CHECK-NEXT:    sync3051; CHECK-NEXT:    addi 23, 24, u128@toc@l3052; CHECK-NEXT:  .LBB2_81: # %entry3053; CHECK-NEXT:    #3054; CHECK-NEXT:    lqarx 20, 0, 233055; CHECK-NEXT:    nand 19, 25, 213056; CHECK-NEXT:    nand 18, 22, 203057; CHECK-NEXT:    stqcx. 18, 0, 233058; CHECK-NEXT:    bne 0, .LBB2_813059; CHECK-NEXT:  # %bb.82: # %entry3060; CHECK-NEXT:    lwsync3061; CHECK-NEXT:    nand 25, 21, 253062; CHECK-NEXT:    li 21, -13063; CHECK-NEXT:    std 25, u128@toc@l(24)3064; CHECK-NEXT:    addis 24, 2, s128@toc@ha3065; CHECK-NEXT:    lbz 25, uc@toc@l(3)3066; CHECK-NEXT:    std 21, 8(23)3067; CHECK-NEXT:    sync3068; CHECK-NEXT:    addi 23, 24, s128@toc@l3069; CHECK-NEXT:  .LBB2_83: # %entry3070; CHECK-NEXT:    #3071; CHECK-NEXT:    lqarx 18, 0, 233072; CHECK-NEXT:    nand 17, 25, 193073; CHECK-NEXT:    nand 16, 22, 183074; CHECK-NEXT:    stqcx. 16, 0, 233075; CHECK-NEXT:    bne 0, .LBB2_833076; CHECK-NEXT:  # %bb.84: # %entry3077; CHECK-NEXT:    lwsync3078; CHECK-NEXT:    std 21, 8(23)3079; CHECK-NEXT:    nand 25, 19, 253080; CHECK-NEXT:    std 25, s128@toc@l(24)3081; CHECK-NEXT:    lbz 25, uc@toc@l(3)3082; CHECK-NEXT:    sync3083; CHECK-NEXT:  .LBB2_85: # %entry3084; CHECK-NEXT:    #3085; CHECK-NEXT:    lbarx 24, 0, 73086; CHECK-NEXT:    and 24, 25, 243087; CHECK-NEXT:    stbcx. 24, 0, 73088; CHECK-NEXT:    bne- 0, .LBB2_853089; CHECK-NEXT:  # %bb.86: # %entry3090; CHECK-NEXT:    lwsync3091; CHECK-NEXT:    stb 24, sc@toc@l(5)3092; CHECK-NEXT:    lbz 7, uc@toc@l(3)3093; CHECK-NEXT:    sync3094; CHECK-NEXT:  .LBB2_87: # %entry3095; CHECK-NEXT:    #3096; CHECK-NEXT:    lbarx 5, 0, 43097; CHECK-NEXT:    and 5, 7, 53098; CHECK-NEXT:    stbcx. 5, 0, 43099; CHECK-NEXT:    bne- 0, .LBB2_873100; CHECK-NEXT:  # %bb.88: # %entry3101; CHECK-NEXT:    lwsync3102; CHECK-NEXT:    stb 5, uc@toc@l(3)3103; CHECK-NEXT:    sync3104; CHECK-NEXT:  .LBB2_89: # %entry3105; CHECK-NEXT:    #3106; CHECK-NEXT:    lharx 4, 0, 93107; CHECK-NEXT:    and 4, 5, 43108; CHECK-NEXT:    sthcx. 4, 0, 93109; CHECK-NEXT:    bne- 0, .LBB2_893110; CHECK-NEXT:  # %bb.90: # %entry3111; CHECK-NEXT:    lwsync3112; CHECK-NEXT:    sth 4, ss@toc@l(6)3113; CHECK-NEXT:    lbz 4, uc@toc@l(3)3114; CHECK-NEXT:    sync3115; CHECK-NEXT:  .LBB2_91: # %entry3116; CHECK-NEXT:    #3117; CHECK-NEXT:    lharx 5, 0, 113118; CHECK-NEXT:    and 5, 4, 53119; CHECK-NEXT:    sthcx. 5, 0, 113120; CHECK-NEXT:    bne- 0, .LBB2_913121; CHECK-NEXT:  # %bb.92: # %entry3122; CHECK-NEXT:    lwsync3123; CHECK-NEXT:    sth 5, us@toc@l(8)3124; CHECK-NEXT:    lbz 4, uc@toc@l(3)3125; CHECK-NEXT:    sync3126; CHECK-NEXT:  .LBB2_93: # %entry3127; CHECK-NEXT:    #3128; CHECK-NEXT:    lwarx 5, 0, 03129; CHECK-NEXT:    and 5, 4, 53130; CHECK-NEXT:    stwcx. 5, 0, 03131; CHECK-NEXT:    bne- 0, .LBB2_933132; CHECK-NEXT:  # %bb.94: # %entry3133; CHECK-NEXT:    lwsync3134; CHECK-NEXT:    stw 5, si@toc@l(10)3135; CHECK-NEXT:    lbz 4, uc@toc@l(3)3136; CHECK-NEXT:    sync3137; CHECK-NEXT:  .LBB2_95: # %entry3138; CHECK-NEXT:    #3139; CHECK-NEXT:    lwarx 5, 0, 293140; CHECK-NEXT:    and 5, 4, 53141; CHECK-NEXT:    stwcx. 5, 0, 293142; CHECK-NEXT:    bne- 0, .LBB2_953143; CHECK-NEXT:  # %bb.96: # %entry3144; CHECK-NEXT:    lwsync3145; CHECK-NEXT:    stw 5, ui@toc@l(12)3146; CHECK-NEXT:    lbz 4, uc@toc@l(3)3147; CHECK-NEXT:    sync3148; CHECK-NEXT:  .LBB2_97: # %entry3149; CHECK-NEXT:    #3150; CHECK-NEXT:    ldarx 5, 0, 273151; CHECK-NEXT:    and 5, 4, 53152; CHECK-NEXT:    stdcx. 5, 0, 273153; CHECK-NEXT:    bne- 0, .LBB2_973154; CHECK-NEXT:  # %bb.98: # %entry3155; CHECK-NEXT:    lwsync3156; CHECK-NEXT:    std 5, sll@toc@l(30)3157; CHECK-NEXT:    lbz 3, uc@toc@l(3)3158; CHECK-NEXT:    sync3159; CHECK-NEXT:  .LBB2_99: # %entry3160; CHECK-NEXT:    #3161; CHECK-NEXT:    ldarx 4, 0, 263162; CHECK-NEXT:    and 4, 3, 43163; CHECK-NEXT:    stdcx. 4, 0, 263164; CHECK-NEXT:    bne- 0, .LBB2_993165; CHECK-NEXT:  # %bb.100: # %entry3166; CHECK-NEXT:    lwsync3167; CHECK-NEXT:    std 4, ull@toc@l(28)3168; CHECK-NEXT:    ld 30, -16(1) # 8-byte Folded Reload3169; CHECK-NEXT:    ld 29, -24(1) # 8-byte Folded Reload3170; CHECK-NEXT:    ld 28, -32(1) # 8-byte Folded Reload3171; CHECK-NEXT:    ld 27, -40(1) # 8-byte Folded Reload3172; CHECK-NEXT:    ld 26, -48(1) # 8-byte Folded Reload3173; CHECK-NEXT:    ld 25, -56(1) # 8-byte Folded Reload3174; CHECK-NEXT:    ld 24, -64(1) # 8-byte Folded Reload3175; CHECK-NEXT:    ld 23, -72(1) # 8-byte Folded Reload3176; CHECK-NEXT:    ld 22, -80(1) # 8-byte Folded Reload3177; CHECK-NEXT:    ld 21, -88(1) # 8-byte Folded Reload3178; CHECK-NEXT:    ld 20, -96(1) # 8-byte Folded Reload3179; CHECK-NEXT:    ld 19, -104(1) # 8-byte Folded Reload3180; CHECK-NEXT:    ld 18, -112(1) # 8-byte Folded Reload3181; CHECK-NEXT:    ld 17, -120(1) # 8-byte Folded Reload3182; CHECK-NEXT:    ld 16, -128(1) # 8-byte Folded Reload3183; CHECK-NEXT:    blr3184;3185; AIX32-LABEL: test_op_and_fetch:3186; AIX32:       # %bb.0: # %entry3187; AIX32-NEXT:    mflr 03188; AIX32-NEXT:    stwu 1, -176(1)3189; AIX32-NEXT:    stw 0, 184(1)3190; AIX32-NEXT:    stw 27, 156(1) # 4-byte Folded Spill3191; AIX32-NEXT:    lwz 27, L..C0(2) # @sc3192; AIX32-NEXT:    stw 26, 152(1) # 4-byte Folded Spill3193; AIX32-NEXT:    lwz 26, L..C1(2) # @uc3194; AIX32-NEXT:    lbz 3, 0(26)3195; AIX32-NEXT:    rlwinm 4, 27, 3, 27, 283196; AIX32-NEXT:    stw 24, 144(1) # 4-byte Folded Spill3197; AIX32-NEXT:    li 5, 2553198; AIX32-NEXT:    stw 13, 100(1) # 4-byte Folded Spill3199; AIX32-NEXT:    stw 14, 104(1) # 4-byte Folded Spill3200; AIX32-NEXT:    stw 15, 108(1) # 4-byte Folded Spill3201; AIX32-NEXT:    xori 24, 4, 243202; AIX32-NEXT:    stw 16, 112(1) # 4-byte Folded Spill3203; AIX32-NEXT:    stw 17, 116(1) # 4-byte Folded Spill3204; AIX32-NEXT:    stw 18, 120(1) # 4-byte Folded Spill3205; AIX32-NEXT:    stw 19, 124(1) # 4-byte Folded Spill3206; AIX32-NEXT:    stw 20, 128(1) # 4-byte Folded Spill3207; AIX32-NEXT:    stw 21, 132(1) # 4-byte Folded Spill3208; AIX32-NEXT:    stw 22, 136(1) # 4-byte Folded Spill3209; AIX32-NEXT:    stw 23, 140(1) # 4-byte Folded Spill3210; AIX32-NEXT:    stw 25, 148(1) # 4-byte Folded Spill3211; AIX32-NEXT:    stw 28, 160(1) # 4-byte Folded Spill3212; AIX32-NEXT:    stw 29, 164(1) # 4-byte Folded Spill3213; AIX32-NEXT:    stw 30, 168(1) # 4-byte Folded Spill3214; AIX32-NEXT:    stw 31, 172(1) # 4-byte Folded Spill3215; AIX32-NEXT:    li 17, -13216; AIX32-NEXT:    sync3217; AIX32-NEXT:    rlwinm 22, 27, 0, 0, 293218; AIX32-NEXT:    slw 4, 3, 243219; AIX32-NEXT:    slw 5, 5, 243220; AIX32-NEXT:  L..BB2_1: # %entry3221; AIX32-NEXT:    #3222; AIX32-NEXT:    lwarx 6, 0, 223223; AIX32-NEXT:    add 7, 4, 63224; AIX32-NEXT:    andc 8, 6, 53225; AIX32-NEXT:    and 7, 7, 53226; AIX32-NEXT:    or 7, 7, 83227; AIX32-NEXT:    stwcx. 7, 0, 223228; AIX32-NEXT:    bne- 0, L..BB2_13229; AIX32-NEXT:  # %bb.2: # %entry3230; AIX32-NEXT:    srw 4, 6, 243231; AIX32-NEXT:    lwsync3232; AIX32-NEXT:    li 5, 2553233; AIX32-NEXT:    rlwinm 19, 26, 0, 0, 293234; AIX32-NEXT:    clrlwi 4, 4, 243235; AIX32-NEXT:    add 3, 4, 33236; AIX32-NEXT:    rlwinm 4, 26, 3, 27, 283237; AIX32-NEXT:    stb 3, 0(27)3238; AIX32-NEXT:    lbz 3, 0(26)3239; AIX32-NEXT:    xori 21, 4, 243240; AIX32-NEXT:    sync3241; AIX32-NEXT:    slw 5, 5, 213242; AIX32-NEXT:    slw 4, 3, 213243; AIX32-NEXT:  L..BB2_3: # %entry3244; AIX32-NEXT:    #3245; AIX32-NEXT:    lwarx 6, 0, 193246; AIX32-NEXT:    add 7, 4, 63247; AIX32-NEXT:    andc 8, 6, 53248; AIX32-NEXT:    and 7, 7, 53249; AIX32-NEXT:    or 7, 7, 83250; AIX32-NEXT:    stwcx. 7, 0, 193251; AIX32-NEXT:    bne- 0, L..BB2_33252; AIX32-NEXT:  # %bb.4: # %entry3253; AIX32-NEXT:    srw 4, 6, 213254; AIX32-NEXT:    lwz 23, L..C2(2) # @ss3255; AIX32-NEXT:    li 5, 03256; AIX32-NEXT:    lwsync3257; AIX32-NEXT:    clrlwi 4, 4, 243258; AIX32-NEXT:    ori 5, 5, 655353259; AIX32-NEXT:    rlwinm 16, 23, 0, 0, 293260; AIX32-NEXT:    add 3, 4, 33261; AIX32-NEXT:    rlwinm 4, 23, 3, 27, 273262; AIX32-NEXT:    xori 18, 4, 163263; AIX32-NEXT:    stb 3, 0(26)3264; AIX32-NEXT:    clrlwi 3, 3, 243265; AIX32-NEXT:    sync3266; AIX32-NEXT:    slw 4, 3, 183267; AIX32-NEXT:    slw 5, 5, 183268; AIX32-NEXT:  L..BB2_5: # %entry3269; AIX32-NEXT:    #3270; AIX32-NEXT:    lwarx 6, 0, 163271; AIX32-NEXT:    add 7, 4, 63272; AIX32-NEXT:    andc 8, 6, 53273; AIX32-NEXT:    and 7, 7, 53274; AIX32-NEXT:    or 7, 7, 83275; AIX32-NEXT:    stwcx. 7, 0, 163276; AIX32-NEXT:    bne- 0, L..BB2_53277; AIX32-NEXT:  # %bb.6: # %entry3278; AIX32-NEXT:    srw 4, 6, 183279; AIX32-NEXT:    lwz 20, L..C3(2) # @us3280; AIX32-NEXT:    lwsync3281; AIX32-NEXT:    li 5, 03282; AIX32-NEXT:    clrlwi 4, 4, 163283; AIX32-NEXT:    ori 5, 5, 655353284; AIX32-NEXT:    rlwinm 14, 20, 0, 0, 293285; AIX32-NEXT:    add 3, 4, 33286; AIX32-NEXT:    rlwinm 4, 20, 3, 27, 273287; AIX32-NEXT:    xori 15, 4, 163288; AIX32-NEXT:    sth 3, 0(23)3289; AIX32-NEXT:    lbz 3, 0(26)3290; AIX32-NEXT:    sync3291; AIX32-NEXT:    slw 5, 5, 153292; AIX32-NEXT:    slw 4, 3, 153293; AIX32-NEXT:  L..BB2_7: # %entry3294; AIX32-NEXT:    #3295; AIX32-NEXT:    lwarx 6, 0, 143296; AIX32-NEXT:    add 7, 4, 63297; AIX32-NEXT:    andc 8, 6, 53298; AIX32-NEXT:    and 7, 7, 53299; AIX32-NEXT:    or 7, 7, 83300; AIX32-NEXT:    stwcx. 7, 0, 143301; AIX32-NEXT:    bne- 0, L..BB2_73302; AIX32-NEXT:  # %bb.8: # %entry3303; AIX32-NEXT:    srw 4, 6, 153304; AIX32-NEXT:    lwsync3305; AIX32-NEXT:    lwz 13, L..C4(2) # @si3306; AIX32-NEXT:    clrlwi 4, 4, 163307; AIX32-NEXT:    add 3, 4, 33308; AIX32-NEXT:    sth 3, 0(20)3309; AIX32-NEXT:    lbz 3, 0(26)3310; AIX32-NEXT:    sync3311; AIX32-NEXT:  L..BB2_9: # %entry3312; AIX32-NEXT:    #3313; AIX32-NEXT:    lwarx 4, 0, 133314; AIX32-NEXT:    add 4, 3, 43315; AIX32-NEXT:    stwcx. 4, 0, 133316; AIX32-NEXT:    bne- 0, L..BB2_93317; AIX32-NEXT:  # %bb.10: # %entry3318; AIX32-NEXT:    lwsync3319; AIX32-NEXT:    stw 4, 0(13)3320; AIX32-NEXT:    lwz 25, L..C5(2) # @ui3321; AIX32-NEXT:    lbz 3, 0(26)3322; AIX32-NEXT:    sync3323; AIX32-NEXT:  L..BB2_11: # %entry3324; AIX32-NEXT:    #3325; AIX32-NEXT:    lwarx 4, 0, 253326; AIX32-NEXT:    add 4, 3, 43327; AIX32-NEXT:    stwcx. 4, 0, 253328; AIX32-NEXT:    bne- 0, L..BB2_113329; AIX32-NEXT:  # %bb.12: # %entry3330; AIX32-NEXT:    lwsync3331; AIX32-NEXT:    lwz 31, L..C6(2) # @sll3332; AIX32-NEXT:    stw 4, 0(25)3333; AIX32-NEXT:    lbz 30, 0(26)3334; AIX32-NEXT:    li 4, 03335; AIX32-NEXT:    li 6, 53336; AIX32-NEXT:    li 28, 03337; AIX32-NEXT:    mr 3, 313338; AIX32-NEXT:    mr 5, 303339; AIX32-NEXT:    bl .__atomic_fetch_add_8[PR]3340; AIX32-NEXT:    nop3341; AIX32-NEXT:    addc 4, 4, 303342; AIX32-NEXT:    lbz 29, 0(26)3343; AIX32-NEXT:    lwz 30, L..C7(2) # @ull3344; AIX32-NEXT:    li 6, 53345; AIX32-NEXT:    addze 3, 33346; AIX32-NEXT:    stw 4, 4(31)3347; AIX32-NEXT:    li 4, 03348; AIX32-NEXT:    stw 3, 0(31)3349; AIX32-NEXT:    mr 3, 303350; AIX32-NEXT:    mr 5, 293351; AIX32-NEXT:    bl .__atomic_fetch_add_8[PR]3352; AIX32-NEXT:    nop3353; AIX32-NEXT:    addc 4, 4, 293354; AIX32-NEXT:    li 5, 2553355; AIX32-NEXT:    addze 3, 33356; AIX32-NEXT:    stw 3, 0(30)3357; AIX32-NEXT:    lbz 3, 0(26)3358; AIX32-NEXT:    slw 5, 5, 243359; AIX32-NEXT:    stw 4, 4(30)3360; AIX32-NEXT:    sync3361; AIX32-NEXT:    slw 4, 3, 243362; AIX32-NEXT:  L..BB2_13: # %entry3363; AIX32-NEXT:    #3364; AIX32-NEXT:    lwarx 6, 0, 223365; AIX32-NEXT:    sub 7, 6, 43366; AIX32-NEXT:    andc 8, 6, 53367; AIX32-NEXT:    and 7, 7, 53368; AIX32-NEXT:    or 7, 7, 83369; AIX32-NEXT:    stwcx. 7, 0, 223370; AIX32-NEXT:    bne- 0, L..BB2_133371; AIX32-NEXT:  # %bb.14: # %entry3372; AIX32-NEXT:    srw 4, 6, 243373; AIX32-NEXT:    lwsync3374; AIX32-NEXT:    li 5, 2553375; AIX32-NEXT:    clrlwi 4, 4, 243376; AIX32-NEXT:    slw 5, 5, 213377; AIX32-NEXT:    sub 3, 4, 33378; AIX32-NEXT:    stb 3, 0(27)3379; AIX32-NEXT:    lbz 3, 0(26)3380; AIX32-NEXT:    sync3381; AIX32-NEXT:    slw 4, 3, 213382; AIX32-NEXT:  L..BB2_15: # %entry3383; AIX32-NEXT:    #3384; AIX32-NEXT:    lwarx 6, 0, 193385; AIX32-NEXT:    sub 7, 6, 43386; AIX32-NEXT:    andc 8, 6, 53387; AIX32-NEXT:    and 7, 7, 53388; AIX32-NEXT:    or 7, 7, 83389; AIX32-NEXT:    stwcx. 7, 0, 193390; AIX32-NEXT:    bne- 0, L..BB2_153391; AIX32-NEXT:  # %bb.16: # %entry3392; AIX32-NEXT:    srw 4, 6, 213393; AIX32-NEXT:    li 5, 03394; AIX32-NEXT:    lwsync3395; AIX32-NEXT:    clrlwi 4, 4, 243396; AIX32-NEXT:    ori 5, 5, 655353397; AIX32-NEXT:    sub 3, 4, 33398; AIX32-NEXT:    slw 5, 5, 183399; AIX32-NEXT:    stb 3, 0(26)3400; AIX32-NEXT:    sync3401; AIX32-NEXT:    clrlwi 3, 3, 243402; AIX32-NEXT:    slw 4, 3, 183403; AIX32-NEXT:  L..BB2_17: # %entry3404; AIX32-NEXT:    #3405; AIX32-NEXT:    lwarx 6, 0, 163406; AIX32-NEXT:    sub 7, 6, 43407; AIX32-NEXT:    andc 8, 6, 53408; AIX32-NEXT:    and 7, 7, 53409; AIX32-NEXT:    or 7, 7, 83410; AIX32-NEXT:    stwcx. 7, 0, 163411; AIX32-NEXT:    bne- 0, L..BB2_173412; AIX32-NEXT:  # %bb.18: # %entry3413; AIX32-NEXT:    srw 4, 6, 183414; AIX32-NEXT:    lwsync3415; AIX32-NEXT:    li 5, 03416; AIX32-NEXT:    clrlwi 4, 4, 163417; AIX32-NEXT:    ori 5, 5, 655353418; AIX32-NEXT:    sub 3, 4, 33419; AIX32-NEXT:    slw 5, 5, 153420; AIX32-NEXT:    sth 3, 0(23)3421; AIX32-NEXT:    lbz 3, 0(26)3422; AIX32-NEXT:    sync3423; AIX32-NEXT:    slw 4, 3, 153424; AIX32-NEXT:  L..BB2_19: # %entry3425; AIX32-NEXT:    #3426; AIX32-NEXT:    lwarx 6, 0, 143427; AIX32-NEXT:    sub 7, 6, 43428; AIX32-NEXT:    andc 8, 6, 53429; AIX32-NEXT:    and 7, 7, 53430; AIX32-NEXT:    or 7, 7, 83431; AIX32-NEXT:    stwcx. 7, 0, 143432; AIX32-NEXT:    bne- 0, L..BB2_193433; AIX32-NEXT:  # %bb.20: # %entry3434; AIX32-NEXT:    srw 4, 6, 153435; AIX32-NEXT:    lwsync3436; AIX32-NEXT:    clrlwi 4, 4, 163437; AIX32-NEXT:    sub 3, 4, 33438; AIX32-NEXT:    sth 3, 0(20)3439; AIX32-NEXT:    lbz 3, 0(26)3440; AIX32-NEXT:    sync3441; AIX32-NEXT:  L..BB2_21: # %entry3442; AIX32-NEXT:    #3443; AIX32-NEXT:    lwarx 4, 0, 133444; AIX32-NEXT:    sub 4, 4, 33445; AIX32-NEXT:    stwcx. 4, 0, 133446; AIX32-NEXT:    bne- 0, L..BB2_213447; AIX32-NEXT:  # %bb.22: # %entry3448; AIX32-NEXT:    lwsync3449; AIX32-NEXT:    stw 4, 0(13)3450; AIX32-NEXT:    lbz 3, 0(26)3451; AIX32-NEXT:    sync3452; AIX32-NEXT:  L..BB2_23: # %entry3453; AIX32-NEXT:    #3454; AIX32-NEXT:    lwarx 4, 0, 253455; AIX32-NEXT:    sub 4, 4, 33456; AIX32-NEXT:    stwcx. 4, 0, 253457; AIX32-NEXT:    bne- 0, L..BB2_233458; AIX32-NEXT:  # %bb.24: # %entry3459; AIX32-NEXT:    lwsync3460; AIX32-NEXT:    stw 4, 0(25)3461; AIX32-NEXT:    li 4, 03462; AIX32-NEXT:    lbz 29, 0(26)3463; AIX32-NEXT:    li 6, 53464; AIX32-NEXT:    mr 3, 313465; AIX32-NEXT:    mr 5, 293466; AIX32-NEXT:    bl .__atomic_fetch_sub_8[PR]3467; AIX32-NEXT:    nop3468; AIX32-NEXT:    subc 4, 4, 293469; AIX32-NEXT:    lbz 29, 0(26)3470; AIX32-NEXT:    li 6, 53471; AIX32-NEXT:    mr 5, 293472; AIX32-NEXT:    subfe 3, 28, 33473; AIX32-NEXT:    stw 4, 4(31)3474; AIX32-NEXT:    li 4, 03475; AIX32-NEXT:    stw 3, 0(31)3476; AIX32-NEXT:    mr 3, 303477; AIX32-NEXT:    bl .__atomic_fetch_sub_8[PR]3478; AIX32-NEXT:    nop3479; AIX32-NEXT:    subc 4, 4, 293480; AIX32-NEXT:    li 5, 2553481; AIX32-NEXT:    subfe 3, 28, 33482; AIX32-NEXT:    stw 4, 4(30)3483; AIX32-NEXT:    slw 5, 5, 243484; AIX32-NEXT:    stw 3, 0(30)3485; AIX32-NEXT:    lbz 3, 0(26)3486; AIX32-NEXT:    sync3487; AIX32-NEXT:    slw 4, 3, 243488; AIX32-NEXT:  L..BB2_25: # %entry3489; AIX32-NEXT:    #3490; AIX32-NEXT:    lwarx 6, 0, 223491; AIX32-NEXT:    or 7, 4, 63492; AIX32-NEXT:    andc 8, 6, 53493; AIX32-NEXT:    and 7, 7, 53494; AIX32-NEXT:    or 7, 7, 83495; AIX32-NEXT:    stwcx. 7, 0, 223496; AIX32-NEXT:    bne- 0, L..BB2_253497; AIX32-NEXT:  # %bb.26: # %entry3498; AIX32-NEXT:    srw 4, 6, 243499; AIX32-NEXT:    lwsync3500; AIX32-NEXT:    li 5, 2553501; AIX32-NEXT:    clrlwi 4, 4, 243502; AIX32-NEXT:    slw 5, 5, 213503; AIX32-NEXT:    or 3, 4, 33504; AIX32-NEXT:    stb 3, 0(27)3505; AIX32-NEXT:    lbz 3, 0(26)3506; AIX32-NEXT:    sync3507; AIX32-NEXT:    slw 4, 3, 213508; AIX32-NEXT:  L..BB2_27: # %entry3509; AIX32-NEXT:    #3510; AIX32-NEXT:    lwarx 6, 0, 193511; AIX32-NEXT:    or 7, 4, 63512; AIX32-NEXT:    andc 8, 6, 53513; AIX32-NEXT:    and 7, 7, 53514; AIX32-NEXT:    or 7, 7, 83515; AIX32-NEXT:    stwcx. 7, 0, 193516; AIX32-NEXT:    bne- 0, L..BB2_273517; AIX32-NEXT:  # %bb.28: # %entry3518; AIX32-NEXT:    srw 4, 6, 213519; AIX32-NEXT:    li 5, 03520; AIX32-NEXT:    lwsync3521; AIX32-NEXT:    clrlwi 4, 4, 243522; AIX32-NEXT:    ori 5, 5, 655353523; AIX32-NEXT:    or 3, 4, 33524; AIX32-NEXT:    slw 5, 5, 183525; AIX32-NEXT:    stb 3, 0(26)3526; AIX32-NEXT:    sync3527; AIX32-NEXT:    clrlwi 3, 3, 243528; AIX32-NEXT:    slw 4, 3, 183529; AIX32-NEXT:  L..BB2_29: # %entry3530; AIX32-NEXT:    #3531; AIX32-NEXT:    lwarx 6, 0, 163532; AIX32-NEXT:    or 7, 4, 63533; AIX32-NEXT:    andc 8, 6, 53534; AIX32-NEXT:    and 7, 7, 53535; AIX32-NEXT:    or 7, 7, 83536; AIX32-NEXT:    stwcx. 7, 0, 163537; AIX32-NEXT:    bne- 0, L..BB2_293538; AIX32-NEXT:  # %bb.30: # %entry3539; AIX32-NEXT:    srw 4, 6, 183540; AIX32-NEXT:    lwsync3541; AIX32-NEXT:    li 5, 03542; AIX32-NEXT:    clrlwi 4, 4, 163543; AIX32-NEXT:    ori 5, 5, 655353544; AIX32-NEXT:    or 3, 4, 33545; AIX32-NEXT:    slw 5, 5, 153546; AIX32-NEXT:    sth 3, 0(23)3547; AIX32-NEXT:    lbz 3, 0(26)3548; AIX32-NEXT:    sync3549; AIX32-NEXT:    slw 4, 3, 153550; AIX32-NEXT:  L..BB2_31: # %entry3551; AIX32-NEXT:    #3552; AIX32-NEXT:    lwarx 6, 0, 143553; AIX32-NEXT:    or 7, 4, 63554; AIX32-NEXT:    andc 8, 6, 53555; AIX32-NEXT:    and 7, 7, 53556; AIX32-NEXT:    or 7, 7, 83557; AIX32-NEXT:    stwcx. 7, 0, 143558; AIX32-NEXT:    bne- 0, L..BB2_313559; AIX32-NEXT:  # %bb.32: # %entry3560; AIX32-NEXT:    srw 4, 6, 153561; AIX32-NEXT:    lwsync3562; AIX32-NEXT:    clrlwi 4, 4, 163563; AIX32-NEXT:    or 3, 4, 33564; AIX32-NEXT:    sth 3, 0(20)3565; AIX32-NEXT:    lbz 3, 0(26)3566; AIX32-NEXT:    sync3567; AIX32-NEXT:  L..BB2_33: # %entry3568; AIX32-NEXT:    #3569; AIX32-NEXT:    lwarx 4, 0, 133570; AIX32-NEXT:    or 4, 3, 43571; AIX32-NEXT:    stwcx. 4, 0, 133572; AIX32-NEXT:    bne- 0, L..BB2_333573; AIX32-NEXT:  # %bb.34: # %entry3574; AIX32-NEXT:    lwsync3575; AIX32-NEXT:    stw 4, 0(13)3576; AIX32-NEXT:    lbz 3, 0(26)3577; AIX32-NEXT:    sync3578; AIX32-NEXT:  L..BB2_35: # %entry3579; AIX32-NEXT:    #3580; AIX32-NEXT:    lwarx 4, 0, 253581; AIX32-NEXT:    or 4, 3, 43582; AIX32-NEXT:    stwcx. 4, 0, 253583; AIX32-NEXT:    bne- 0, L..BB2_353584; AIX32-NEXT:  # %bb.36: # %entry3585; AIX32-NEXT:    lwsync3586; AIX32-NEXT:    stw 4, 0(25)3587; AIX32-NEXT:    li 4, 03588; AIX32-NEXT:    lbz 29, 0(26)3589; AIX32-NEXT:    li 6, 53590; AIX32-NEXT:    mr 3, 313591; AIX32-NEXT:    mr 5, 293592; AIX32-NEXT:    bl .__atomic_fetch_or_8[PR]3593; AIX32-NEXT:    nop3594; AIX32-NEXT:    or 4, 4, 293595; AIX32-NEXT:    lbz 29, 0(26)3596; AIX32-NEXT:    li 6, 53597; AIX32-NEXT:    mr 5, 293598; AIX32-NEXT:    stw 4, 4(31)3599; AIX32-NEXT:    li 4, 03600; AIX32-NEXT:    stw 3, 0(31)3601; AIX32-NEXT:    mr 3, 303602; AIX32-NEXT:    bl .__atomic_fetch_or_8[PR]3603; AIX32-NEXT:    nop3604; AIX32-NEXT:    stw 3, 0(30)3605; AIX32-NEXT:    or 3, 4, 293606; AIX32-NEXT:    li 5, 2553607; AIX32-NEXT:    stw 3, 4(30)3608; AIX32-NEXT:    lbz 3, 0(26)3609; AIX32-NEXT:    sync3610; AIX32-NEXT:    slw 5, 5, 243611; AIX32-NEXT:    slw 4, 3, 243612; AIX32-NEXT:  L..BB2_37: # %entry3613; AIX32-NEXT:    #3614; AIX32-NEXT:    lwarx 6, 0, 223615; AIX32-NEXT:    xor 7, 4, 63616; AIX32-NEXT:    andc 8, 6, 53617; AIX32-NEXT:    and 7, 7, 53618; AIX32-NEXT:    or 7, 7, 83619; AIX32-NEXT:    stwcx. 7, 0, 223620; AIX32-NEXT:    bne- 0, L..BB2_373621; AIX32-NEXT:  # %bb.38: # %entry3622; AIX32-NEXT:    srw 4, 6, 243623; AIX32-NEXT:    lwsync3624; AIX32-NEXT:    li 5, 2553625; AIX32-NEXT:    clrlwi 4, 4, 243626; AIX32-NEXT:    slw 5, 5, 213627; AIX32-NEXT:    xor 3, 4, 33628; AIX32-NEXT:    stb 3, 0(27)3629; AIX32-NEXT:    lbz 3, 0(26)3630; AIX32-NEXT:    sync3631; AIX32-NEXT:    slw 4, 3, 213632; AIX32-NEXT:  L..BB2_39: # %entry3633; AIX32-NEXT:    #3634; AIX32-NEXT:    lwarx 6, 0, 193635; AIX32-NEXT:    xor 7, 4, 63636; AIX32-NEXT:    andc 8, 6, 53637; AIX32-NEXT:    and 7, 7, 53638; AIX32-NEXT:    or 7, 7, 83639; AIX32-NEXT:    stwcx. 7, 0, 193640; AIX32-NEXT:    bne- 0, L..BB2_393641; AIX32-NEXT:  # %bb.40: # %entry3642; AIX32-NEXT:    srw 4, 6, 213643; AIX32-NEXT:    li 5, 03644; AIX32-NEXT:    lwsync3645; AIX32-NEXT:    clrlwi 4, 4, 243646; AIX32-NEXT:    ori 5, 5, 655353647; AIX32-NEXT:    xor 3, 4, 33648; AIX32-NEXT:    slw 5, 5, 183649; AIX32-NEXT:    stb 3, 0(26)3650; AIX32-NEXT:    sync3651; AIX32-NEXT:    clrlwi 3, 3, 243652; AIX32-NEXT:    slw 4, 3, 183653; AIX32-NEXT:  L..BB2_41: # %entry3654; AIX32-NEXT:    #3655; AIX32-NEXT:    lwarx 6, 0, 163656; AIX32-NEXT:    xor 7, 4, 63657; AIX32-NEXT:    andc 8, 6, 53658; AIX32-NEXT:    and 7, 7, 53659; AIX32-NEXT:    or 7, 7, 83660; AIX32-NEXT:    stwcx. 7, 0, 163661; AIX32-NEXT:    bne- 0, L..BB2_413662; AIX32-NEXT:  # %bb.42: # %entry3663; AIX32-NEXT:    srw 4, 6, 183664; AIX32-NEXT:    lwsync3665; AIX32-NEXT:    li 5, 03666; AIX32-NEXT:    clrlwi 4, 4, 163667; AIX32-NEXT:    ori 5, 5, 655353668; AIX32-NEXT:    xor 3, 4, 33669; AIX32-NEXT:    slw 5, 5, 153670; AIX32-NEXT:    sth 3, 0(23)3671; AIX32-NEXT:    lbz 3, 0(26)3672; AIX32-NEXT:    sync3673; AIX32-NEXT:    slw 4, 3, 153674; AIX32-NEXT:  L..BB2_43: # %entry3675; AIX32-NEXT:    #3676; AIX32-NEXT:    lwarx 6, 0, 143677; AIX32-NEXT:    xor 7, 4, 63678; AIX32-NEXT:    andc 8, 6, 53679; AIX32-NEXT:    and 7, 7, 53680; AIX32-NEXT:    or 7, 7, 83681; AIX32-NEXT:    stwcx. 7, 0, 143682; AIX32-NEXT:    bne- 0, L..BB2_433683; AIX32-NEXT:  # %bb.44: # %entry3684; AIX32-NEXT:    srw 4, 6, 153685; AIX32-NEXT:    lwsync3686; AIX32-NEXT:    clrlwi 4, 4, 163687; AIX32-NEXT:    xor 3, 4, 33688; AIX32-NEXT:    sth 3, 0(20)3689; AIX32-NEXT:    lbz 3, 0(26)3690; AIX32-NEXT:    sync3691; AIX32-NEXT:  L..BB2_45: # %entry3692; AIX32-NEXT:    #3693; AIX32-NEXT:    lwarx 4, 0, 133694; AIX32-NEXT:    xor 4, 3, 43695; AIX32-NEXT:    stwcx. 4, 0, 133696; AIX32-NEXT:    bne- 0, L..BB2_453697; AIX32-NEXT:  # %bb.46: # %entry3698; AIX32-NEXT:    lwsync3699; AIX32-NEXT:    stw 4, 0(13)3700; AIX32-NEXT:    lbz 3, 0(26)3701; AIX32-NEXT:    sync3702; AIX32-NEXT:  L..BB2_47: # %entry3703; AIX32-NEXT:    #3704; AIX32-NEXT:    lwarx 4, 0, 253705; AIX32-NEXT:    xor 4, 3, 43706; AIX32-NEXT:    stwcx. 4, 0, 253707; AIX32-NEXT:    bne- 0, L..BB2_473708; AIX32-NEXT:  # %bb.48: # %entry3709; AIX32-NEXT:    lwsync3710; AIX32-NEXT:    stw 4, 0(25)3711; AIX32-NEXT:    li 4, 03712; AIX32-NEXT:    lbz 29, 0(26)3713; AIX32-NEXT:    li 6, 53714; AIX32-NEXT:    mr 3, 313715; AIX32-NEXT:    mr 5, 293716; AIX32-NEXT:    bl .__atomic_fetch_xor_8[PR]3717; AIX32-NEXT:    nop3718; AIX32-NEXT:    xor 4, 4, 293719; AIX32-NEXT:    lbz 29, 0(26)3720; AIX32-NEXT:    li 6, 53721; AIX32-NEXT:    mr 5, 293722; AIX32-NEXT:    stw 4, 4(31)3723; AIX32-NEXT:    li 4, 03724; AIX32-NEXT:    stw 3, 0(31)3725; AIX32-NEXT:    mr 3, 303726; AIX32-NEXT:    bl .__atomic_fetch_xor_8[PR]3727; AIX32-NEXT:    nop3728; AIX32-NEXT:    xor 4, 4, 293729; AIX32-NEXT:    stw 3, 0(30)3730; AIX32-NEXT:    lbz 3, 0(26)3731; AIX32-NEXT:    li 5, 2553732; AIX32-NEXT:    stw 4, 4(30)3733; AIX32-NEXT:    sync3734; AIX32-NEXT:    slw 4, 3, 243735; AIX32-NEXT:    slw 5, 5, 243736; AIX32-NEXT:  L..BB2_49: # %entry3737; AIX32-NEXT:    #3738; AIX32-NEXT:    lwarx 6, 0, 223739; AIX32-NEXT:    nand 7, 4, 63740; AIX32-NEXT:    andc 8, 6, 53741; AIX32-NEXT:    and 7, 7, 53742; AIX32-NEXT:    or 7, 7, 83743; AIX32-NEXT:    stwcx. 7, 0, 223744; AIX32-NEXT:    bne- 0, L..BB2_493745; AIX32-NEXT:  # %bb.50: # %entry3746; AIX32-NEXT:    srw 4, 6, 243747; AIX32-NEXT:    lwsync3748; AIX32-NEXT:    li 5, 2553749; AIX32-NEXT:    clrlwi 4, 4, 243750; AIX32-NEXT:    slw 5, 5, 213751; AIX32-NEXT:    nand 3, 4, 33752; AIX32-NEXT:    stb 3, 0(27)3753; AIX32-NEXT:    lbz 3, 0(26)3754; AIX32-NEXT:    sync3755; AIX32-NEXT:    slw 4, 3, 213756; AIX32-NEXT:  L..BB2_51: # %entry3757; AIX32-NEXT:    #3758; AIX32-NEXT:    lwarx 6, 0, 193759; AIX32-NEXT:    nand 7, 4, 63760; AIX32-NEXT:    andc 8, 6, 53761; AIX32-NEXT:    and 7, 7, 53762; AIX32-NEXT:    or 7, 7, 83763; AIX32-NEXT:    stwcx. 7, 0, 193764; AIX32-NEXT:    bne- 0, L..BB2_513765; AIX32-NEXT:  # %bb.52: # %entry3766; AIX32-NEXT:    srw 4, 6, 213767; AIX32-NEXT:    li 5, 03768; AIX32-NEXT:    lwsync3769; AIX32-NEXT:    clrlwi 4, 4, 243770; AIX32-NEXT:    ori 5, 5, 655353771; AIX32-NEXT:    nand 3, 4, 33772; AIX32-NEXT:    slw 5, 5, 183773; AIX32-NEXT:    stb 3, 0(26)3774; AIX32-NEXT:    sync3775; AIX32-NEXT:    clrlwi 3, 3, 243776; AIX32-NEXT:    slw 4, 3, 183777; AIX32-NEXT:  L..BB2_53: # %entry3778; AIX32-NEXT:    #3779; AIX32-NEXT:    lwarx 6, 0, 163780; AIX32-NEXT:    nand 7, 4, 63781; AIX32-NEXT:    andc 8, 6, 53782; AIX32-NEXT:    and 7, 7, 53783; AIX32-NEXT:    or 7, 7, 83784; AIX32-NEXT:    stwcx. 7, 0, 163785; AIX32-NEXT:    bne- 0, L..BB2_533786; AIX32-NEXT:  # %bb.54: # %entry3787; AIX32-NEXT:    srw 4, 6, 183788; AIX32-NEXT:    lwsync3789; AIX32-NEXT:    li 5, 03790; AIX32-NEXT:    clrlwi 4, 4, 163791; AIX32-NEXT:    ori 5, 5, 655353792; AIX32-NEXT:    nand 3, 4, 33793; AIX32-NEXT:    slw 5, 5, 153794; AIX32-NEXT:    sth 3, 0(23)3795; AIX32-NEXT:    lbz 3, 0(26)3796; AIX32-NEXT:    sync3797; AIX32-NEXT:    slw 4, 3, 153798; AIX32-NEXT:  L..BB2_55: # %entry3799; AIX32-NEXT:    #3800; AIX32-NEXT:    lwarx 6, 0, 143801; AIX32-NEXT:    nand 7, 4, 63802; AIX32-NEXT:    andc 8, 6, 53803; AIX32-NEXT:    and 7, 7, 53804; AIX32-NEXT:    or 7, 7, 83805; AIX32-NEXT:    stwcx. 7, 0, 143806; AIX32-NEXT:    bne- 0, L..BB2_553807; AIX32-NEXT:  # %bb.56: # %entry3808; AIX32-NEXT:    srw 4, 6, 153809; AIX32-NEXT:    lwsync3810; AIX32-NEXT:    clrlwi 4, 4, 163811; AIX32-NEXT:    nand 3, 4, 33812; AIX32-NEXT:    sth 3, 0(20)3813; AIX32-NEXT:    lbz 3, 0(26)3814; AIX32-NEXT:    sync3815; AIX32-NEXT:  L..BB2_57: # %entry3816; AIX32-NEXT:    #3817; AIX32-NEXT:    lwarx 4, 0, 133818; AIX32-NEXT:    nand 4, 3, 43819; AIX32-NEXT:    stwcx. 4, 0, 133820; AIX32-NEXT:    bne- 0, L..BB2_573821; AIX32-NEXT:  # %bb.58: # %entry3822; AIX32-NEXT:    stw 23, 56(1) # 4-byte Folded Spill3823; AIX32-NEXT:    stw 27, 60(1) # 4-byte Folded Spill3824; AIX32-NEXT:    lwsync3825; AIX32-NEXT:    stw 4, 0(13)3826; AIX32-NEXT:    lbz 3, 0(26)3827; AIX32-NEXT:    sync3828; AIX32-NEXT:  L..BB2_59: # %entry3829; AIX32-NEXT:    #3830; AIX32-NEXT:    lwarx 4, 0, 253831; AIX32-NEXT:    nand 4, 3, 43832; AIX32-NEXT:    stwcx. 4, 0, 253833; AIX32-NEXT:    bne- 0, L..BB2_593834; AIX32-NEXT:  # %bb.60: # %entry3835; AIX32-NEXT:    lwsync3836; AIX32-NEXT:    stw 4, 0(25)3837; AIX32-NEXT:    li 4, 03838; AIX32-NEXT:    lbz 29, 0(26)3839; AIX32-NEXT:    li 6, 53840; AIX32-NEXT:    mr 3, 313841; AIX32-NEXT:    mr 5, 293842; AIX32-NEXT:    bl .__atomic_fetch_nand_8[PR]3843; AIX32-NEXT:    nop3844; AIX32-NEXT:    nand 3, 4, 293845; AIX32-NEXT:    lbz 29, 0(26)3846; AIX32-NEXT:    li 4, 03847; AIX32-NEXT:    mr 5, 293848; AIX32-NEXT:    li 6, 53849; AIX32-NEXT:    stw 3, 4(31)3850; AIX32-NEXT:    mr 3, 303851; AIX32-NEXT:    stw 17, 0(31)3852; AIX32-NEXT:    bl .__atomic_fetch_nand_8[PR]3853; AIX32-NEXT:    nop3854; AIX32-NEXT:    nand 3, 4, 293855; AIX32-NEXT:    lwz 29, L..C8(2) # @u1283856; AIX32-NEXT:    lbz 23, 0(26)3857; AIX32-NEXT:    addi 28, 1, 803858; AIX32-NEXT:    addi 27, 1, 643859; AIX32-NEXT:    stw 17, 0(30)3860; AIX32-NEXT:    lwz 4, 12(29)3861; AIX32-NEXT:    lwz 5, 8(29)3862; AIX32-NEXT:    lwz 6, 4(29)3863; AIX32-NEXT:    lwz 7, 0(29)3864; AIX32-NEXT:    stw 3, 4(30)3865; AIX32-NEXT:    .align 43866; AIX32-NEXT:  L..BB2_61: # %atomicrmw.start23867; AIX32-NEXT:    #3868; AIX32-NEXT:    and 3, 4, 233869; AIX32-NEXT:    stw 7, 80(1)3870; AIX32-NEXT:    li 7, 53871; AIX32-NEXT:    li 8, 53872; AIX32-NEXT:    xor 3, 3, 173873; AIX32-NEXT:    stw 6, 84(1)3874; AIX32-NEXT:    stw 5, 88(1)3875; AIX32-NEXT:    stw 4, 92(1)3876; AIX32-NEXT:    mr 4, 293877; AIX32-NEXT:    mr 5, 283878; AIX32-NEXT:    mr 6, 273879; AIX32-NEXT:    stw 3, 76(1)3880; AIX32-NEXT:    li 3, 163881; AIX32-NEXT:    stw 17, 72(1)3882; AIX32-NEXT:    stw 17, 68(1)3883; AIX32-NEXT:    stw 17, 64(1)3884; AIX32-NEXT:    bl .__atomic_compare_exchange[PR]3885; AIX32-NEXT:    nop3886; AIX32-NEXT:    lwz 4, 92(1)3887; AIX32-NEXT:    lwz 5, 88(1)3888; AIX32-NEXT:    lwz 6, 84(1)3889; AIX32-NEXT:    lwz 7, 80(1)3890; AIX32-NEXT:    cmplwi 3, 03891; AIX32-NEXT:    beq 0, L..BB2_613892; AIX32-NEXT:  # %bb.62: # %atomicrmw.end13893; AIX32-NEXT:    and 3, 4, 233894; AIX32-NEXT:    stw 17, 0(29)3895; AIX32-NEXT:    lbz 23, 0(26)3896; AIX32-NEXT:    stw 17, 4(29)3897; AIX32-NEXT:    stw 17, 8(29)3898; AIX32-NEXT:    xor 3, 3, 173899; AIX32-NEXT:    addi 28, 1, 803900; AIX32-NEXT:    addi 27, 1, 643901; AIX32-NEXT:    stw 3, 12(29)3902; AIX32-NEXT:    lwz 29, L..C9(2) # @s1283903; AIX32-NEXT:    lwz 4, 12(29)3904; AIX32-NEXT:    lwz 5, 8(29)3905; AIX32-NEXT:    lwz 6, 4(29)3906; AIX32-NEXT:    lwz 7, 0(29)3907; AIX32-NEXT:    .align 43908; AIX32-NEXT:  L..BB2_63: # %atomicrmw.start3909; AIX32-NEXT:    #3910; AIX32-NEXT:    and 3, 4, 233911; AIX32-NEXT:    stw 7, 80(1)3912; AIX32-NEXT:    li 7, 53913; AIX32-NEXT:    li 8, 53914; AIX32-NEXT:    xor 3, 3, 173915; AIX32-NEXT:    stw 6, 84(1)3916; AIX32-NEXT:    stw 5, 88(1)3917; AIX32-NEXT:    stw 4, 92(1)3918; AIX32-NEXT:    mr 4, 293919; AIX32-NEXT:    mr 5, 283920; AIX32-NEXT:    mr 6, 273921; AIX32-NEXT:    stw 3, 76(1)3922; AIX32-NEXT:    li 3, 163923; AIX32-NEXT:    stw 17, 72(1)3924; AIX32-NEXT:    stw 17, 68(1)3925; AIX32-NEXT:    stw 17, 64(1)3926; AIX32-NEXT:    bl .__atomic_compare_exchange[PR]3927; AIX32-NEXT:    nop3928; AIX32-NEXT:    lwz 4, 92(1)3929; AIX32-NEXT:    lwz 5, 88(1)3930; AIX32-NEXT:    lwz 6, 84(1)3931; AIX32-NEXT:    lwz 7, 80(1)3932; AIX32-NEXT:    cmplwi 3, 03933; AIX32-NEXT:    beq 0, L..BB2_633934; AIX32-NEXT:  # %bb.64: # %atomicrmw.end3935; AIX32-NEXT:    and 3, 4, 233936; AIX32-NEXT:    li 5, 2553937; AIX32-NEXT:    xor 3, 3, 173938; AIX32-NEXT:    stw 17, 0(29)3939; AIX32-NEXT:    stw 17, 4(29)3940; AIX32-NEXT:    stw 17, 8(29)3941; AIX32-NEXT:    slw 5, 5, 243942; AIX32-NEXT:    stw 3, 12(29)3943; AIX32-NEXT:    lbz 3, 0(26)3944; AIX32-NEXT:    sync3945; AIX32-NEXT:    slw 4, 3, 243946; AIX32-NEXT:  L..BB2_65: # %atomicrmw.end3947; AIX32-NEXT:    #3948; AIX32-NEXT:    lwarx 6, 0, 223949; AIX32-NEXT:    and 7, 4, 63950; AIX32-NEXT:    andc 8, 6, 53951; AIX32-NEXT:    and 7, 7, 53952; AIX32-NEXT:    or 7, 7, 83953; AIX32-NEXT:    stwcx. 7, 0, 223954; AIX32-NEXT:    bne- 0, L..BB2_653955; AIX32-NEXT:  # %bb.66: # %atomicrmw.end3956; AIX32-NEXT:    srw 4, 6, 243957; AIX32-NEXT:    lwsync3958; AIX32-NEXT:    li 5, 2553959; AIX32-NEXT:    clrlwi 4, 4, 243960; AIX32-NEXT:    slw 5, 5, 213961; AIX32-NEXT:    and 3, 4, 33962; AIX32-NEXT:    lwz 4, 60(1) # 4-byte Folded Reload3963; AIX32-NEXT:    stb 3, 0(4)3964; AIX32-NEXT:    lbz 3, 0(26)3965; AIX32-NEXT:    sync3966; AIX32-NEXT:    lwz 9, 56(1) # 4-byte Folded Reload3967; AIX32-NEXT:    slw 4, 3, 213968; AIX32-NEXT:  L..BB2_67: # %atomicrmw.end3969; AIX32-NEXT:    #3970; AIX32-NEXT:    lwarx 6, 0, 193971; AIX32-NEXT:    and 7, 4, 63972; AIX32-NEXT:    andc 8, 6, 53973; AIX32-NEXT:    and 7, 7, 53974; AIX32-NEXT:    or 7, 7, 83975; AIX32-NEXT:    stwcx. 7, 0, 193976; AIX32-NEXT:    bne- 0, L..BB2_673977; AIX32-NEXT:  # %bb.68: # %atomicrmw.end3978; AIX32-NEXT:    srw 4, 6, 213979; AIX32-NEXT:    li 5, 03980; AIX32-NEXT:    lwsync3981; AIX32-NEXT:    clrlwi 4, 4, 243982; AIX32-NEXT:    ori 5, 5, 655353983; AIX32-NEXT:    and 3, 4, 33984; AIX32-NEXT:    slw 5, 5, 183985; AIX32-NEXT:    stb 3, 0(26)3986; AIX32-NEXT:    sync3987; AIX32-NEXT:    slw 4, 3, 183988; AIX32-NEXT:  L..BB2_69: # %atomicrmw.end3989; AIX32-NEXT:    #3990; AIX32-NEXT:    lwarx 6, 0, 163991; AIX32-NEXT:    and 7, 4, 63992; AIX32-NEXT:    andc 8, 6, 53993; AIX32-NEXT:    and 7, 7, 53994; AIX32-NEXT:    or 7, 7, 83995; AIX32-NEXT:    stwcx. 7, 0, 163996; AIX32-NEXT:    bne- 0, L..BB2_693997; AIX32-NEXT:  # %bb.70: # %atomicrmw.end3998; AIX32-NEXT:    srw 4, 6, 183999; AIX32-NEXT:    lwsync4000; AIX32-NEXT:    li 5, 04001; AIX32-NEXT:    clrlwi 4, 4, 164002; AIX32-NEXT:    ori 5, 5, 655354003; AIX32-NEXT:    and 3, 4, 34004; AIX32-NEXT:    slw 5, 5, 154005; AIX32-NEXT:    sth 3, 0(9)4006; AIX32-NEXT:    lbz 3, 0(26)4007; AIX32-NEXT:    sync4008; AIX32-NEXT:    slw 4, 3, 154009; AIX32-NEXT:  L..BB2_71: # %atomicrmw.end4010; AIX32-NEXT:    #4011; AIX32-NEXT:    lwarx 6, 0, 144012; AIX32-NEXT:    and 7, 4, 64013; AIX32-NEXT:    andc 8, 6, 54014; AIX32-NEXT:    and 7, 7, 54015; AIX32-NEXT:    or 7, 7, 84016; AIX32-NEXT:    stwcx. 7, 0, 144017; AIX32-NEXT:    bne- 0, L..BB2_714018; AIX32-NEXT:  # %bb.72: # %atomicrmw.end4019; AIX32-NEXT:    srw 4, 6, 154020; AIX32-NEXT:    lwsync4021; AIX32-NEXT:    clrlwi 4, 4, 164022; AIX32-NEXT:    and 3, 4, 34023; AIX32-NEXT:    sth 3, 0(20)4024; AIX32-NEXT:    lbz 3, 0(26)4025; AIX32-NEXT:    sync4026; AIX32-NEXT:  L..BB2_73: # %atomicrmw.end4027; AIX32-NEXT:    #4028; AIX32-NEXT:    lwarx 4, 0, 134029; AIX32-NEXT:    and 4, 3, 44030; AIX32-NEXT:    stwcx. 4, 0, 134031; AIX32-NEXT:    bne- 0, L..BB2_734032; AIX32-NEXT:  # %bb.74: # %atomicrmw.end4033; AIX32-NEXT:    lwsync4034; AIX32-NEXT:    stw 4, 0(13)4035; AIX32-NEXT:    lbz 3, 0(26)4036; AIX32-NEXT:    sync4037; AIX32-NEXT:  L..BB2_75: # %atomicrmw.end4038; AIX32-NEXT:    #4039; AIX32-NEXT:    lwarx 4, 0, 254040; AIX32-NEXT:    and 4, 3, 44041; AIX32-NEXT:    stwcx. 4, 0, 254042; AIX32-NEXT:    bne- 0, L..BB2_754043; AIX32-NEXT:  # %bb.76: # %atomicrmw.end4044; AIX32-NEXT:    lwsync4045; AIX32-NEXT:    stw 4, 0(25)4046; AIX32-NEXT:    li 4, 04047; AIX32-NEXT:    lbz 29, 0(26)4048; AIX32-NEXT:    li 6, 54049; AIX32-NEXT:    mr 3, 314050; AIX32-NEXT:    li 28, 04051; AIX32-NEXT:    mr 5, 294052; AIX32-NEXT:    bl .__atomic_fetch_and_8[PR]4053; AIX32-NEXT:    nop4054; AIX32-NEXT:    and 3, 4, 294055; AIX32-NEXT:    stw 28, 0(31)4056; AIX32-NEXT:    li 4, 04057; AIX32-NEXT:    li 6, 54058; AIX32-NEXT:    stw 3, 4(31)4059; AIX32-NEXT:    lbz 31, 0(26)4060; AIX32-NEXT:    mr 3, 304061; AIX32-NEXT:    mr 5, 314062; AIX32-NEXT:    bl .__atomic_fetch_and_8[PR]4063; AIX32-NEXT:    nop4064; AIX32-NEXT:    and 3, 4, 314065; AIX32-NEXT:    stw 28, 0(30)4066; AIX32-NEXT:    lwz 31, 172(1) # 4-byte Folded Reload4067; AIX32-NEXT:    lwz 29, 164(1) # 4-byte Folded Reload4068; AIX32-NEXT:    lwz 28, 160(1) # 4-byte Folded Reload4069; AIX32-NEXT:    lwz 27, 156(1) # 4-byte Folded Reload4070; AIX32-NEXT:    lwz 26, 152(1) # 4-byte Folded Reload4071; AIX32-NEXT:    lwz 25, 148(1) # 4-byte Folded Reload4072; AIX32-NEXT:    lwz 24, 144(1) # 4-byte Folded Reload4073; AIX32-NEXT:    stw 3, 4(30)4074; AIX32-NEXT:    lwz 30, 168(1) # 4-byte Folded Reload4075; AIX32-NEXT:    lwz 23, 140(1) # 4-byte Folded Reload4076; AIX32-NEXT:    lwz 22, 136(1) # 4-byte Folded Reload4077; AIX32-NEXT:    lwz 21, 132(1) # 4-byte Folded Reload4078; AIX32-NEXT:    lwz 20, 128(1) # 4-byte Folded Reload4079; AIX32-NEXT:    lwz 19, 124(1) # 4-byte Folded Reload4080; AIX32-NEXT:    lwz 18, 120(1) # 4-byte Folded Reload4081; AIX32-NEXT:    lwz 17, 116(1) # 4-byte Folded Reload4082; AIX32-NEXT:    lwz 16, 112(1) # 4-byte Folded Reload4083; AIX32-NEXT:    lwz 15, 108(1) # 4-byte Folded Reload4084; AIX32-NEXT:    lwz 14, 104(1) # 4-byte Folded Reload4085; AIX32-NEXT:    lwz 13, 100(1) # 4-byte Folded Reload4086; AIX32-NEXT:    addi 1, 1, 1764087; AIX32-NEXT:    lwz 0, 8(1)4088; AIX32-NEXT:    mtlr 04089; AIX32-NEXT:    blr4090entry:4091  %0 = load i8, ptr @uc, align 14092  %1 = atomicrmw add ptr @sc, i8 %0 seq_cst, align 14093  %2 = add i8 %1, %04094  store i8 %2, ptr @sc, align 14095  %3 = load i8, ptr @uc, align 14096  %4 = atomicrmw add ptr @uc, i8 %3 seq_cst, align 14097  %5 = add i8 %4, %34098  store i8 %5, ptr @uc, align 14099  %conv = zext i8 %5 to i164100  %6 = atomicrmw add ptr @ss, i16 %conv seq_cst, align 24101  %7 = add i16 %6, %conv4102  store i16 %7, ptr @ss, align 24103  %8 = load i8, ptr @uc, align 14104  %conv1 = zext i8 %8 to i164105  %9 = atomicrmw add ptr @us, i16 %conv1 seq_cst, align 24106  %10 = add i16 %9, %conv14107  store i16 %10, ptr @us, align 24108  %11 = load i8, ptr @uc, align 14109  %conv2 = zext i8 %11 to i324110  %12 = atomicrmw add ptr @si, i32 %conv2 seq_cst, align 44111  %13 = add i32 %12, %conv24112  store i32 %13, ptr @si, align 44113  %14 = load i8, ptr @uc, align 14114  %conv3 = zext i8 %14 to i324115  %15 = atomicrmw add ptr @ui, i32 %conv3 seq_cst, align 44116  %16 = add i32 %15, %conv34117  store i32 %16, ptr @ui, align 44118  %17 = load i8, ptr @uc, align 14119  %conv4 = zext i8 %17 to i644120  %18 = atomicrmw add ptr @sll, i64 %conv4 seq_cst, align 84121  %19 = add i64 %18, %conv44122  store i64 %19, ptr @sll, align 84123  %20 = load i8, ptr @uc, align 14124  %conv5 = zext i8 %20 to i644125  %21 = atomicrmw add ptr @ull, i64 %conv5 seq_cst, align 84126  %22 = add i64 %21, %conv54127  store i64 %22, ptr @ull, align 84128  %23 = load i8, ptr @uc, align 14129  %24 = atomicrmw sub ptr @sc, i8 %23 seq_cst, align 14130  %25 = sub i8 %24, %234131  store i8 %25, ptr @sc, align 14132  %26 = load i8, ptr @uc, align 14133  %27 = atomicrmw sub ptr @uc, i8 %26 seq_cst, align 14134  %28 = sub i8 %27, %264135  store i8 %28, ptr @uc, align 14136  %conv6 = zext i8 %28 to i164137  %29 = atomicrmw sub ptr @ss, i16 %conv6 seq_cst, align 24138  %30 = sub i16 %29, %conv64139  store i16 %30, ptr @ss, align 24140  %31 = load i8, ptr @uc, align 14141  %conv7 = zext i8 %31 to i164142  %32 = atomicrmw sub ptr @us, i16 %conv7 seq_cst, align 24143  %33 = sub i16 %32, %conv74144  store i16 %33, ptr @us, align 24145  %34 = load i8, ptr @uc, align 14146  %conv8 = zext i8 %34 to i324147  %35 = atomicrmw sub ptr @si, i32 %conv8 seq_cst, align 44148  %36 = sub i32 %35, %conv84149  store i32 %36, ptr @si, align 44150  %37 = load i8, ptr @uc, align 14151  %conv9 = zext i8 %37 to i324152  %38 = atomicrmw sub ptr @ui, i32 %conv9 seq_cst, align 44153  %39 = sub i32 %38, %conv94154  store i32 %39, ptr @ui, align 44155  %40 = load i8, ptr @uc, align 14156  %conv10 = zext i8 %40 to i644157  %41 = atomicrmw sub ptr @sll, i64 %conv10 seq_cst, align 84158  %42 = sub i64 %41, %conv104159  store i64 %42, ptr @sll, align 84160  %43 = load i8, ptr @uc, align 14161  %conv11 = zext i8 %43 to i644162  %44 = atomicrmw sub ptr @ull, i64 %conv11 seq_cst, align 84163  %45 = sub i64 %44, %conv114164  store i64 %45, ptr @ull, align 84165  %46 = load i8, ptr @uc, align 14166  %47 = atomicrmw or ptr @sc, i8 %46 seq_cst, align 14167  %48 = or i8 %47, %464168  store i8 %48, ptr @sc, align 14169  %49 = load i8, ptr @uc, align 14170  %50 = atomicrmw or ptr @uc, i8 %49 seq_cst, align 14171  %51 = or i8 %50, %494172  store i8 %51, ptr @uc, align 14173  %conv12 = zext i8 %51 to i164174  %52 = atomicrmw or ptr @ss, i16 %conv12 seq_cst, align 24175  %53 = or i16 %52, %conv124176  store i16 %53, ptr @ss, align 24177  %54 = load i8, ptr @uc, align 14178  %conv13 = zext i8 %54 to i164179  %55 = atomicrmw or ptr @us, i16 %conv13 seq_cst, align 24180  %56 = or i16 %55, %conv134181  store i16 %56, ptr @us, align 24182  %57 = load i8, ptr @uc, align 14183  %conv14 = zext i8 %57 to i324184  %58 = atomicrmw or ptr @si, i32 %conv14 seq_cst, align 44185  %59 = or i32 %58, %conv144186  store i32 %59, ptr @si, align 44187  %60 = load i8, ptr @uc, align 14188  %conv15 = zext i8 %60 to i324189  %61 = atomicrmw or ptr @ui, i32 %conv15 seq_cst, align 44190  %62 = or i32 %61, %conv154191  store i32 %62, ptr @ui, align 44192  %63 = load i8, ptr @uc, align 14193  %conv16 = zext i8 %63 to i644194  %64 = atomicrmw or ptr @sll, i64 %conv16 seq_cst, align 84195  %65 = or i64 %64, %conv164196  store i64 %65, ptr @sll, align 84197  %66 = load i8, ptr @uc, align 14198  %conv17 = zext i8 %66 to i644199  %67 = atomicrmw or ptr @ull, i64 %conv17 seq_cst, align 84200  %68 = or i64 %67, %conv174201  store i64 %68, ptr @ull, align 84202  %69 = load i8, ptr @uc, align 14203  %70 = atomicrmw xor ptr @sc, i8 %69 seq_cst, align 14204  %71 = xor i8 %70, %694205  store i8 %71, ptr @sc, align 14206  %72 = load i8, ptr @uc, align 14207  %73 = atomicrmw xor ptr @uc, i8 %72 seq_cst, align 14208  %74 = xor i8 %73, %724209  store i8 %74, ptr @uc, align 14210  %conv18 = zext i8 %74 to i164211  %75 = atomicrmw xor ptr @ss, i16 %conv18 seq_cst, align 24212  %76 = xor i16 %75, %conv184213  store i16 %76, ptr @ss, align 24214  %77 = load i8, ptr @uc, align 14215  %conv19 = zext i8 %77 to i164216  %78 = atomicrmw xor ptr @us, i16 %conv19 seq_cst, align 24217  %79 = xor i16 %78, %conv194218  store i16 %79, ptr @us, align 24219  %80 = load i8, ptr @uc, align 14220  %conv20 = zext i8 %80 to i324221  %81 = atomicrmw xor ptr @si, i32 %conv20 seq_cst, align 44222  %82 = xor i32 %81, %conv204223  store i32 %82, ptr @si, align 44224  %83 = load i8, ptr @uc, align 14225  %conv21 = zext i8 %83 to i324226  %84 = atomicrmw xor ptr @ui, i32 %conv21 seq_cst, align 44227  %85 = xor i32 %84, %conv214228  store i32 %85, ptr @ui, align 44229  %86 = load i8, ptr @uc, align 14230  %conv22 = zext i8 %86 to i644231  %87 = atomicrmw xor ptr @sll, i64 %conv22 seq_cst, align 84232  %88 = xor i64 %87, %conv224233  store i64 %88, ptr @sll, align 84234  %89 = load i8, ptr @uc, align 14235  %conv23 = zext i8 %89 to i644236  %90 = atomicrmw xor ptr @ull, i64 %conv23 seq_cst, align 84237  %91 = xor i64 %90, %conv234238  store i64 %91, ptr @ull, align 84239  %92 = load i8, ptr @uc, align 14240  %93 = atomicrmw nand ptr @sc, i8 %92 seq_cst, align 14241  %94 = and i8 %93, %924242  %95 = xor i8 %94, -14243  store i8 %95, ptr @sc, align 14244  %96 = load i8, ptr @uc, align 14245  %97 = atomicrmw nand ptr @uc, i8 %96 seq_cst, align 14246  %98 = and i8 %97, %964247  %99 = xor i8 %98, -14248  store i8 %99, ptr @uc, align 14249  %conv24 = zext i8 %99 to i164250  %100 = atomicrmw nand ptr @ss, i16 %conv24 seq_cst, align 24251  %101 = and i16 %100, %conv244252  %102 = xor i16 %101, -14253  store i16 %102, ptr @ss, align 24254  %103 = load i8, ptr @uc, align 14255  %conv25 = zext i8 %103 to i164256  %104 = atomicrmw nand ptr @us, i16 %conv25 seq_cst, align 24257  %105 = and i16 %104, %conv254258  %106 = xor i16 %105, -14259  store i16 %106, ptr @us, align 24260  %107 = load i8, ptr @uc, align 14261  %conv26 = zext i8 %107 to i324262  %108 = atomicrmw nand ptr @si, i32 %conv26 seq_cst, align 44263  %109 = and i32 %108, %conv264264  %110 = xor i32 %109, -14265  store i32 %110, ptr @si, align 44266  %111 = load i8, ptr @uc, align 14267  %conv27 = zext i8 %111 to i324268  %112 = atomicrmw nand ptr @ui, i32 %conv27 seq_cst, align 44269  %113 = and i32 %112, %conv274270  %114 = xor i32 %113, -14271  store i32 %114, ptr @ui, align 44272  %115 = load i8, ptr @uc, align 14273  %conv28 = zext i8 %115 to i644274  %116 = atomicrmw nand ptr @sll, i64 %conv28 seq_cst, align 84275  %117 = and i64 %116, %conv284276  %118 = xor i64 %117, -14277  store i64 %118, ptr @sll, align 84278  %119 = load i8, ptr @uc, align 14279  %conv29 = zext i8 %119 to i644280  %120 = atomicrmw nand ptr @ull, i64 %conv29 seq_cst, align 84281  %121 = and i64 %120, %conv294282  %122 = xor i64 %121, -14283  store i64 %122, ptr @ull, align 84284  %123 = load i8, ptr @uc, align 14285  %conv30 = zext i8 %123 to i1284286  %124 = atomicrmw nand ptr @u128, i128 %conv30 seq_cst, align 164287  %125 = and i128 %124, %conv304288  %126 = xor i128 %125, -14289  store i128 %126, ptr @u128, align 164290  %127 = load i8, ptr @uc, align 14291  %conv31 = zext i8 %127 to i1284292  %128 = atomicrmw nand ptr @s128, i128 %conv31 seq_cst, align 164293  %129 = and i128 %128, %conv314294  %130 = xor i128 %129, -14295  store i128 %130, ptr @s128, align 164296  %131 = load i8, ptr @uc, align 14297  %132 = atomicrmw and ptr @sc, i8 %131 seq_cst, align 14298  %133 = and i8 %132, %1314299  store i8 %133, ptr @sc, align 14300  %134 = load i8, ptr @uc, align 14301  %135 = atomicrmw and ptr @uc, i8 %134 seq_cst, align 14302  %136 = and i8 %135, %1344303  store i8 %136, ptr @uc, align 14304  %conv32 = zext i8 %136 to i164305  %137 = atomicrmw and ptr @ss, i16 %conv32 seq_cst, align 24306  %138 = and i16 %137, %conv324307  store i16 %138, ptr @ss, align 24308  %139 = load i8, ptr @uc, align 14309  %conv33 = zext i8 %139 to i164310  %140 = atomicrmw and ptr @us, i16 %conv33 seq_cst, align 24311  %141 = and i16 %140, %conv334312  store i16 %141, ptr @us, align 24313  %142 = load i8, ptr @uc, align 14314  %conv34 = zext i8 %142 to i324315  %143 = atomicrmw and ptr @si, i32 %conv34 seq_cst, align 44316  %144 = and i32 %143, %conv344317  store i32 %144, ptr @si, align 44318  %145 = load i8, ptr @uc, align 14319  %conv35 = zext i8 %145 to i324320  %146 = atomicrmw and ptr @ui, i32 %conv35 seq_cst, align 44321  %147 = and i32 %146, %conv354322  store i32 %147, ptr @ui, align 44323  %148 = load i8, ptr @uc, align 14324  %conv36 = zext i8 %148 to i644325  %149 = atomicrmw and ptr @sll, i64 %conv36 seq_cst, align 84326  %150 = and i64 %149, %conv364327  store i64 %150, ptr @sll, align 84328  %151 = load i8, ptr @uc, align 14329  %conv37 = zext i8 %151 to i644330  %152 = atomicrmw and ptr @ull, i64 %conv37 seq_cst, align 84331  %153 = and i64 %152, %conv374332  store i64 %153, ptr @ull, align 84333  ret void4334}4335 4336define dso_local void @test_compare_and_swap() local_unnamed_addr #0 {4337; CHECK-LABEL: test_compare_and_swap:4338; CHECK:       # %bb.0: # %entry4339; CHECK-NEXT:    addis 4, 2, sc@toc@ha4340; CHECK-NEXT:    addis 3, 2, uc@toc@ha4341; CHECK-NEXT:    std 27, -40(1) # 8-byte Folded Spill4342; CHECK-NEXT:    std 28, -32(1) # 8-byte Folded Spill4343; CHECK-NEXT:    std 29, -24(1) # 8-byte Folded Spill4344; CHECK-NEXT:    std 30, -16(1) # 8-byte Folded Spill4345; CHECK-NEXT:    addi 6, 4, sc@toc@l4346; CHECK-NEXT:    lbz 7, uc@toc@l(3)4347; CHECK-NEXT:    lbz 8, sc@toc@l(4)4348; CHECK-NEXT:    lbarx 5, 0, 64349; CHECK-NEXT:    cmplw 5, 74350; CHECK-NEXT:    bne- 0, .LBB3_44351; CHECK-NEXT:  # %bb.1: # %cmpxchg.fencedstore2764352; CHECK-NEXT:    sync4353; CHECK-NEXT:  .LBB3_2: # %cmpxchg.trystore2754354; CHECK-NEXT:    #4355; CHECK-NEXT:    stbcx. 8, 0, 64356; CHECK-NEXT:    beq+ 0, .LBB3_44357; CHECK-NEXT:  # %bb.3: # %cmpxchg.releasedload2744358; CHECK-NEXT:    #4359; CHECK-NEXT:    lbarx 5, 0, 64360; CHECK-NEXT:    cmplw 5, 74361; CHECK-NEXT:    beq+ 0, .LBB3_24362; CHECK-NEXT:  .LBB3_4: # %cmpxchg.nostore2724363; CHECK-NEXT:    addi 7, 3, uc@toc@l4364; CHECK-NEXT:    lwsync4365; CHECK-NEXT:    stb 5, sc@toc@l(4)4366; CHECK-NEXT:    lbz 9, uc@toc@l(3)4367; CHECK-NEXT:    lbarx 8, 0, 74368; CHECK-NEXT:    cmplw 8, 94369; CHECK-NEXT:    bne- 0, .LBB3_84370; CHECK-NEXT:  # %bb.5: # %cmpxchg.fencedstore2574371; CHECK-NEXT:    sync4372; CHECK-NEXT:    clrlwi 5, 5, 244373; CHECK-NEXT:  .LBB3_6: # %cmpxchg.trystore2564374; CHECK-NEXT:    #4375; CHECK-NEXT:    stbcx. 5, 0, 74376; CHECK-NEXT:    beq+ 0, .LBB3_84377; CHECK-NEXT:  # %bb.7: # %cmpxchg.releasedload2554378; CHECK-NEXT:    #4379; CHECK-NEXT:    lbarx 8, 0, 74380; CHECK-NEXT:    cmplw 8, 94381; CHECK-NEXT:    beq+ 0, .LBB3_64382; CHECK-NEXT:  .LBB3_8: # %cmpxchg.nostore2534383; CHECK-NEXT:    addis 5, 2, ss@toc@ha4384; CHECK-NEXT:    lwsync4385; CHECK-NEXT:    stb 8, uc@toc@l(3)4386; CHECK-NEXT:    clrlwi 10, 8, 244387; CHECK-NEXT:    lbz 11, sc@toc@l(4)4388; CHECK-NEXT:    addi 8, 5, ss@toc@l4389; CHECK-NEXT:    lharx 9, 0, 84390; CHECK-NEXT:    cmplw 9, 104391; CHECK-NEXT:    bne- 0, .LBB3_124392; CHECK-NEXT:  # %bb.9: # %cmpxchg.fencedstore2384393; CHECK-NEXT:    extsb 11, 114394; CHECK-NEXT:    sync4395; CHECK-NEXT:    clrlwi 11, 11, 164396; CHECK-NEXT:  .LBB3_10: # %cmpxchg.trystore2374397; CHECK-NEXT:    #4398; CHECK-NEXT:    sthcx. 11, 0, 84399; CHECK-NEXT:    beq+ 0, .LBB3_124400; CHECK-NEXT:  # %bb.11: # %cmpxchg.releasedload2364401; CHECK-NEXT:    #4402; CHECK-NEXT:    lharx 9, 0, 84403; CHECK-NEXT:    cmplw 9, 104404; CHECK-NEXT:    beq+ 0, .LBB3_104405; CHECK-NEXT:  .LBB3_12: # %cmpxchg.nostore2344406; CHECK-NEXT:    lwsync4407; CHECK-NEXT:    sth 9, ss@toc@l(5)4408; CHECK-NEXT:    addis 5, 2, us@toc@ha4409; CHECK-NEXT:    lbz 11, uc@toc@l(3)4410; CHECK-NEXT:    lbz 12, sc@toc@l(4)4411; CHECK-NEXT:    addi 9, 5, us@toc@l4412; CHECK-NEXT:    lharx 10, 0, 94413; CHECK-NEXT:    cmplw 10, 114414; CHECK-NEXT:    bne- 0, .LBB3_164415; CHECK-NEXT:  # %bb.13: # %cmpxchg.fencedstore2194416; CHECK-NEXT:    extsb 12, 124417; CHECK-NEXT:    sync4418; CHECK-NEXT:    clrlwi 12, 12, 164419; CHECK-NEXT:  .LBB3_14: # %cmpxchg.trystore2184420; CHECK-NEXT:    #4421; CHECK-NEXT:    sthcx. 12, 0, 94422; CHECK-NEXT:    beq+ 0, .LBB3_164423; CHECK-NEXT:  # %bb.15: # %cmpxchg.releasedload2174424; CHECK-NEXT:    #4425; CHECK-NEXT:    lharx 10, 0, 94426; CHECK-NEXT:    cmplw 10, 114427; CHECK-NEXT:    beq+ 0, .LBB3_144428; CHECK-NEXT:  .LBB3_16: # %cmpxchg.nostore2154429; CHECK-NEXT:    lwsync4430; CHECK-NEXT:    sth 10, us@toc@l(5)4431; CHECK-NEXT:    addis 5, 2, si@toc@ha4432; CHECK-NEXT:    lbz 12, uc@toc@l(3)4433; CHECK-NEXT:    lbz 0, sc@toc@l(4)4434; CHECK-NEXT:    addi 10, 5, si@toc@l4435; CHECK-NEXT:    lwarx 11, 0, 104436; CHECK-NEXT:    cmplw 11, 124437; CHECK-NEXT:    bne- 0, .LBB3_204438; CHECK-NEXT:  # %bb.17: # %cmpxchg.fencedstore2004439; CHECK-NEXT:    extsb 0, 04440; CHECK-NEXT:    sync4441; CHECK-NEXT:  .LBB3_18: # %cmpxchg.trystore1994442; CHECK-NEXT:    #4443; CHECK-NEXT:    stwcx. 0, 0, 104444; CHECK-NEXT:    beq+ 0, .LBB3_204445; CHECK-NEXT:  # %bb.19: # %cmpxchg.releasedload1984446; CHECK-NEXT:    #4447; CHECK-NEXT:    lwarx 11, 0, 104448; CHECK-NEXT:    cmplw 11, 124449; CHECK-NEXT:    beq+ 0, .LBB3_184450; CHECK-NEXT:  .LBB3_20: # %cmpxchg.nostore1964451; CHECK-NEXT:    lwsync4452; CHECK-NEXT:    stw 11, si@toc@l(5)4453; CHECK-NEXT:    addis 5, 2, ui@toc@ha4454; CHECK-NEXT:    lbz 0, uc@toc@l(3)4455; CHECK-NEXT:    lbz 30, sc@toc@l(4)4456; CHECK-NEXT:    addi 11, 5, ui@toc@l4457; CHECK-NEXT:    lwarx 12, 0, 114458; CHECK-NEXT:    cmplw 12, 04459; CHECK-NEXT:    bne- 0, .LBB3_244460; CHECK-NEXT:  # %bb.21: # %cmpxchg.fencedstore1814461; CHECK-NEXT:    extsb 30, 304462; CHECK-NEXT:    sync4463; CHECK-NEXT:  .LBB3_22: # %cmpxchg.trystore1804464; CHECK-NEXT:    #4465; CHECK-NEXT:    stwcx. 30, 0, 114466; CHECK-NEXT:    beq+ 0, .LBB3_244467; CHECK-NEXT:  # %bb.23: # %cmpxchg.releasedload1794468; CHECK-NEXT:    #4469; CHECK-NEXT:    lwarx 12, 0, 114470; CHECK-NEXT:    cmplw 12, 04471; CHECK-NEXT:    beq+ 0, .LBB3_224472; CHECK-NEXT:  .LBB3_24: # %cmpxchg.nostore1774473; CHECK-NEXT:    addis 30, 2, sll@toc@ha4474; CHECK-NEXT:    lwsync4475; CHECK-NEXT:    stw 12, ui@toc@l(5)4476; CHECK-NEXT:    lbz 29, uc@toc@l(3)4477; CHECK-NEXT:    lbz 28, sc@toc@l(4)4478; CHECK-NEXT:    addi 12, 30, sll@toc@l4479; CHECK-NEXT:    ldarx 0, 0, 124480; CHECK-NEXT:    cmpld 0, 294481; CHECK-NEXT:    bne- 0, .LBB3_284482; CHECK-NEXT:  # %bb.25: # %cmpxchg.fencedstore1624483; CHECK-NEXT:    extsb 28, 284484; CHECK-NEXT:    sync4485; CHECK-NEXT:  .LBB3_26: # %cmpxchg.trystore1614486; CHECK-NEXT:    #4487; CHECK-NEXT:    stdcx. 28, 0, 124488; CHECK-NEXT:    beq+ 0, .LBB3_284489; CHECK-NEXT:  # %bb.27: # %cmpxchg.releasedload1604490; CHECK-NEXT:    #4491; CHECK-NEXT:    ldarx 0, 0, 124492; CHECK-NEXT:    cmpld 0, 294493; CHECK-NEXT:    beq+ 0, .LBB3_264494; CHECK-NEXT:  .LBB3_28: # %cmpxchg.nostore1584495; CHECK-NEXT:    lwsync4496; CHECK-NEXT:    std 0, sll@toc@l(30)4497; CHECK-NEXT:    addis 30, 2, ull@toc@ha4498; CHECK-NEXT:    lbz 28, uc@toc@l(3)4499; CHECK-NEXT:    lbz 27, sc@toc@l(4)4500; CHECK-NEXT:    addi 0, 30, ull@toc@l4501; CHECK-NEXT:    ldarx 29, 0, 04502; CHECK-NEXT:    cmpld 29, 284503; CHECK-NEXT:    bne- 0, .LBB3_324504; CHECK-NEXT:  # %bb.29: # %cmpxchg.fencedstore1434505; CHECK-NEXT:    extsb 27, 274506; CHECK-NEXT:    sync4507; CHECK-NEXT:  .LBB3_30: # %cmpxchg.trystore1424508; CHECK-NEXT:    #4509; CHECK-NEXT:    stdcx. 27, 0, 04510; CHECK-NEXT:    beq+ 0, .LBB3_324511; CHECK-NEXT:  # %bb.31: # %cmpxchg.releasedload1414512; CHECK-NEXT:    #4513; CHECK-NEXT:    ldarx 29, 0, 04514; CHECK-NEXT:    cmpld 29, 284515; CHECK-NEXT:    beq+ 0, .LBB3_304516; CHECK-NEXT:  .LBB3_32: # %cmpxchg.nostore1394517; CHECK-NEXT:    lwsync4518; CHECK-NEXT:    std 29, ull@toc@l(30)4519; CHECK-NEXT:    lbz 30, uc@toc@l(3)4520; CHECK-NEXT:    lbz 29, sc@toc@l(4)4521; CHECK-NEXT:    lbarx 28, 0, 64522; CHECK-NEXT:    cmplw 28, 304523; CHECK-NEXT:    bne- 0, .LBB3_364524; CHECK-NEXT:  # %bb.33: # %cmpxchg.fencedstore1244525; CHECK-NEXT:    sync4526; CHECK-NEXT:  .LBB3_34: # %cmpxchg.trystore1234527; CHECK-NEXT:    #4528; CHECK-NEXT:    stbcx. 29, 0, 64529; CHECK-NEXT:    beq+ 0, .LBB3_374530; CHECK-NEXT:  # %bb.35: # %cmpxchg.releasedload1224531; CHECK-NEXT:    #4532; CHECK-NEXT:    lbarx 28, 0, 64533; CHECK-NEXT:    cmplw 28, 304534; CHECK-NEXT:    beq+ 0, .LBB3_344535; CHECK-NEXT:  .LBB3_36: # %cmpxchg.nostore1204536; CHECK-NEXT:    lwsync4537; CHECK-NEXT:    crxor 20, 20, 204538; CHECK-NEXT:    b .LBB3_384539; CHECK-NEXT:  .LBB3_37: # %cmpxchg.success1214540; CHECK-NEXT:    lwsync4541; CHECK-NEXT:    creqv 20, 20, 204542; CHECK-NEXT:  .LBB3_38: # %cmpxchg.end1184543; CHECK-NEXT:    li 6, 04544; CHECK-NEXT:    li 30, 14545; CHECK-NEXT:    isel 6, 30, 6, 204546; CHECK-NEXT:    lbz 30, sc@toc@l(4)4547; CHECK-NEXT:    stw 6, ui@toc@l(5)4548; CHECK-NEXT:    lbz 6, uc@toc@l(3)4549; CHECK-NEXT:    lbarx 29, 0, 74550; CHECK-NEXT:    cmplw 29, 64551; CHECK-NEXT:    bne- 0, .LBB3_424552; CHECK-NEXT:  # %bb.39: # %cmpxchg.fencedstore1054553; CHECK-NEXT:    sync4554; CHECK-NEXT:  .LBB3_40: # %cmpxchg.trystore1044555; CHECK-NEXT:    #4556; CHECK-NEXT:    stbcx. 30, 0, 74557; CHECK-NEXT:    beq+ 0, .LBB3_434558; CHECK-NEXT:  # %bb.41: # %cmpxchg.releasedload1034559; CHECK-NEXT:    #4560; CHECK-NEXT:    lbarx 29, 0, 74561; CHECK-NEXT:    cmplw 29, 64562; CHECK-NEXT:    beq+ 0, .LBB3_404563; CHECK-NEXT:  .LBB3_42: # %cmpxchg.nostore1014564; CHECK-NEXT:    lwsync4565; CHECK-NEXT:    crxor 20, 20, 204566; CHECK-NEXT:    b .LBB3_444567; CHECK-NEXT:  .LBB3_43: # %cmpxchg.success1024568; CHECK-NEXT:    lwsync4569; CHECK-NEXT:    creqv 20, 20, 204570; CHECK-NEXT:  .LBB3_44: # %cmpxchg.end994571; CHECK-NEXT:    li 6, 04572; CHECK-NEXT:    li 7, 14573; CHECK-NEXT:    isel 6, 7, 6, 204574; CHECK-NEXT:    lbz 7, sc@toc@l(4)4575; CHECK-NEXT:    stw 6, ui@toc@l(5)4576; CHECK-NEXT:    lbz 6, uc@toc@l(3)4577; CHECK-NEXT:    lharx 30, 0, 84578; CHECK-NEXT:    cmplw 30, 64579; CHECK-NEXT:    bne- 0, .LBB3_484580; CHECK-NEXT:  # %bb.45: # %cmpxchg.fencedstore864581; CHECK-NEXT:    extsb 7, 74582; CHECK-NEXT:    sync4583; CHECK-NEXT:    clrlwi 7, 7, 164584; CHECK-NEXT:  .LBB3_46: # %cmpxchg.trystore854585; CHECK-NEXT:    #4586; CHECK-NEXT:    sthcx. 7, 0, 84587; CHECK-NEXT:    beq+ 0, .LBB3_494588; CHECK-NEXT:  # %bb.47: # %cmpxchg.releasedload844589; CHECK-NEXT:    #4590; CHECK-NEXT:    lharx 30, 0, 84591; CHECK-NEXT:    cmplw 30, 64592; CHECK-NEXT:    beq+ 0, .LBB3_464593; CHECK-NEXT:  .LBB3_48: # %cmpxchg.nostore824594; CHECK-NEXT:    lwsync4595; CHECK-NEXT:    crxor 20, 20, 204596; CHECK-NEXT:    b .LBB3_504597; CHECK-NEXT:  .LBB3_49: # %cmpxchg.success834598; CHECK-NEXT:    lwsync4599; CHECK-NEXT:    creqv 20, 20, 204600; CHECK-NEXT:  .LBB3_50: # %cmpxchg.end804601; CHECK-NEXT:    li 6, 04602; CHECK-NEXT:    li 7, 14603; CHECK-NEXT:    isel 6, 7, 6, 204604; CHECK-NEXT:    lbz 7, sc@toc@l(4)4605; CHECK-NEXT:    stw 6, ui@toc@l(5)4606; CHECK-NEXT:    lbz 6, uc@toc@l(3)4607; CHECK-NEXT:    lharx 8, 0, 94608; CHECK-NEXT:    cmplw 8, 64609; CHECK-NEXT:    bne- 0, .LBB3_544610; CHECK-NEXT:  # %bb.51: # %cmpxchg.fencedstore674611; CHECK-NEXT:    extsb 7, 74612; CHECK-NEXT:    sync4613; CHECK-NEXT:    clrlwi 7, 7, 164614; CHECK-NEXT:  .LBB3_52: # %cmpxchg.trystore664615; CHECK-NEXT:    #4616; CHECK-NEXT:    sthcx. 7, 0, 94617; CHECK-NEXT:    beq+ 0, .LBB3_554618; CHECK-NEXT:  # %bb.53: # %cmpxchg.releasedload654619; CHECK-NEXT:    #4620; CHECK-NEXT:    lharx 8, 0, 94621; CHECK-NEXT:    cmplw 8, 64622; CHECK-NEXT:    beq+ 0, .LBB3_524623; CHECK-NEXT:  .LBB3_54: # %cmpxchg.nostore634624; CHECK-NEXT:    lwsync4625; CHECK-NEXT:    crxor 20, 20, 204626; CHECK-NEXT:    b .LBB3_564627; CHECK-NEXT:  .LBB3_55: # %cmpxchg.success644628; CHECK-NEXT:    lwsync4629; CHECK-NEXT:    creqv 20, 20, 204630; CHECK-NEXT:  .LBB3_56: # %cmpxchg.end614631; CHECK-NEXT:    li 6, 04632; CHECK-NEXT:    li 7, 14633; CHECK-NEXT:    isel 6, 7, 6, 204634; CHECK-NEXT:    lbz 7, sc@toc@l(4)4635; CHECK-NEXT:    stw 6, ui@toc@l(5)4636; CHECK-NEXT:    lbz 6, uc@toc@l(3)4637; CHECK-NEXT:    lwarx 8, 0, 104638; CHECK-NEXT:    cmplw 8, 64639; CHECK-NEXT:    bne- 0, .LBB3_604640; CHECK-NEXT:  # %bb.57: # %cmpxchg.fencedstore484641; CHECK-NEXT:    extsb 7, 74642; CHECK-NEXT:    sync4643; CHECK-NEXT:  .LBB3_58: # %cmpxchg.trystore474644; CHECK-NEXT:    #4645; CHECK-NEXT:    stwcx. 7, 0, 104646; CHECK-NEXT:    beq+ 0, .LBB3_614647; CHECK-NEXT:  # %bb.59: # %cmpxchg.releasedload464648; CHECK-NEXT:    #4649; CHECK-NEXT:    lwarx 8, 0, 104650; CHECK-NEXT:    cmplw 8, 64651; CHECK-NEXT:    beq+ 0, .LBB3_584652; CHECK-NEXT:  .LBB3_60: # %cmpxchg.nostore444653; CHECK-NEXT:    lwsync4654; CHECK-NEXT:    crxor 20, 20, 204655; CHECK-NEXT:    b .LBB3_624656; CHECK-NEXT:  .LBB3_61: # %cmpxchg.success454657; CHECK-NEXT:    lwsync4658; CHECK-NEXT:    creqv 20, 20, 204659; CHECK-NEXT:  .LBB3_62: # %cmpxchg.end424660; CHECK-NEXT:    li 6, 04661; CHECK-NEXT:    li 7, 14662; CHECK-NEXT:    isel 6, 7, 6, 204663; CHECK-NEXT:    lbz 7, sc@toc@l(4)4664; CHECK-NEXT:    stw 6, ui@toc@l(5)4665; CHECK-NEXT:    lbz 6, uc@toc@l(3)4666; CHECK-NEXT:    lwarx 8, 0, 114667; CHECK-NEXT:    cmplw 8, 64668; CHECK-NEXT:    bne- 0, .LBB3_664669; CHECK-NEXT:  # %bb.63: # %cmpxchg.fencedstore294670; CHECK-NEXT:    extsb 7, 74671; CHECK-NEXT:    sync4672; CHECK-NEXT:  .LBB3_64: # %cmpxchg.trystore284673; CHECK-NEXT:    #4674; CHECK-NEXT:    stwcx. 7, 0, 114675; CHECK-NEXT:    beq+ 0, .LBB3_674676; CHECK-NEXT:  # %bb.65: # %cmpxchg.releasedload274677; CHECK-NEXT:    #4678; CHECK-NEXT:    lwarx 8, 0, 114679; CHECK-NEXT:    cmplw 8, 64680; CHECK-NEXT:    beq+ 0, .LBB3_644681; CHECK-NEXT:  .LBB3_66: # %cmpxchg.nostore254682; CHECK-NEXT:    lwsync4683; CHECK-NEXT:    crxor 20, 20, 204684; CHECK-NEXT:    b .LBB3_684685; CHECK-NEXT:  .LBB3_67: # %cmpxchg.success264686; CHECK-NEXT:    lwsync4687; CHECK-NEXT:    creqv 20, 20, 204688; CHECK-NEXT:  .LBB3_68: # %cmpxchg.end234689; CHECK-NEXT:    li 6, 04690; CHECK-NEXT:    li 7, 14691; CHECK-NEXT:    isel 6, 7, 6, 204692; CHECK-NEXT:    lbz 7, sc@toc@l(4)4693; CHECK-NEXT:    stw 6, ui@toc@l(5)4694; CHECK-NEXT:    lbz 6, uc@toc@l(3)4695; CHECK-NEXT:    ldarx 8, 0, 124696; CHECK-NEXT:    cmpld 8, 64697; CHECK-NEXT:    bne- 0, .LBB3_724698; CHECK-NEXT:  # %bb.69: # %cmpxchg.fencedstore104699; CHECK-NEXT:    extsb 7, 74700; CHECK-NEXT:    sync4701; CHECK-NEXT:  .LBB3_70: # %cmpxchg.trystore94702; CHECK-NEXT:    #4703; CHECK-NEXT:    stdcx. 7, 0, 124704; CHECK-NEXT:    beq+ 0, .LBB3_734705; CHECK-NEXT:  # %bb.71: # %cmpxchg.releasedload84706; CHECK-NEXT:    #4707; CHECK-NEXT:    ldarx 8, 0, 124708; CHECK-NEXT:    cmpld 8, 64709; CHECK-NEXT:    beq+ 0, .LBB3_704710; CHECK-NEXT:  .LBB3_72: # %cmpxchg.nostore64711; CHECK-NEXT:    lwsync4712; CHECK-NEXT:    crxor 20, 20, 204713; CHECK-NEXT:    b .LBB3_744714; CHECK-NEXT:  .LBB3_73: # %cmpxchg.success74715; CHECK-NEXT:    lwsync4716; CHECK-NEXT:    creqv 20, 20, 204717; CHECK-NEXT:  .LBB3_74: # %cmpxchg.end44718; CHECK-NEXT:    li 6, 04719; CHECK-NEXT:    li 7, 14720; CHECK-NEXT:    lbz 3, uc@toc@l(3)4721; CHECK-NEXT:    lbz 4, sc@toc@l(4)4722; CHECK-NEXT:    isel 6, 7, 6, 204723; CHECK-NEXT:    stw 6, ui@toc@l(5)4724; CHECK-NEXT:    ldarx 6, 0, 04725; CHECK-NEXT:    cmpld 6, 34726; CHECK-NEXT:    bne- 0, .LBB3_784727; CHECK-NEXT:  # %bb.75: # %cmpxchg.fencedstore4728; CHECK-NEXT:    extsb 4, 44729; CHECK-NEXT:    sync4730; CHECK-NEXT:  .LBB3_76: # %cmpxchg.trystore4731; CHECK-NEXT:    #4732; CHECK-NEXT:    stdcx. 4, 0, 04733; CHECK-NEXT:    beq+ 0, .LBB3_794734; CHECK-NEXT:  # %bb.77: # %cmpxchg.releasedload4735; CHECK-NEXT:    #4736; CHECK-NEXT:    ldarx 6, 0, 04737; CHECK-NEXT:    cmpld 6, 34738; CHECK-NEXT:    beq+ 0, .LBB3_764739; CHECK-NEXT:  .LBB3_78: # %cmpxchg.nostore4740; CHECK-NEXT:    lwsync4741; CHECK-NEXT:    crxor 20, 20, 204742; CHECK-NEXT:    b .LBB3_804743; CHECK-NEXT:  .LBB3_79: # %cmpxchg.success4744; CHECK-NEXT:    lwsync4745; CHECK-NEXT:    creqv 20, 20, 204746; CHECK-NEXT:  .LBB3_80: # %cmpxchg.end4747; CHECK-NEXT:    li 3, 04748; CHECK-NEXT:    li 4, 14749; CHECK-NEXT:    ld 30, -16(1) # 8-byte Folded Reload4750; CHECK-NEXT:    ld 29, -24(1) # 8-byte Folded Reload4751; CHECK-NEXT:    ld 28, -32(1) # 8-byte Folded Reload4752; CHECK-NEXT:    ld 27, -40(1) # 8-byte Folded Reload4753; CHECK-NEXT:    isel 3, 4, 3, 204754; CHECK-NEXT:    stw 3, ui@toc@l(5)4755; CHECK-NEXT:    blr4756;4757; AIX32-LABEL: test_compare_and_swap:4758; AIX32:       # %bb.0: # %entry4759; AIX32-NEXT:    mflr 04760; AIX32-NEXT:    stwu 1, -144(1)4761; AIX32-NEXT:    stw 0, 152(1)4762; AIX32-NEXT:    stw 29, 132(1) # 4-byte Folded Spill4763; AIX32-NEXT:    lwz 29, L..C0(2) # @sc4764; AIX32-NEXT:    stw 26, 120(1) # 4-byte Folded Spill4765; AIX32-NEXT:    not 3, 294766; AIX32-NEXT:    stw 30, 136(1) # 4-byte Folded Spill4767; AIX32-NEXT:    lwz 30, L..C1(2) # @uc4768; AIX32-NEXT:    lbz 4, 0(30)4769; AIX32-NEXT:    lbz 5, 0(29)4770; AIX32-NEXT:    stw 27, 124(1) # 4-byte Folded Spill4771; AIX32-NEXT:    rlwinm 27, 29, 0, 0, 294772; AIX32-NEXT:    stw 14, 72(1) # 4-byte Folded Spill4773; AIX32-NEXT:    stw 15, 76(1) # 4-byte Folded Spill4774; AIX32-NEXT:    rlwinm 26, 3, 3, 27, 284775; AIX32-NEXT:    li 3, 2554776; AIX32-NEXT:    slw 3, 3, 264777; AIX32-NEXT:    stw 16, 80(1) # 4-byte Folded Spill4778; AIX32-NEXT:    stw 17, 84(1) # 4-byte Folded Spill4779; AIX32-NEXT:    stw 18, 88(1) # 4-byte Folded Spill4780; AIX32-NEXT:    stw 19, 92(1) # 4-byte Folded Spill4781; AIX32-NEXT:    stw 20, 96(1) # 4-byte Folded Spill4782; AIX32-NEXT:    stw 21, 100(1) # 4-byte Folded Spill4783; AIX32-NEXT:    stw 22, 104(1) # 4-byte Folded Spill4784; AIX32-NEXT:    stw 23, 108(1) # 4-byte Folded Spill4785; AIX32-NEXT:    stw 24, 112(1) # 4-byte Folded Spill4786; AIX32-NEXT:    stw 25, 116(1) # 4-byte Folded Spill4787; AIX32-NEXT:    stw 28, 128(1) # 4-byte Folded Spill4788; AIX32-NEXT:    stw 31, 140(1) # 4-byte Folded Spill4789; AIX32-NEXT:    not 25, 34790; AIX32-NEXT:    lwarx 3, 0, 274791; AIX32-NEXT:    srw 6, 3, 264792; AIX32-NEXT:    clrlwi 6, 6, 244793; AIX32-NEXT:    cmplw 6, 44794; AIX32-NEXT:    bne- 0, L..BB3_44795; AIX32-NEXT:  # %bb.1: # %cmpxchg.fencedstore2894796; AIX32-NEXT:    sync4797; AIX32-NEXT:    slw 5, 5, 264798; AIX32-NEXT:  L..BB3_2: # %cmpxchg.trystore2884799; AIX32-NEXT:    #4800; AIX32-NEXT:    and 6, 3, 254801; AIX32-NEXT:    or 6, 6, 54802; AIX32-NEXT:    stwcx. 6, 0, 274803; AIX32-NEXT:    beq+ 0, L..BB3_44804; AIX32-NEXT:  # %bb.3: # %cmpxchg.releasedload2874805; AIX32-NEXT:    #4806; AIX32-NEXT:    lwarx 3, 0, 274807; AIX32-NEXT:    srw 6, 3, 264808; AIX32-NEXT:    clrlwi 6, 6, 244809; AIX32-NEXT:    cmplw 6, 44810; AIX32-NEXT:    beq+ 0, L..BB3_24811; AIX32-NEXT:  L..BB3_4: # %cmpxchg.nostore2854812; AIX32-NEXT:    not 4, 304813; AIX32-NEXT:    srw 5, 3, 264814; AIX32-NEXT:    lwsync4815; AIX32-NEXT:    lbz 3, 0(30)4816; AIX32-NEXT:    rlwinm 24, 30, 0, 0, 294817; AIX32-NEXT:    rlwinm 23, 4, 3, 27, 284818; AIX32-NEXT:    li 4, 2554819; AIX32-NEXT:    stb 5, 0(29)4820; AIX32-NEXT:    slw 4, 4, 234821; AIX32-NEXT:    not 22, 44822; AIX32-NEXT:    lwarx 4, 0, 244823; AIX32-NEXT:    srw 6, 4, 234824; AIX32-NEXT:    clrlwi 6, 6, 244825; AIX32-NEXT:    cmplw 6, 34826; AIX32-NEXT:    bne- 0, L..BB3_84827; AIX32-NEXT:  # %bb.5: # %cmpxchg.fencedstore2564828; AIX32-NEXT:    clrlwi 5, 5, 244829; AIX32-NEXT:    sync4830; AIX32-NEXT:    slw 5, 5, 234831; AIX32-NEXT:  L..BB3_6: # %cmpxchg.trystore2554832; AIX32-NEXT:    #4833; AIX32-NEXT:    and 6, 4, 224834; AIX32-NEXT:    or 6, 6, 54835; AIX32-NEXT:    stwcx. 6, 0, 244836; AIX32-NEXT:    beq+ 0, L..BB3_84837; AIX32-NEXT:  # %bb.7: # %cmpxchg.releasedload2544838; AIX32-NEXT:    #4839; AIX32-NEXT:    lwarx 4, 0, 244840; AIX32-NEXT:    srw 6, 4, 234841; AIX32-NEXT:    clrlwi 6, 6, 244842; AIX32-NEXT:    cmplw 6, 34843; AIX32-NEXT:    beq+ 0, L..BB3_64844; AIX32-NEXT:  L..BB3_8: # %cmpxchg.nostore2524845; AIX32-NEXT:    srw 4, 4, 234846; AIX32-NEXT:    lwsync4847; AIX32-NEXT:    lis 3, 04848; AIX32-NEXT:    lbz 7, 0(29)4849; AIX32-NEXT:    stb 4, 0(30)4850; AIX32-NEXT:    clrlwi 6, 4, 244851; AIX32-NEXT:    lwz 4, L..C2(2) # @ss4852; AIX32-NEXT:    ori 3, 3, 655354853; AIX32-NEXT:    clrlwi 5, 4, 304854; AIX32-NEXT:    rlwinm 21, 4, 0, 0, 294855; AIX32-NEXT:    xori 5, 5, 24856; AIX32-NEXT:    slwi 20, 5, 34857; AIX32-NEXT:    slw 5, 3, 204858; AIX32-NEXT:    not 19, 54859; AIX32-NEXT:    lwarx 5, 0, 214860; AIX32-NEXT:    srw 8, 5, 204861; AIX32-NEXT:    clrlwi 8, 8, 164862; AIX32-NEXT:    cmplw 8, 64863; AIX32-NEXT:    bne- 0, L..BB3_124864; AIX32-NEXT:  # %bb.9: # %cmpxchg.fencedstore2234865; AIX32-NEXT:    extsb 7, 74866; AIX32-NEXT:    sync4867; AIX32-NEXT:    clrlwi 7, 7, 164868; AIX32-NEXT:    slw 7, 7, 204869; AIX32-NEXT:  L..BB3_10: # %cmpxchg.trystore2224870; AIX32-NEXT:    #4871; AIX32-NEXT:    and 8, 5, 194872; AIX32-NEXT:    or 8, 8, 74873; AIX32-NEXT:    stwcx. 8, 0, 214874; AIX32-NEXT:    beq+ 0, L..BB3_124875; AIX32-NEXT:  # %bb.11: # %cmpxchg.releasedload2214876; AIX32-NEXT:    #4877; AIX32-NEXT:    lwarx 5, 0, 214878; AIX32-NEXT:    srw 8, 5, 204879; AIX32-NEXT:    clrlwi 8, 8, 164880; AIX32-NEXT:    cmplw 8, 64881; AIX32-NEXT:    beq+ 0, L..BB3_104882; AIX32-NEXT:  L..BB3_12: # %cmpxchg.nostore2194883; AIX32-NEXT:    srw 5, 5, 204884; AIX32-NEXT:    lwsync4885; AIX32-NEXT:    lbz 6, 0(29)4886; AIX32-NEXT:    sth 5, 0(4)4887; AIX32-NEXT:    lwz 4, L..C3(2) # @us4888; AIX32-NEXT:    lbz 5, 0(30)4889; AIX32-NEXT:    clrlwi 7, 4, 304890; AIX32-NEXT:    rlwinm 18, 4, 0, 0, 294891; AIX32-NEXT:    xori 7, 7, 24892; AIX32-NEXT:    slwi 17, 7, 34893; AIX32-NEXT:    slw 3, 3, 174894; AIX32-NEXT:    not 16, 34895; AIX32-NEXT:    lwarx 3, 0, 184896; AIX32-NEXT:    srw 7, 3, 174897; AIX32-NEXT:    clrlwi 7, 7, 164898; AIX32-NEXT:    cmplw 7, 54899; AIX32-NEXT:    bne- 0, L..BB3_164900; AIX32-NEXT:  # %bb.13: # %cmpxchg.fencedstore1904901; AIX32-NEXT:    extsb 6, 64902; AIX32-NEXT:    sync4903; AIX32-NEXT:    clrlwi 6, 6, 164904; AIX32-NEXT:    slw 6, 6, 174905; AIX32-NEXT:  L..BB3_14: # %cmpxchg.trystore1894906; AIX32-NEXT:    #4907; AIX32-NEXT:    and 7, 3, 164908; AIX32-NEXT:    or 7, 7, 64909; AIX32-NEXT:    stwcx. 7, 0, 184910; AIX32-NEXT:    beq+ 0, L..BB3_164911; AIX32-NEXT:  # %bb.15: # %cmpxchg.releasedload1884912; AIX32-NEXT:    #4913; AIX32-NEXT:    lwarx 3, 0, 184914; AIX32-NEXT:    srw 7, 3, 174915; AIX32-NEXT:    clrlwi 7, 7, 164916; AIX32-NEXT:    cmplw 7, 54917; AIX32-NEXT:    beq+ 0, L..BB3_144918; AIX32-NEXT:  L..BB3_16: # %cmpxchg.nostore1864919; AIX32-NEXT:    srw 3, 3, 174920; AIX32-NEXT:    lwsync4921; AIX32-NEXT:    lwz 15, L..C4(2) # @si4922; AIX32-NEXT:    lbz 5, 0(29)4923; AIX32-NEXT:    sth 3, 0(4)4924; AIX32-NEXT:    lbz 4, 0(30)4925; AIX32-NEXT:    lwarx 3, 0, 154926; AIX32-NEXT:    cmplw 3, 44927; AIX32-NEXT:    bne- 0, L..BB3_204928; AIX32-NEXT:  # %bb.17: # %cmpxchg.fencedstore1714929; AIX32-NEXT:    extsb 5, 54930; AIX32-NEXT:    sync4931; AIX32-NEXT:  L..BB3_18: # %cmpxchg.trystore1704932; AIX32-NEXT:    #4933; AIX32-NEXT:    stwcx. 5, 0, 154934; AIX32-NEXT:    beq+ 0, L..BB3_204935; AIX32-NEXT:  # %bb.19: # %cmpxchg.releasedload1694936; AIX32-NEXT:    #4937; AIX32-NEXT:    lwarx 3, 0, 154938; AIX32-NEXT:    cmplw 3, 44939; AIX32-NEXT:    beq+ 0, L..BB3_184940; AIX32-NEXT:  L..BB3_20: # %cmpxchg.nostore1674941; AIX32-NEXT:    lwsync4942; AIX32-NEXT:    lwz 28, L..C5(2) # @ui4943; AIX32-NEXT:    stw 3, 0(15)4944; AIX32-NEXT:    lbz 4, 0(30)4945; AIX32-NEXT:    lbz 5, 0(29)4946; AIX32-NEXT:    lwarx 3, 0, 284947; AIX32-NEXT:    cmplw 3, 44948; AIX32-NEXT:    bne- 0, L..BB3_244949; AIX32-NEXT:  # %bb.21: # %cmpxchg.fencedstore1524950; AIX32-NEXT:    extsb 5, 54951; AIX32-NEXT:    sync4952; AIX32-NEXT:  L..BB3_22: # %cmpxchg.trystore1514953; AIX32-NEXT:    #4954; AIX32-NEXT:    stwcx. 5, 0, 284955; AIX32-NEXT:    beq+ 0, L..BB3_244956; AIX32-NEXT:  # %bb.23: # %cmpxchg.releasedload1504957; AIX32-NEXT:    #4958; AIX32-NEXT:    lwarx 3, 0, 284959; AIX32-NEXT:    cmplw 3, 44960; AIX32-NEXT:    beq+ 0, L..BB3_224961; AIX32-NEXT:  L..BB3_24: # %cmpxchg.nostore1484962; AIX32-NEXT:    lwsync4963; AIX32-NEXT:    stw 3, 0(28)4964; AIX32-NEXT:    lwz 31, L..C6(2) # @sll4965; AIX32-NEXT:    lbz 3, 0(29)4966; AIX32-NEXT:    li 14, 04967; AIX32-NEXT:    addi 4, 1, 644968; AIX32-NEXT:    li 7, 54969; AIX32-NEXT:    li 8, 54970; AIX32-NEXT:    stw 14, 64(1)4971; AIX32-NEXT:    extsb 6, 34972; AIX32-NEXT:    lbz 3, 0(30)4973; AIX32-NEXT:    srawi 5, 6, 314974; AIX32-NEXT:    stw 3, 68(1)4975; AIX32-NEXT:    mr 3, 314976; AIX32-NEXT:    bl .__atomic_compare_exchange_8[PR]4977; AIX32-NEXT:    nop4978; AIX32-NEXT:    lwz 3, 68(1)4979; AIX32-NEXT:    lbz 4, 0(29)4980; AIX32-NEXT:    li 7, 54981; AIX32-NEXT:    li 8, 54982; AIX32-NEXT:    stw 3, 4(31)4983; AIX32-NEXT:    lwz 3, 64(1)4984; AIX32-NEXT:    extsb 6, 44985; AIX32-NEXT:    addi 4, 1, 644986; AIX32-NEXT:    stw 14, 64(1)4987; AIX32-NEXT:    srawi 5, 6, 314988; AIX32-NEXT:    stw 3, 0(31)4989; AIX32-NEXT:    lbz 3, 0(30)4990; AIX32-NEXT:    lwz 31, L..C7(2) # @ull4991; AIX32-NEXT:    stw 3, 68(1)4992; AIX32-NEXT:    mr 3, 314993; AIX32-NEXT:    bl .__atomic_compare_exchange_8[PR]4994; AIX32-NEXT:    nop4995; AIX32-NEXT:    lwz 3, 64(1)4996; AIX32-NEXT:    lwz 4, 68(1)4997; AIX32-NEXT:    lbz 5, 0(29)4998; AIX32-NEXT:    stw 4, 4(31)4999; AIX32-NEXT:    stw 3, 0(31)5000; AIX32-NEXT:    lbz 3, 0(30)5001; AIX32-NEXT:    lwarx 4, 0, 275002; AIX32-NEXT:    srw 6, 4, 265003; AIX32-NEXT:    clrlwi 6, 6, 245004; AIX32-NEXT:    cmplw 6, 35005; AIX32-NEXT:    bne- 0, L..BB3_285006; AIX32-NEXT:  # %bb.25: # %cmpxchg.fencedstore1195007; AIX32-NEXT:    sync5008; AIX32-NEXT:    slw 5, 5, 265009; AIX32-NEXT:  L..BB3_26: # %cmpxchg.trystore1185010; AIX32-NEXT:    #5011; AIX32-NEXT:    and 4, 4, 255012; AIX32-NEXT:    or 4, 4, 55013; AIX32-NEXT:    stwcx. 4, 0, 275014; AIX32-NEXT:    beq+ 0, L..BB3_295015; AIX32-NEXT:  # %bb.27: # %cmpxchg.releasedload1175016; AIX32-NEXT:    #5017; AIX32-NEXT:    lwarx 4, 0, 275018; AIX32-NEXT:    srw 6, 4, 265019; AIX32-NEXT:    clrlwi 6, 6, 245020; AIX32-NEXT:    cmplw 6, 35021; AIX32-NEXT:    beq+ 0, L..BB3_265022; AIX32-NEXT:  L..BB3_28: # %cmpxchg.nostore1155023; AIX32-NEXT:    crxor 20, 20, 205024; AIX32-NEXT:    lwsync5025; AIX32-NEXT:    b L..BB3_305026; AIX32-NEXT:  L..BB3_29: # %cmpxchg.success1165027; AIX32-NEXT:    lwsync5028; AIX32-NEXT:    creqv 20, 20, 205029; AIX32-NEXT:  L..BB3_30: # %cmpxchg.end1135030; AIX32-NEXT:    li 3, 05031; AIX32-NEXT:    li 4, 15032; AIX32-NEXT:    lbz 5, 0(29)5033; AIX32-NEXT:    isel 3, 4, 3, 205034; AIX32-NEXT:    stw 3, 0(28)5035; AIX32-NEXT:    lbz 3, 0(30)5036; AIX32-NEXT:    lwarx 4, 0, 245037; AIX32-NEXT:    srw 6, 4, 235038; AIX32-NEXT:    clrlwi 6, 6, 245039; AIX32-NEXT:    cmplw 6, 35040; AIX32-NEXT:    bne- 0, L..BB3_345041; AIX32-NEXT:  # %bb.31: # %cmpxchg.fencedstore865042; AIX32-NEXT:    sync5043; AIX32-NEXT:    slw 5, 5, 235044; AIX32-NEXT:  L..BB3_32: # %cmpxchg.trystore855045; AIX32-NEXT:    #5046; AIX32-NEXT:    and 4, 4, 225047; AIX32-NEXT:    or 4, 4, 55048; AIX32-NEXT:    stwcx. 4, 0, 245049; AIX32-NEXT:    beq+ 0, L..BB3_355050; AIX32-NEXT:  # %bb.33: # %cmpxchg.releasedload845051; AIX32-NEXT:    #5052; AIX32-NEXT:    lwarx 4, 0, 245053; AIX32-NEXT:    srw 6, 4, 235054; AIX32-NEXT:    clrlwi 6, 6, 245055; AIX32-NEXT:    cmplw 6, 35056; AIX32-NEXT:    beq+ 0, L..BB3_325057; AIX32-NEXT:  L..BB3_34: # %cmpxchg.nostore825058; AIX32-NEXT:    crxor 20, 20, 205059; AIX32-NEXT:    lwsync5060; AIX32-NEXT:    b L..BB3_365061; AIX32-NEXT:  L..BB3_35: # %cmpxchg.success835062; AIX32-NEXT:    lwsync5063; AIX32-NEXT:    creqv 20, 20, 205064; AIX32-NEXT:  L..BB3_36: # %cmpxchg.end805065; AIX32-NEXT:    li 3, 05066; AIX32-NEXT:    li 4, 15067; AIX32-NEXT:    lbz 5, 0(29)5068; AIX32-NEXT:    isel 3, 4, 3, 205069; AIX32-NEXT:    stw 3, 0(28)5070; AIX32-NEXT:    lbz 3, 0(30)5071; AIX32-NEXT:    lwarx 4, 0, 215072; AIX32-NEXT:    srw 6, 4, 205073; AIX32-NEXT:    clrlwi 6, 6, 165074; AIX32-NEXT:    cmplw 6, 35075; AIX32-NEXT:    bne- 0, L..BB3_405076; AIX32-NEXT:  # %bb.37: # %cmpxchg.fencedstore535077; AIX32-NEXT:    extsb 5, 55078; AIX32-NEXT:    sync5079; AIX32-NEXT:    clrlwi 5, 5, 165080; AIX32-NEXT:    slw 5, 5, 205081; AIX32-NEXT:  L..BB3_38: # %cmpxchg.trystore525082; AIX32-NEXT:    #5083; AIX32-NEXT:    and 4, 4, 195084; AIX32-NEXT:    or 4, 4, 55085; AIX32-NEXT:    stwcx. 4, 0, 215086; AIX32-NEXT:    beq+ 0, L..BB3_415087; AIX32-NEXT:  # %bb.39: # %cmpxchg.releasedload515088; AIX32-NEXT:    #5089; AIX32-NEXT:    lwarx 4, 0, 215090; AIX32-NEXT:    srw 6, 4, 205091; AIX32-NEXT:    clrlwi 6, 6, 165092; AIX32-NEXT:    cmplw 6, 35093; AIX32-NEXT:    beq+ 0, L..BB3_385094; AIX32-NEXT:  L..BB3_40: # %cmpxchg.nostore495095; AIX32-NEXT:    crxor 20, 20, 205096; AIX32-NEXT:    lwsync5097; AIX32-NEXT:    b L..BB3_425098; AIX32-NEXT:  L..BB3_41: # %cmpxchg.success505099; AIX32-NEXT:    lwsync5100; AIX32-NEXT:    creqv 20, 20, 205101; AIX32-NEXT:  L..BB3_42: # %cmpxchg.end475102; AIX32-NEXT:    li 3, 05103; AIX32-NEXT:    li 4, 15104; AIX32-NEXT:    lbz 5, 0(29)5105; AIX32-NEXT:    isel 3, 4, 3, 205106; AIX32-NEXT:    stw 3, 0(28)5107; AIX32-NEXT:    lbz 3, 0(30)5108; AIX32-NEXT:    lwarx 4, 0, 185109; AIX32-NEXT:    srw 6, 4, 175110; AIX32-NEXT:    clrlwi 6, 6, 165111; AIX32-NEXT:    cmplw 6, 35112; AIX32-NEXT:    bne- 0, L..BB3_465113; AIX32-NEXT:  # %bb.43: # %cmpxchg.fencedstore295114; AIX32-NEXT:    extsb 5, 55115; AIX32-NEXT:    sync5116; AIX32-NEXT:    clrlwi 5, 5, 165117; AIX32-NEXT:    slw 5, 5, 175118; AIX32-NEXT:  L..BB3_44: # %cmpxchg.trystore285119; AIX32-NEXT:    #5120; AIX32-NEXT:    and 4, 4, 165121; AIX32-NEXT:    or 4, 4, 55122; AIX32-NEXT:    stwcx. 4, 0, 185123; AIX32-NEXT:    beq+ 0, L..BB3_475124; AIX32-NEXT:  # %bb.45: # %cmpxchg.releasedload275125; AIX32-NEXT:    #5126; AIX32-NEXT:    lwarx 4, 0, 185127; AIX32-NEXT:    srw 6, 4, 175128; AIX32-NEXT:    clrlwi 6, 6, 165129; AIX32-NEXT:    cmplw 6, 35130; AIX32-NEXT:    beq+ 0, L..BB3_445131; AIX32-NEXT:  L..BB3_46: # %cmpxchg.nostore255132; AIX32-NEXT:    crxor 20, 20, 205133; AIX32-NEXT:    lwsync5134; AIX32-NEXT:    b L..BB3_485135; AIX32-NEXT:  L..BB3_47: # %cmpxchg.success265136; AIX32-NEXT:    lwsync5137; AIX32-NEXT:    creqv 20, 20, 205138; AIX32-NEXT:  L..BB3_48: # %cmpxchg.end235139; AIX32-NEXT:    li 3, 05140; AIX32-NEXT:    li 4, 15141; AIX32-NEXT:    isel 3, 4, 3, 205142; AIX32-NEXT:    lbz 4, 0(29)5143; AIX32-NEXT:    stw 3, 0(28)5144; AIX32-NEXT:    lbz 3, 0(30)5145; AIX32-NEXT:    lwarx 5, 0, 155146; AIX32-NEXT:    cmplw 5, 35147; AIX32-NEXT:    bne- 0, L..BB3_525148; AIX32-NEXT:  # %bb.49: # %cmpxchg.fencedstore105149; AIX32-NEXT:    extsb 4, 45150; AIX32-NEXT:    sync5151; AIX32-NEXT:  L..BB3_50: # %cmpxchg.trystore95152; AIX32-NEXT:    #5153; AIX32-NEXT:    stwcx. 4, 0, 155154; AIX32-NEXT:    beq+ 0, L..BB3_535155; AIX32-NEXT:  # %bb.51: # %cmpxchg.releasedload85156; AIX32-NEXT:    #5157; AIX32-NEXT:    lwarx 5, 0, 155158; AIX32-NEXT:    cmplw 5, 35159; AIX32-NEXT:    beq+ 0, L..BB3_505160; AIX32-NEXT:  L..BB3_52: # %cmpxchg.nostore65161; AIX32-NEXT:    crxor 20, 20, 205162; AIX32-NEXT:    lwsync5163; AIX32-NEXT:    b L..BB3_545164; AIX32-NEXT:  L..BB3_53: # %cmpxchg.success75165; AIX32-NEXT:    lwsync5166; AIX32-NEXT:    creqv 20, 20, 205167; AIX32-NEXT:  L..BB3_54: # %cmpxchg.end45168; AIX32-NEXT:    li 3, 05169; AIX32-NEXT:    li 4, 15170; AIX32-NEXT:    isel 3, 4, 3, 205171; AIX32-NEXT:    lbz 4, 0(29)5172; AIX32-NEXT:    stw 3, 0(28)5173; AIX32-NEXT:    lbz 3, 0(30)5174; AIX32-NEXT:    lwarx 5, 0, 285175; AIX32-NEXT:    cmplw 5, 35176; AIX32-NEXT:    bne- 0, L..BB3_585177; AIX32-NEXT:  # %bb.55: # %cmpxchg.fencedstore5178; AIX32-NEXT:    extsb 4, 45179; AIX32-NEXT:    sync5180; AIX32-NEXT:  L..BB3_56: # %cmpxchg.trystore5181; AIX32-NEXT:    #5182; AIX32-NEXT:    stwcx. 4, 0, 285183; AIX32-NEXT:    beq+ 0, L..BB3_595184; AIX32-NEXT:  # %bb.57: # %cmpxchg.releasedload5185; AIX32-NEXT:    #5186; AIX32-NEXT:    lwarx 5, 0, 285187; AIX32-NEXT:    cmplw 5, 35188; AIX32-NEXT:    beq+ 0, L..BB3_565189; AIX32-NEXT:  L..BB3_58: # %cmpxchg.nostore5190; AIX32-NEXT:    crxor 20, 20, 205191; AIX32-NEXT:    lwsync5192; AIX32-NEXT:    b L..BB3_605193; AIX32-NEXT:  L..BB3_59: # %cmpxchg.success5194; AIX32-NEXT:    lwsync5195; AIX32-NEXT:    creqv 20, 20, 205196; AIX32-NEXT:  L..BB3_60: # %cmpxchg.end5197; AIX32-NEXT:    li 3, 15198; AIX32-NEXT:    li 31, 05199; AIX32-NEXT:    lbz 4, 0(29)5200; AIX32-NEXT:    isel 3, 3, 31, 205201; AIX32-NEXT:    li 7, 55202; AIX32-NEXT:    li 8, 55203; AIX32-NEXT:    extsb 6, 45204; AIX32-NEXT:    stw 3, 0(28)5205; AIX32-NEXT:    lbz 3, 0(30)5206; AIX32-NEXT:    addi 4, 1, 645207; AIX32-NEXT:    stw 31, 64(1)5208; AIX32-NEXT:    srawi 5, 6, 315209; AIX32-NEXT:    stw 3, 68(1)5210; AIX32-NEXT:    lwz 3, L..C6(2) # @sll5211; AIX32-NEXT:    bl .__atomic_compare_exchange_8[PR]5212; AIX32-NEXT:    nop5213; AIX32-NEXT:    lbz 4, 0(29)5214; AIX32-NEXT:    stw 3, 0(28)5215; AIX32-NEXT:    lbz 3, 0(30)5216; AIX32-NEXT:    li 7, 55217; AIX32-NEXT:    li 8, 55218; AIX32-NEXT:    extsb 6, 45219; AIX32-NEXT:    stw 3, 68(1)5220; AIX32-NEXT:    lwz 3, L..C7(2) # @ull5221; AIX32-NEXT:    addi 4, 1, 645222; AIX32-NEXT:    stw 31, 64(1)5223; AIX32-NEXT:    srawi 5, 6, 315224; AIX32-NEXT:    bl .__atomic_compare_exchange_8[PR]5225; AIX32-NEXT:    nop5226; AIX32-NEXT:    stw 3, 0(28)5227; AIX32-NEXT:    lwz 31, 140(1) # 4-byte Folded Reload5228; AIX32-NEXT:    lwz 30, 136(1) # 4-byte Folded Reload5229; AIX32-NEXT:    lwz 29, 132(1) # 4-byte Folded Reload5230; AIX32-NEXT:    lwz 28, 128(1) # 4-byte Folded Reload5231; AIX32-NEXT:    lwz 27, 124(1) # 4-byte Folded Reload5232; AIX32-NEXT:    lwz 26, 120(1) # 4-byte Folded Reload5233; AIX32-NEXT:    lwz 25, 116(1) # 4-byte Folded Reload5234; AIX32-NEXT:    lwz 24, 112(1) # 4-byte Folded Reload5235; AIX32-NEXT:    lwz 23, 108(1) # 4-byte Folded Reload5236; AIX32-NEXT:    lwz 22, 104(1) # 4-byte Folded Reload5237; AIX32-NEXT:    lwz 21, 100(1) # 4-byte Folded Reload5238; AIX32-NEXT:    lwz 20, 96(1) # 4-byte Folded Reload5239; AIX32-NEXT:    lwz 19, 92(1) # 4-byte Folded Reload5240; AIX32-NEXT:    lwz 18, 88(1) # 4-byte Folded Reload5241; AIX32-NEXT:    lwz 17, 84(1) # 4-byte Folded Reload5242; AIX32-NEXT:    lwz 16, 80(1) # 4-byte Folded Reload5243; AIX32-NEXT:    lwz 15, 76(1) # 4-byte Folded Reload5244; AIX32-NEXT:    lwz 14, 72(1) # 4-byte Folded Reload5245; AIX32-NEXT:    addi 1, 1, 1445246; AIX32-NEXT:    lwz 0, 8(1)5247; AIX32-NEXT:    mtlr 05248; AIX32-NEXT:    blr5249entry:5250  %0 = load i8, ptr @uc, align 15251  %1 = load i8, ptr @sc, align 15252  %2 = cmpxchg ptr @sc, i8 %0, i8 %1 seq_cst seq_cst, align 15253  %3 = extractvalue { i8, i1 } %2, 05254  store i8 %3, ptr @sc, align 15255  %4 = load i8, ptr @uc, align 15256  %5 = cmpxchg ptr @uc, i8 %4, i8 %3 seq_cst seq_cst, align 15257  %6 = extractvalue { i8, i1 } %5, 05258  store i8 %6, ptr @uc, align 15259  %conv = zext i8 %6 to i165260  %7 = load i8, ptr @sc, align 15261  %conv1 = sext i8 %7 to i165262  %8 = cmpxchg ptr @ss, i16 %conv, i16 %conv1 seq_cst seq_cst, align 25263  %9 = extractvalue { i16, i1 } %8, 05264  store i16 %9, ptr @ss, align 25265  %10 = load i8, ptr @uc, align 15266  %conv2 = zext i8 %10 to i165267  %11 = load i8, ptr @sc, align 15268  %conv3 = sext i8 %11 to i165269  %12 = cmpxchg ptr @us, i16 %conv2, i16 %conv3 seq_cst seq_cst, align 25270  %13 = extractvalue { i16, i1 } %12, 05271  store i16 %13, ptr @us, align 25272  %14 = load i8, ptr @uc, align 15273  %conv4 = zext i8 %14 to i325274  %15 = load i8, ptr @sc, align 15275  %conv5 = sext i8 %15 to i325276  %16 = cmpxchg ptr @si, i32 %conv4, i32 %conv5 seq_cst seq_cst, align 45277  %17 = extractvalue { i32, i1 } %16, 05278  store i32 %17, ptr @si, align 45279  %18 = load i8, ptr @uc, align 15280  %conv6 = zext i8 %18 to i325281  %19 = load i8, ptr @sc, align 15282  %conv7 = sext i8 %19 to i325283  %20 = cmpxchg ptr @ui, i32 %conv6, i32 %conv7 seq_cst seq_cst, align 45284  %21 = extractvalue { i32, i1 } %20, 05285  store i32 %21, ptr @ui, align 45286  %22 = load i8, ptr @uc, align 15287  %conv8 = zext i8 %22 to i645288  %23 = load i8, ptr @sc, align 15289  %conv9 = sext i8 %23 to i645290  %24 = cmpxchg ptr @sll, i64 %conv8, i64 %conv9 seq_cst seq_cst, align 85291  %25 = extractvalue { i64, i1 } %24, 05292  store i64 %25, ptr @sll, align 85293  %26 = load i8, ptr @uc, align 15294  %conv10 = zext i8 %26 to i645295  %27 = load i8, ptr @sc, align 15296  %conv11 = sext i8 %27 to i645297  %28 = cmpxchg ptr @ull, i64 %conv10, i64 %conv11 seq_cst seq_cst, align 85298  %29 = extractvalue { i64, i1 } %28, 05299  store i64 %29, ptr @ull, align 85300  %30 = load i8, ptr @uc, align 15301  %31 = load i8, ptr @sc, align 15302  %32 = cmpxchg ptr @sc, i8 %30, i8 %31 seq_cst seq_cst, align 15303  %33 = extractvalue { i8, i1 } %32, 15304  %conv12 = zext i1 %33 to i325305  store i32 %conv12, ptr @ui, align 45306  %34 = load i8, ptr @uc, align 15307  %35 = load i8, ptr @sc, align 15308  %36 = cmpxchg ptr @uc, i8 %34, i8 %35 seq_cst seq_cst, align 15309  %37 = extractvalue { i8, i1 } %36, 15310  %conv13 = zext i1 %37 to i325311  store i32 %conv13, ptr @ui, align 45312  %38 = load i8, ptr @uc, align 15313  %conv14 = zext i8 %38 to i165314  %39 = load i8, ptr @sc, align 15315  %conv15 = sext i8 %39 to i165316  %40 = cmpxchg ptr @ss, i16 %conv14, i16 %conv15 seq_cst seq_cst, align 25317  %41 = extractvalue { i16, i1 } %40, 15318  %conv16 = zext i1 %41 to i325319  store i32 %conv16, ptr @ui, align 45320  %42 = load i8, ptr @uc, align 15321  %conv17 = zext i8 %42 to i165322  %43 = load i8, ptr @sc, align 15323  %conv18 = sext i8 %43 to i165324  %44 = cmpxchg ptr @us, i16 %conv17, i16 %conv18 seq_cst seq_cst, align 25325  %45 = extractvalue { i16, i1 } %44, 15326  %conv19 = zext i1 %45 to i325327  store i32 %conv19, ptr @ui, align 45328  %46 = load i8, ptr @uc, align 15329  %conv20 = zext i8 %46 to i325330  %47 = load i8, ptr @sc, align 15331  %conv21 = sext i8 %47 to i325332  %48 = cmpxchg ptr @si, i32 %conv20, i32 %conv21 seq_cst seq_cst, align 45333  %49 = extractvalue { i32, i1 } %48, 15334  %conv22 = zext i1 %49 to i325335  store i32 %conv22, ptr @ui, align 45336  %50 = load i8, ptr @uc, align 15337  %conv23 = zext i8 %50 to i325338  %51 = load i8, ptr @sc, align 15339  %conv24 = sext i8 %51 to i325340  %52 = cmpxchg ptr @ui, i32 %conv23, i32 %conv24 seq_cst seq_cst, align 45341  %53 = extractvalue { i32, i1 } %52, 15342  %conv25 = zext i1 %53 to i325343  store i32 %conv25, ptr @ui, align 45344  %54 = load i8, ptr @uc, align 15345  %conv26 = zext i8 %54 to i645346  %55 = load i8, ptr @sc, align 15347  %conv27 = sext i8 %55 to i645348  %56 = cmpxchg ptr @sll, i64 %conv26, i64 %conv27 seq_cst seq_cst, align 85349  %57 = extractvalue { i64, i1 } %56, 15350  %conv28 = zext i1 %57 to i325351  store i32 %conv28, ptr @ui, align 45352  %58 = load i8, ptr @uc, align 15353  %conv29 = zext i8 %58 to i645354  %59 = load i8, ptr @sc, align 15355  %conv30 = sext i8 %59 to i645356  %60 = cmpxchg ptr @ull, i64 %conv29, i64 %conv30 seq_cst seq_cst, align 85357  %61 = extractvalue { i64, i1 } %60, 15358  %conv31 = zext i1 %61 to i325359  store i32 %conv31, ptr @ui, align 45360  ret void5361}5362 5363define dso_local void @test_lock() local_unnamed_addr #0 {5364; CHECK-LABEL: test_lock:5365; CHECK:       # %bb.0: # %entry5366; CHECK-NEXT:    addis 3, 2, sc@toc@ha5367; CHECK-NEXT:    sync5368; CHECK-NEXT:    li 7, 15369; CHECK-NEXT:    addi 4, 3, sc@toc@l5370; CHECK-NEXT:  .LBB4_1: # %entry5371; CHECK-NEXT:    #5372; CHECK-NEXT:    lbarx 5, 0, 45373; CHECK-NEXT:    stbcx. 7, 0, 45374; CHECK-NEXT:    bne- 0, .LBB4_15375; CHECK-NEXT:  # %bb.2: # %entry5376; CHECK-NEXT:    addis 4, 2, uc@toc@ha5377; CHECK-NEXT:    lwsync5378; CHECK-NEXT:    stb 5, sc@toc@l(3)5379; CHECK-NEXT:    sync5380; CHECK-NEXT:    addi 6, 4, uc@toc@l5381; CHECK-NEXT:  .LBB4_3: # %entry5382; CHECK-NEXT:    #5383; CHECK-NEXT:    lbarx 5, 0, 65384; CHECK-NEXT:    stbcx. 7, 0, 65385; CHECK-NEXT:    bne- 0, .LBB4_35386; CHECK-NEXT:  # %bb.4: # %entry5387; CHECK-NEXT:    lwsync5388; CHECK-NEXT:    stb 5, uc@toc@l(4)5389; CHECK-NEXT:    addis 5, 2, ss@toc@ha5390; CHECK-NEXT:    sync5391; CHECK-NEXT:    addi 8, 5, ss@toc@l5392; CHECK-NEXT:  .LBB4_5: # %entry5393; CHECK-NEXT:    #5394; CHECK-NEXT:    lharx 6, 0, 85395; CHECK-NEXT:    sthcx. 7, 0, 85396; CHECK-NEXT:    bne- 0, .LBB4_55397; CHECK-NEXT:  # %bb.6: # %entry5398; CHECK-NEXT:    lwsync5399; CHECK-NEXT:    sth 6, ss@toc@l(5)5400; CHECK-NEXT:    addis 6, 2, us@toc@ha5401; CHECK-NEXT:    sync5402; CHECK-NEXT:    addi 9, 6, us@toc@l5403; CHECK-NEXT:  .LBB4_7: # %entry5404; CHECK-NEXT:    #5405; CHECK-NEXT:    lharx 8, 0, 95406; CHECK-NEXT:    sthcx. 7, 0, 95407; CHECK-NEXT:    bne- 0, .LBB4_75408; CHECK-NEXT:  # %bb.8: # %entry5409; CHECK-NEXT:    lwsync5410; CHECK-NEXT:    sth 8, us@toc@l(6)5411; CHECK-NEXT:    addis 8, 2, si@toc@ha5412; CHECK-NEXT:    sync5413; CHECK-NEXT:    addi 10, 8, si@toc@l5414; CHECK-NEXT:  .LBB4_9: # %entry5415; CHECK-NEXT:    #5416; CHECK-NEXT:    lwarx 9, 0, 105417; CHECK-NEXT:    stwcx. 7, 0, 105418; CHECK-NEXT:    bne- 0, .LBB4_95419; CHECK-NEXT:  # %bb.10: # %entry5420; CHECK-NEXT:    lwsync5421; CHECK-NEXT:    stw 9, si@toc@l(8)5422; CHECK-NEXT:    addis 9, 2, ui@toc@ha5423; CHECK-NEXT:    sync5424; CHECK-NEXT:    addi 11, 9, ui@toc@l5425; CHECK-NEXT:  .LBB4_11: # %entry5426; CHECK-NEXT:    #5427; CHECK-NEXT:    lwarx 10, 0, 115428; CHECK-NEXT:    stwcx. 7, 0, 115429; CHECK-NEXT:    bne- 0, .LBB4_115430; CHECK-NEXT:  # %bb.12: # %entry5431; CHECK-NEXT:    addis 7, 2, sll@toc@ha5432; CHECK-NEXT:    lwsync5433; CHECK-NEXT:    stw 10, ui@toc@l(9)5434; CHECK-NEXT:    li 11, 15435; CHECK-NEXT:    sync5436; CHECK-NEXT:    addi 10, 7, sll@toc@l5437; CHECK-NEXT:  .LBB4_13: # %entry5438; CHECK-NEXT:    #5439; CHECK-NEXT:    ldarx 12, 0, 105440; CHECK-NEXT:    stdcx. 11, 0, 105441; CHECK-NEXT:    bne- 0, .LBB4_135442; CHECK-NEXT:  # %bb.14: # %entry5443; CHECK-NEXT:    addis 10, 2, ull@toc@ha5444; CHECK-NEXT:    lwsync5445; CHECK-NEXT:    std 12, sll@toc@l(7)5446; CHECK-NEXT:    sync5447; CHECK-NEXT:    addi 0, 10, ull@toc@l5448; CHECK-NEXT:  .LBB4_15: # %entry5449; CHECK-NEXT:    #5450; CHECK-NEXT:    ldarx 12, 0, 05451; CHECK-NEXT:    stdcx. 11, 0, 05452; CHECK-NEXT:    bne- 0, .LBB4_155453; CHECK-NEXT:  # %bb.16: # %entry5454; CHECK-NEXT:    lwsync5455; CHECK-NEXT:    std 12, ull@toc@l(10)5456; CHECK-NEXT:    li 11, 05457; CHECK-NEXT:    sync5458; CHECK-NEXT:    lwsync5459; CHECK-NEXT:    stb 11, sc@toc@l(3)5460; CHECK-NEXT:    li 3, 05461; CHECK-NEXT:    lwsync5462; CHECK-NEXT:    stb 11, uc@toc@l(4)5463; CHECK-NEXT:    lwsync5464; CHECK-NEXT:    sth 11, ss@toc@l(5)5465; CHECK-NEXT:    lwsync5466; CHECK-NEXT:    sth 11, us@toc@l(6)5467; CHECK-NEXT:    lwsync5468; CHECK-NEXT:    stw 11, si@toc@l(8)5469; CHECK-NEXT:    lwsync5470; CHECK-NEXT:    stw 11, ui@toc@l(9)5471; CHECK-NEXT:    lwsync5472; CHECK-NEXT:    std 3, sll@toc@l(7)5473; CHECK-NEXT:    lwsync5474; CHECK-NEXT:    std 3, ull@toc@l(10)5475; CHECK-NEXT:    blr5476;5477; AIX32-LABEL: test_lock:5478; AIX32:       # %bb.0: # %entry5479; AIX32-NEXT:    mflr 05480; AIX32-NEXT:    stwu 1, -96(1)5481; AIX32-NEXT:    stw 0, 104(1)5482; AIX32-NEXT:    stw 29, 84(1) # 4-byte Folded Spill5483; AIX32-NEXT:    lwz 29, L..C0(2) # @sc5484; AIX32-NEXT:    li 3, 15485; AIX32-NEXT:    li 6, 2555486; AIX32-NEXT:    stw 23, 60(1) # 4-byte Folded Spill5487; AIX32-NEXT:    stw 24, 64(1) # 4-byte Folded Spill5488; AIX32-NEXT:    rlwinm 4, 29, 3, 27, 285489; AIX32-NEXT:    stw 25, 68(1) # 4-byte Folded Spill5490; AIX32-NEXT:    stw 26, 72(1) # 4-byte Folded Spill5491; AIX32-NEXT:    stw 27, 76(1) # 4-byte Folded Spill5492; AIX32-NEXT:    xori 4, 4, 245493; AIX32-NEXT:    stw 28, 80(1) # 4-byte Folded Spill5494; AIX32-NEXT:    stw 30, 88(1) # 4-byte Folded Spill5495; AIX32-NEXT:    stw 31, 92(1) # 4-byte Folded Spill5496; AIX32-NEXT:    slw 7, 3, 45497; AIX32-NEXT:    slw 6, 6, 45498; AIX32-NEXT:    sync5499; AIX32-NEXT:    rlwinm 5, 29, 0, 0, 295500; AIX32-NEXT:    and 7, 7, 65501; AIX32-NEXT:  L..BB4_1: # %entry5502; AIX32-NEXT:    #5503; AIX32-NEXT:    lwarx 8, 0, 55504; AIX32-NEXT:    andc 9, 8, 65505; AIX32-NEXT:    or 9, 7, 95506; AIX32-NEXT:    stwcx. 9, 0, 55507; AIX32-NEXT:    bne- 0, L..BB4_15508; AIX32-NEXT:  # %bb.2: # %entry5509; AIX32-NEXT:    srw 4, 8, 45510; AIX32-NEXT:    lwz 28, L..C1(2) # @uc5511; AIX32-NEXT:    lwsync5512; AIX32-NEXT:    li 6, 2555513; AIX32-NEXT:    clrlwi 4, 4, 245514; AIX32-NEXT:    rlwinm 5, 28, 0, 0, 295515; AIX32-NEXT:    stb 4, 0(29)5516; AIX32-NEXT:    rlwinm 4, 28, 3, 27, 285517; AIX32-NEXT:    sync5518; AIX32-NEXT:    xori 4, 4, 245519; AIX32-NEXT:    slw 7, 3, 45520; AIX32-NEXT:    slw 6, 6, 45521; AIX32-NEXT:    and 7, 7, 65522; AIX32-NEXT:  L..BB4_3: # %entry5523; AIX32-NEXT:    #5524; AIX32-NEXT:    lwarx 8, 0, 55525; AIX32-NEXT:    andc 9, 8, 65526; AIX32-NEXT:    or 9, 7, 95527; AIX32-NEXT:    stwcx. 9, 0, 55528; AIX32-NEXT:    bne- 0, L..BB4_35529; AIX32-NEXT:  # %bb.4: # %entry5530; AIX32-NEXT:    srw 4, 8, 45531; AIX32-NEXT:    lwz 27, L..C2(2) # @ss5532; AIX32-NEXT:    lwsync5533; AIX32-NEXT:    li 6, 05534; AIX32-NEXT:    clrlwi 4, 4, 245535; AIX32-NEXT:    ori 6, 6, 655355536; AIX32-NEXT:    rlwinm 5, 27, 0, 0, 295537; AIX32-NEXT:    stb 4, 0(28)5538; AIX32-NEXT:    rlwinm 4, 27, 3, 27, 275539; AIX32-NEXT:    sync5540; AIX32-NEXT:    xori 4, 4, 165541; AIX32-NEXT:    slw 7, 3, 45542; AIX32-NEXT:    slw 6, 6, 45543; AIX32-NEXT:    and 7, 7, 65544; AIX32-NEXT:  L..BB4_5: # %entry5545; AIX32-NEXT:    #5546; AIX32-NEXT:    lwarx 8, 0, 55547; AIX32-NEXT:    andc 9, 8, 65548; AIX32-NEXT:    or 9, 7, 95549; AIX32-NEXT:    stwcx. 9, 0, 55550; AIX32-NEXT:    bne- 0, L..BB4_55551; AIX32-NEXT:  # %bb.6: # %entry5552; AIX32-NEXT:    srw 4, 8, 45553; AIX32-NEXT:    lwz 26, L..C3(2) # @us5554; AIX32-NEXT:    lwsync5555; AIX32-NEXT:    li 6, 05556; AIX32-NEXT:    clrlwi 4, 4, 165557; AIX32-NEXT:    ori 6, 6, 655355558; AIX32-NEXT:    rlwinm 5, 26, 0, 0, 295559; AIX32-NEXT:    sth 4, 0(27)5560; AIX32-NEXT:    rlwinm 4, 26, 3, 27, 275561; AIX32-NEXT:    sync5562; AIX32-NEXT:    xori 4, 4, 165563; AIX32-NEXT:    slw 7, 3, 45564; AIX32-NEXT:    slw 6, 6, 45565; AIX32-NEXT:    and 7, 7, 65566; AIX32-NEXT:  L..BB4_7: # %entry5567; AIX32-NEXT:    #5568; AIX32-NEXT:    lwarx 8, 0, 55569; AIX32-NEXT:    andc 9, 8, 65570; AIX32-NEXT:    or 9, 7, 95571; AIX32-NEXT:    stwcx. 9, 0, 55572; AIX32-NEXT:    bne- 0, L..BB4_75573; AIX32-NEXT:  # %bb.8: # %entry5574; AIX32-NEXT:    srw 4, 8, 45575; AIX32-NEXT:    lwsync5576; AIX32-NEXT:    lwz 25, L..C4(2) # @si5577; AIX32-NEXT:    clrlwi 4, 4, 165578; AIX32-NEXT:    sth 4, 0(26)5579; AIX32-NEXT:    sync5580; AIX32-NEXT:  L..BB4_9: # %entry5581; AIX32-NEXT:    #5582; AIX32-NEXT:    lwarx 4, 0, 255583; AIX32-NEXT:    stwcx. 3, 0, 255584; AIX32-NEXT:    bne- 0, L..BB4_95585; AIX32-NEXT:  # %bb.10: # %entry5586; AIX32-NEXT:    lwsync5587; AIX32-NEXT:    stw 4, 0(25)5588; AIX32-NEXT:    lwz 24, L..C5(2) # @ui5589; AIX32-NEXT:    sync5590; AIX32-NEXT:  L..BB4_11: # %entry5591; AIX32-NEXT:    #5592; AIX32-NEXT:    lwarx 4, 0, 245593; AIX32-NEXT:    stwcx. 3, 0, 245594; AIX32-NEXT:    bne- 0, L..BB4_115595; AIX32-NEXT:  # %bb.12: # %entry5596; AIX32-NEXT:    lwz 31, L..C6(2) # @sll5597; AIX32-NEXT:    lwsync5598; AIX32-NEXT:    stw 4, 0(24)5599; AIX32-NEXT:    mr 3, 315600; AIX32-NEXT:    li 4, 05601; AIX32-NEXT:    li 5, 15602; AIX32-NEXT:    li 6, 55603; AIX32-NEXT:    li 23, 05604; AIX32-NEXT:    bl .__atomic_exchange_8[PR]5605; AIX32-NEXT:    nop5606; AIX32-NEXT:    lwz 30, L..C7(2) # @ull5607; AIX32-NEXT:    stw 4, 4(31)5608; AIX32-NEXT:    li 4, 05609; AIX32-NEXT:    li 5, 15610; AIX32-NEXT:    li 6, 55611; AIX32-NEXT:    stw 3, 0(31)5612; AIX32-NEXT:    mr 3, 305613; AIX32-NEXT:    bl .__atomic_exchange_8[PR]5614; AIX32-NEXT:    nop5615; AIX32-NEXT:    stw 4, 4(30)5616; AIX32-NEXT:    stw 3, 0(30)5617; AIX32-NEXT:    sync5618; AIX32-NEXT:    li 4, 05619; AIX32-NEXT:    li 5, 05620; AIX32-NEXT:    mr 3, 315621; AIX32-NEXT:    lwsync5622; AIX32-NEXT:    stb 23, 0(29)5623; AIX32-NEXT:    li 6, 35624; AIX32-NEXT:    lwsync5625; AIX32-NEXT:    stb 23, 0(28)5626; AIX32-NEXT:    lwsync5627; AIX32-NEXT:    sth 23, 0(27)5628; AIX32-NEXT:    lwsync5629; AIX32-NEXT:    sth 23, 0(26)5630; AIX32-NEXT:    lwsync5631; AIX32-NEXT:    stw 23, 0(25)5632; AIX32-NEXT:    lwsync5633; AIX32-NEXT:    stw 23, 0(24)5634; AIX32-NEXT:    bl .__atomic_store_8[PR]5635; AIX32-NEXT:    nop5636; AIX32-NEXT:    li 4, 05637; AIX32-NEXT:    li 5, 05638; AIX32-NEXT:    mr 3, 305639; AIX32-NEXT:    li 6, 35640; AIX32-NEXT:    bl .__atomic_store_8[PR]5641; AIX32-NEXT:    nop5642; AIX32-NEXT:    lwz 31, 92(1) # 4-byte Folded Reload5643; AIX32-NEXT:    lwz 30, 88(1) # 4-byte Folded Reload5644; AIX32-NEXT:    lwz 29, 84(1) # 4-byte Folded Reload5645; AIX32-NEXT:    lwz 28, 80(1) # 4-byte Folded Reload5646; AIX32-NEXT:    lwz 27, 76(1) # 4-byte Folded Reload5647; AIX32-NEXT:    lwz 26, 72(1) # 4-byte Folded Reload5648; AIX32-NEXT:    lwz 25, 68(1) # 4-byte Folded Reload5649; AIX32-NEXT:    lwz 24, 64(1) # 4-byte Folded Reload5650; AIX32-NEXT:    lwz 23, 60(1) # 4-byte Folded Reload5651; AIX32-NEXT:    addi 1, 1, 965652; AIX32-NEXT:    lwz 0, 8(1)5653; AIX32-NEXT:    mtlr 05654; AIX32-NEXT:    blr5655entry:5656  %0 = atomicrmw xchg ptr @sc, i8 1 seq_cst, align 15657  store i8 %0, ptr @sc, align 15658  %1 = atomicrmw xchg ptr @uc, i8 1 seq_cst, align 15659  store i8 %1, ptr @uc, align 15660  %2 = atomicrmw xchg ptr @ss, i16 1 seq_cst, align 25661  store i16 %2, ptr @ss, align 25662  %3 = atomicrmw xchg ptr @us, i16 1 seq_cst, align 25663  store i16 %3, ptr @us, align 25664  %4 = atomicrmw xchg ptr @si, i32 1 seq_cst, align 45665  store i32 %4, ptr @si, align 45666  %5 = atomicrmw xchg ptr @ui, i32 1 seq_cst, align 45667  store i32 %5, ptr @ui, align 45668  %6 = atomicrmw xchg ptr @sll, i64 1 seq_cst, align 85669  store i64 %6, ptr @sll, align 85670  %7 = atomicrmw xchg ptr @ull, i64 1 seq_cst, align 85671  store i64 %7, ptr @ull, align 85672  fence seq_cst5673  store atomic i8 0, ptr @sc release, align 15674  store atomic i8 0, ptr @uc release, align 15675  store atomic i16 0, ptr @ss release, align 25676  store atomic i16 0, ptr @us release, align 25677  store atomic i32 0, ptr @si release, align 45678  store atomic i32 0, ptr @ui release, align 45679  store atomic i64 0, ptr @sll release, align 85680  store atomic i64 0, ptr @ull release, align 85681  ret void5682}5683 5684define dso_local void @test_atomic() local_unnamed_addr #0 {5685; CHECK-LABEL: test_atomic:5686; CHECK:       # %bb.0: # %entry5687; CHECK-NEXT:    addis 4, 2, ui@toc@ha5688; CHECK-NEXT:    li 3, 55689; CHECK-NEXT:    addi 6, 4, ui@toc@l5690; CHECK-NEXT:  .LBB5_1: # %entry5691; CHECK-NEXT:    #5692; CHECK-NEXT:    lwarx 5, 0, 65693; CHECK-NEXT:    cmplwi 5, 55694; CHECK-NEXT:    blt 0, .LBB5_35695; CHECK-NEXT:  # %bb.2: # %entry5696; CHECK-NEXT:    #5697; CHECK-NEXT:    stwcx. 3, 0, 65698; CHECK-NEXT:    bne- 0, .LBB5_15699; CHECK-NEXT:  .LBB5_3: # %entry5700; CHECK-NEXT:    stw 5, ui@toc@l(4)5701; CHECK-NEXT:    addis 5, 2, si@toc@ha5702; CHECK-NEXT:    sync5703; CHECK-NEXT:    addi 7, 5, si@toc@l5704; CHECK-NEXT:  .LBB5_4: # %entry5705; CHECK-NEXT:    #5706; CHECK-NEXT:    lwarx 8, 0, 75707; CHECK-NEXT:    cmpwi 8, 55708; CHECK-NEXT:    blt 0, .LBB5_65709; CHECK-NEXT:  # %bb.5: # %entry5710; CHECK-NEXT:    #5711; CHECK-NEXT:    stwcx. 3, 0, 75712; CHECK-NEXT:    bne- 0, .LBB5_45713; CHECK-NEXT:  .LBB5_6: # %entry5714; CHECK-NEXT:    lwsync5715; CHECK-NEXT:    stw 8, si@toc@l(5)5716; CHECK-NEXT:  .LBB5_7: # %entry5717; CHECK-NEXT:    #5718; CHECK-NEXT:    lwarx 8, 0, 65719; CHECK-NEXT:    cmplwi 8, 55720; CHECK-NEXT:    bgt 0, .LBB5_95721; CHECK-NEXT:  # %bb.8: # %entry5722; CHECK-NEXT:    #5723; CHECK-NEXT:    stwcx. 3, 0, 65724; CHECK-NEXT:    bne- 0, .LBB5_75725; CHECK-NEXT:  .LBB5_9: # %entry5726; CHECK-NEXT:    lwsync5727; CHECK-NEXT:    stw 8, ui@toc@l(4)5728; CHECK-NEXT:    lwsync5729; CHECK-NEXT:  .LBB5_10: # %entry5730; CHECK-NEXT:    #5731; CHECK-NEXT:    lwarx 4, 0, 75732; CHECK-NEXT:    cmpwi 4, 55733; CHECK-NEXT:    bgt 0, .LBB5_125734; CHECK-NEXT:  # %bb.11: # %entry5735; CHECK-NEXT:    #5736; CHECK-NEXT:    stwcx. 3, 0, 75737; CHECK-NEXT:    bne- 0, .LBB5_105738; CHECK-NEXT:  .LBB5_12: # %entry5739; CHECK-NEXT:    stw 4, si@toc@l(5)5740; CHECK-NEXT:    blr5741;5742; AIX32-LABEL: test_atomic:5743; AIX32:       # %bb.0: # %entry5744; AIX32-NEXT:    lwz 4, L..C5(2) # @ui5745; AIX32-NEXT:    li 3, 55746; AIX32-NEXT:  L..BB5_1: # %entry5747; AIX32-NEXT:    #5748; AIX32-NEXT:    lwarx 5, 0, 45749; AIX32-NEXT:    cmplwi 5, 55750; AIX32-NEXT:    blt 0, L..BB5_35751; AIX32-NEXT:  # %bb.2: # %entry5752; AIX32-NEXT:    #5753; AIX32-NEXT:    stwcx. 3, 0, 45754; AIX32-NEXT:    bne- 0, L..BB5_15755; AIX32-NEXT:  L..BB5_3: # %entry5756; AIX32-NEXT:    stw 5, 0(4)5757; AIX32-NEXT:    lwz 5, L..C4(2) # @si5758; AIX32-NEXT:    sync5759; AIX32-NEXT:  L..BB5_4: # %entry5760; AIX32-NEXT:    #5761; AIX32-NEXT:    lwarx 6, 0, 55762; AIX32-NEXT:    cmpwi 6, 55763; AIX32-NEXT:    blt 0, L..BB5_65764; AIX32-NEXT:  # %bb.5: # %entry5765; AIX32-NEXT:    #5766; AIX32-NEXT:    stwcx. 3, 0, 55767; AIX32-NEXT:    bne- 0, L..BB5_45768; AIX32-NEXT:  L..BB5_6: # %entry5769; AIX32-NEXT:    lwsync5770; AIX32-NEXT:    stw 6, 0(5)5771; AIX32-NEXT:  L..BB5_7: # %entry5772; AIX32-NEXT:    #5773; AIX32-NEXT:    lwarx 6, 0, 45774; AIX32-NEXT:    cmplwi 6, 55775; AIX32-NEXT:    bgt 0, L..BB5_95776; AIX32-NEXT:  # %bb.8: # %entry5777; AIX32-NEXT:    #5778; AIX32-NEXT:    stwcx. 3, 0, 45779; AIX32-NEXT:    bne- 0, L..BB5_75780; AIX32-NEXT:  L..BB5_9: # %entry5781; AIX32-NEXT:    lwsync5782; AIX32-NEXT:    stw 6, 0(4)5783; AIX32-NEXT:    lwsync5784; AIX32-NEXT:  L..BB5_10: # %entry5785; AIX32-NEXT:    #5786; AIX32-NEXT:    lwarx 4, 0, 55787; AIX32-NEXT:    cmpwi 4, 55788; AIX32-NEXT:    bgt 0, L..BB5_125789; AIX32-NEXT:  # %bb.11: # %entry5790; AIX32-NEXT:    #5791; AIX32-NEXT:    stwcx. 3, 0, 55792; AIX32-NEXT:    bne- 0, L..BB5_105793; AIX32-NEXT:  L..BB5_12: # %entry5794; AIX32-NEXT:    stw 4, 0(5)5795; AIX32-NEXT:    blr5796entry:5797  %0 = atomicrmw umin ptr @ui, i32 5 monotonic, align 45798  store i32 %0, ptr @ui, align 45799  %1 = atomicrmw min ptr @si, i32 5 seq_cst, align 45800  store i32 %1, ptr @si, align 45801  %2 = atomicrmw umax ptr @ui, i32 5 acquire, align 45802  store i32 %2, ptr @ui, align 45803  %3 = atomicrmw max ptr @si, i32 5 release, align 45804  store i32 %3, ptr @si, align 45805  ret void5806}5807 5808define dso_local i64 @cmpswplp(ptr noundef %ptr, ptr nocapture noundef readnone %oldval, i64 noundef %newval) local_unnamed_addr #0 {5809; CHECK-LABEL: cmpswplp:5810; CHECK:       # %bb.0: # %entry5811; CHECK-NEXT:    ldarx 4, 0, 35812; CHECK-NEXT:    cmpld 4, 55813; CHECK-NEXT:    bne- 0, .LBB6_35814; CHECK-NEXT:  # %bb.1: # %cmpxchg.fencedstore5815; CHECK-NEXT:    addi 4, 5, 15816; CHECK-NEXT:    creqv 20, 20, 205817; CHECK-NEXT:    stdcx. 4, 0, 35818; CHECK-NEXT:    bne- 0, .LBB6_35819; CHECK-NEXT:  .LBB6_2: # %cmpxchg.end5820; CHECK-NEXT:    li 3, 665821; CHECK-NEXT:    li 4, 555822; CHECK-NEXT:    isel 3, 4, 3, 205823; CHECK-NEXT:    blr5824; CHECK-NEXT:  .LBB6_3: # %cmpxchg.failure5825; CHECK-NEXT:    crxor 20, 20, 205826; CHECK-NEXT:    b .LBB6_25827;5828; AIX32-LABEL: cmpswplp:5829; AIX32:       # %bb.0: # %entry5830; AIX32-NEXT:    mflr 05831; AIX32-NEXT:    stwu 1, -64(1)5832; AIX32-NEXT:    addic 7, 6, 15833; AIX32-NEXT:    stw 0, 72(1)5834; AIX32-NEXT:    addze 8, 55835; AIX32-NEXT:    stw 6, 60(1)5836; AIX32-NEXT:    stw 5, 56(1)5837; AIX32-NEXT:    addi 4, 1, 565838; AIX32-NEXT:    mr 5, 85839; AIX32-NEXT:    mr 6, 75840; AIX32-NEXT:    li 7, 05841; AIX32-NEXT:    li 8, 05842; AIX32-NEXT:    bl .__atomic_compare_exchange_8[PR]5843; AIX32-NEXT:    nop5844; AIX32-NEXT:    andi. 3, 3, 15845; AIX32-NEXT:    li 3, 665846; AIX32-NEXT:    li 4, 555847; AIX32-NEXT:    iselgt 4, 4, 35848; AIX32-NEXT:    li 3, 05849; AIX32-NEXT:    addi 1, 1, 645850; AIX32-NEXT:    lwz 0, 8(1)5851; AIX32-NEXT:    mtlr 05852; AIX32-NEXT:    blr5853entry:5854  %add = add nsw i64 %newval, 15855  %0 = cmpxchg weak volatile ptr %ptr, i64 %newval, i64 %add monotonic monotonic, align 85856  %1 = extractvalue { i64, i1 } %0, 15857  %conv = select i1 %1, i64 55, i64 665858  ret i64 %conv5859}5860 5861define dso_local i64 @atommax8(ptr nocapture noundef %ptr, i64 noundef %val) local_unnamed_addr #0 {5862; CHECK-LABEL: atommax8:5863; CHECK:       # %bb.0: # %entry5864; CHECK-NEXT:    sync5865; CHECK-NEXT:  .LBB7_1: # %entry5866; CHECK-NEXT:    #5867; CHECK-NEXT:    ldarx 5, 0, 35868; CHECK-NEXT:    cmpd 1, 5, 45869; CHECK-NEXT:    bgt 1, .LBB7_35870; CHECK-NEXT:  # %bb.2: # %entry5871; CHECK-NEXT:    #5872; CHECK-NEXT:    stdcx. 4, 0, 35873; CHECK-NEXT:    bne- 0, .LBB7_15874; CHECK-NEXT:  .LBB7_3: # %entry5875; CHECK-NEXT:    li 3, 555876; CHECK-NEXT:    li 4, 665877; CHECK-NEXT:    lwsync5878; CHECK-NEXT:    isel 3, 4, 3, 55879; CHECK-NEXT:    blr5880;5881; AIX32-LABEL: atommax8:5882; AIX32:       # %bb.0: # %entry5883; AIX32-NEXT:    mflr 05884; AIX32-NEXT:    stwu 1, -80(1)5885; AIX32-NEXT:    stw 0, 88(1)5886; AIX32-NEXT:    stw 30, 72(1) # 4-byte Folded Spill5887; AIX32-NEXT:    stw 31, 76(1) # 4-byte Folded Spill5888; AIX32-NEXT:    mr 31, 55889; AIX32-NEXT:    mr 30, 45890; AIX32-NEXT:    lwz 4, 4(3)5891; AIX32-NEXT:    lwz 5, 0(3)5892; AIX32-NEXT:    stw 28, 64(1) # 4-byte Folded Spill5893; AIX32-NEXT:    addi 28, 1, 565894; AIX32-NEXT:    stw 29, 68(1) # 4-byte Folded Spill5895; AIX32-NEXT:    mr 29, 35896; AIX32-NEXT:    .align 45897; AIX32-NEXT:  L..BB7_1: # %atomicrmw.start5898; AIX32-NEXT:    #5899; AIX32-NEXT:    cmplw 5, 305900; AIX32-NEXT:    cmpw 1, 5, 305901; AIX32-NEXT:    li 7, 55902; AIX32-NEXT:    li 8, 55903; AIX32-NEXT:    stw 5, 56(1)5904; AIX32-NEXT:    mr 3, 295905; AIX32-NEXT:    crandc 20, 5, 25906; AIX32-NEXT:    cmplw 1, 4, 315907; AIX32-NEXT:    crand 21, 2, 55908; AIX32-NEXT:    stw 4, 60(1)5909; AIX32-NEXT:    cror 20, 21, 205910; AIX32-NEXT:    isel 5, 5, 30, 205911; AIX32-NEXT:    isel 6, 4, 31, 205912; AIX32-NEXT:    mr 4, 285913; AIX32-NEXT:    bl .__atomic_compare_exchange_8[PR]5914; AIX32-NEXT:    nop5915; AIX32-NEXT:    lwz 4, 60(1)5916; AIX32-NEXT:    lwz 5, 56(1)5917; AIX32-NEXT:    cmplwi 3, 05918; AIX32-NEXT:    beq 0, L..BB7_15919; AIX32-NEXT:  # %bb.2: # %atomicrmw.end5920; AIX32-NEXT:    cmplw 5, 305921; AIX32-NEXT:    cmpw 1, 5, 305922; AIX32-NEXT:    li 3, 555923; AIX32-NEXT:    lwz 30, 72(1) # 4-byte Folded Reload5924; AIX32-NEXT:    lwz 29, 68(1) # 4-byte Folded Reload5925; AIX32-NEXT:    lwz 28, 64(1) # 4-byte Folded Reload5926; AIX32-NEXT:    crandc 20, 5, 25927; AIX32-NEXT:    cmplw 1, 4, 315928; AIX32-NEXT:    li 4, 665929; AIX32-NEXT:    lwz 31, 76(1) # 4-byte Folded Reload5930; AIX32-NEXT:    crand 21, 2, 55931; AIX32-NEXT:    cror 20, 21, 205932; AIX32-NEXT:    isel 4, 4, 3, 205933; AIX32-NEXT:    li 3, 05934; AIX32-NEXT:    addi 1, 1, 805935; AIX32-NEXT:    lwz 0, 8(1)5936; AIX32-NEXT:    mtlr 05937; AIX32-NEXT:    blr5938entry:5939  %0 = atomicrmw max ptr %ptr, i64 %val seq_cst, align 85940  %cmp.not = icmp sgt i64 %0, %val5941  %conv = select i1 %cmp.not, i64 66, i64 555942  ret i64 %conv5943}5944 5945define dso_local signext i32 @atommax4(ptr nocapture noundef %ptr, i32 noundef signext %val) local_unnamed_addr #0 {5946; CHECK-LABEL: atommax4:5947; CHECK:       # %bb.0: # %entry5948; CHECK-NEXT:    sync5949; CHECK-NEXT:  .LBB8_1: # %entry5950; CHECK-NEXT:    #5951; CHECK-NEXT:    lwarx 5, 0, 35952; CHECK-NEXT:    cmpw 1, 5, 45953; CHECK-NEXT:    bgt 1, .LBB8_35954; CHECK-NEXT:  # %bb.2: # %entry5955; CHECK-NEXT:    #5956; CHECK-NEXT:    stwcx. 4, 0, 35957; CHECK-NEXT:    bne- 0, .LBB8_15958; CHECK-NEXT:  .LBB8_3: # %entry5959; CHECK-NEXT:    li 3, 555960; CHECK-NEXT:    li 4, 665961; CHECK-NEXT:    lwsync5962; CHECK-NEXT:    isel 3, 4, 3, 55963; CHECK-NEXT:    blr5964;5965; AIX32-LABEL: atommax4:5966; AIX32:       # %bb.0: # %entry5967; AIX32-NEXT:    sync5968; AIX32-NEXT:  L..BB8_1: # %entry5969; AIX32-NEXT:    #5970; AIX32-NEXT:    lwarx 5, 0, 35971; AIX32-NEXT:    cmpw 1, 5, 45972; AIX32-NEXT:    bgt 1, L..BB8_35973; AIX32-NEXT:  # %bb.2: # %entry5974; AIX32-NEXT:    #5975; AIX32-NEXT:    stwcx. 4, 0, 35976; AIX32-NEXT:    bne- 0, L..BB8_15977; AIX32-NEXT:  L..BB8_3: # %entry5978; AIX32-NEXT:    li 3, 555979; AIX32-NEXT:    li 4, 665980; AIX32-NEXT:    lwsync5981; AIX32-NEXT:    isel 3, 4, 3, 55982; AIX32-NEXT:    blr5983entry:5984  %0 = atomicrmw max ptr %ptr, i32 %val seq_cst, align 45985  %cmp.not = icmp sgt i32 %0, %val5986  %cond = select i1 %cmp.not, i32 66, i32 555987  ret i32 %cond5988}5989 5990define dso_local signext i16 @atommax2(ptr nocapture noundef %ptr, i16 noundef signext %val) local_unnamed_addr #0 {5991; CHECK-LABEL: atommax2:5992; CHECK:       # %bb.0: # %entry5993; CHECK-NEXT:    sync5994; CHECK-NEXT:  .LBB9_1: # %entry5995; CHECK-NEXT:    #5996; CHECK-NEXT:    lharx 5, 0, 35997; CHECK-NEXT:    extsh 5, 55998; CHECK-NEXT:    cmpw 1, 5, 45999; CHECK-NEXT:    bgt 1, .LBB9_36000; CHECK-NEXT:  # %bb.2: # %entry6001; CHECK-NEXT:    #6002; CHECK-NEXT:    sthcx. 4, 0, 36003; CHECK-NEXT:    bne- 0, .LBB9_16004; CHECK-NEXT:  .LBB9_3: # %entry6005; CHECK-NEXT:    li 3, 556006; CHECK-NEXT:    li 4, 666007; CHECK-NEXT:    lwsync6008; CHECK-NEXT:    isel 3, 4, 3, 56009; CHECK-NEXT:    blr6010;6011; AIX32-LABEL: atommax2:6012; AIX32:       # %bb.0: # %entry6013; AIX32-NEXT:    rlwinm 6, 3, 3, 27, 276014; AIX32-NEXT:    li 7, 06015; AIX32-NEXT:    sync6016; AIX32-NEXT:    extsh 5, 46017; AIX32-NEXT:    rlwinm 3, 3, 0, 0, 296018; AIX32-NEXT:    xori 6, 6, 166019; AIX32-NEXT:    ori 7, 7, 655356020; AIX32-NEXT:    slw 8, 5, 66021; AIX32-NEXT:    slw 7, 7, 66022; AIX32-NEXT:    and 8, 8, 76023; AIX32-NEXT:  L..BB9_1: # %entry6024; AIX32-NEXT:    #6025; AIX32-NEXT:    lwarx 9, 0, 36026; AIX32-NEXT:    and 10, 9, 76027; AIX32-NEXT:    srw 10, 10, 66028; AIX32-NEXT:    extsh 10, 106029; AIX32-NEXT:    cmpw 10, 56030; AIX32-NEXT:    bgt 0, L..BB9_36031; AIX32-NEXT:  # %bb.2: # %entry6032; AIX32-NEXT:    #6033; AIX32-NEXT:    andc 10, 9, 76034; AIX32-NEXT:    or 10, 8, 106035; AIX32-NEXT:    stwcx. 10, 0, 36036; AIX32-NEXT:    bne- 0, L..BB9_16037; AIX32-NEXT:  L..BB9_3: # %entry6038; AIX32-NEXT:    srw 3, 9, 66039; AIX32-NEXT:    lwsync6040; AIX32-NEXT:    clrlwi 3, 3, 166041; AIX32-NEXT:    extsh 3, 36042; AIX32-NEXT:    cmpw 3, 46043; AIX32-NEXT:    li 3, 556044; AIX32-NEXT:    li 4, 666045; AIX32-NEXT:    iselgt 3, 4, 36046; AIX32-NEXT:    blr6047entry:6048  %0 = atomicrmw max ptr %ptr, i16 %val seq_cst, align 26049  %cmp.not = icmp sgt i16 %0, %val6050  %conv3 = select i1 %cmp.not, i16 66, i16 556051  ret i16 %conv36052}6053 6054define dso_local zeroext i8 @atommax1(ptr nocapture noundef %ptr, i8 noundef zeroext %val) local_unnamed_addr #0 {6055; CHECK-LABEL: atommax1:6056; CHECK:       # %bb.0: # %entry6057; CHECK-NEXT:    sync6058; CHECK-NEXT:  .LBB10_1: # %entry6059; CHECK-NEXT:    #6060; CHECK-NEXT:    lbarx 5, 0, 36061; CHECK-NEXT:    cmplw 1, 5, 46062; CHECK-NEXT:    bgt 1, .LBB10_36063; CHECK-NEXT:  # %bb.2: # %entry6064; CHECK-NEXT:    #6065; CHECK-NEXT:    stbcx. 4, 0, 36066; CHECK-NEXT:    bne- 0, .LBB10_16067; CHECK-NEXT:  .LBB10_3: # %entry6068; CHECK-NEXT:    li 3, 556069; CHECK-NEXT:    li 4, 666070; CHECK-NEXT:    lwsync6071; CHECK-NEXT:    isel 3, 4, 3, 56072; CHECK-NEXT:    blr6073;6074; AIX32-LABEL: atommax1:6075; AIX32:       # %bb.0: # %entry6076; AIX32-NEXT:    rlwinm 5, 3, 3, 27, 286077; AIX32-NEXT:    li 7, 2556078; AIX32-NEXT:    sync6079; AIX32-NEXT:    rlwinm 3, 3, 0, 0, 296080; AIX32-NEXT:    xori 5, 5, 246081; AIX32-NEXT:    slw 6, 4, 56082; AIX32-NEXT:    slw 7, 7, 56083; AIX32-NEXT:    and 8, 6, 76084; AIX32-NEXT:  L..BB10_1: # %entry6085; AIX32-NEXT:    #6086; AIX32-NEXT:    lwarx 9, 0, 36087; AIX32-NEXT:    and 10, 9, 76088; AIX32-NEXT:    cmplw 10, 66089; AIX32-NEXT:    bgt 0, L..BB10_36090; AIX32-NEXT:  # %bb.2: # %entry6091; AIX32-NEXT:    #6092; AIX32-NEXT:    andc 10, 9, 76093; AIX32-NEXT:    or 10, 8, 106094; AIX32-NEXT:    stwcx. 10, 0, 36095; AIX32-NEXT:    bne- 0, L..BB10_16096; AIX32-NEXT:  L..BB10_3: # %entry6097; AIX32-NEXT:    srw 3, 9, 56098; AIX32-NEXT:    lwsync6099; AIX32-NEXT:    clrlwi 3, 3, 246100; AIX32-NEXT:    cmplw 3, 46101; AIX32-NEXT:    li 3, 556102; AIX32-NEXT:    li 4, 666103; AIX32-NEXT:    iselgt 3, 4, 36104; AIX32-NEXT:    blr6105entry:6106  %0 = atomicrmw umax ptr %ptr, i8 %val seq_cst, align 16107  %cmp.not = icmp ugt i8 %0, %val6108  %conv3 = select i1 %cmp.not, i8 66, i8 556109  ret i8 %conv36110}6111