brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.5 KiB · 44a4f16 Raw
593 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs < %s | FileCheck %s3target datalayout = "E-m:e-i64:64-n32:64"4target triple = "powerpc64-unknown-linux-gnu"5 6define void @a32min(ptr nocapture dereferenceable(4) %minimum, i32 %val) #0 {7; CHECK-LABEL: a32min:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:  .LBB0_1: # %entry10; CHECK-NEXT:    #11; CHECK-NEXT:    lwarx 5, 0, 312; CHECK-NEXT:    cmpw 5, 413; CHECK-NEXT:    bltlr 014; CHECK-NEXT:  # %bb.2: # %entry15; CHECK-NEXT:    #16; CHECK-NEXT:    stwcx. 4, 0, 317; CHECK-NEXT:    bne- 0, .LBB0_118; CHECK-NEXT:  # %bb.3: # %entry19; CHECK-NEXT:    blr20entry:21  %0 = atomicrmw min ptr %minimum, i32 %val monotonic22  ret void23 24}25 26define void @a32max(ptr nocapture dereferenceable(4) %minimum, i32 %val) #0 {27; CHECK-LABEL: a32max:28; CHECK:       # %bb.0: # %entry29; CHECK-NEXT:  .LBB1_1: # %entry30; CHECK-NEXT:    #31; CHECK-NEXT:    lwarx 5, 0, 332; CHECK-NEXT:    cmpw 5, 433; CHECK-NEXT:    bgtlr 034; CHECK-NEXT:  # %bb.2: # %entry35; CHECK-NEXT:    #36; CHECK-NEXT:    stwcx. 4, 0, 337; CHECK-NEXT:    bne- 0, .LBB1_138; CHECK-NEXT:  # %bb.3: # %entry39; CHECK-NEXT:    blr40entry:41  %0 = atomicrmw max ptr %minimum, i32 %val monotonic42  ret void43 44}45 46define void @a32umin(ptr nocapture dereferenceable(4) %minimum, i32 %val) #0 {47; CHECK-LABEL: a32umin:48; CHECK:       # %bb.0: # %entry49; CHECK-NEXT:  .LBB2_1: # %entry50; CHECK-NEXT:    #51; CHECK-NEXT:    lwarx 5, 0, 352; CHECK-NEXT:    cmplw 5, 453; CHECK-NEXT:    bltlr 054; CHECK-NEXT:  # %bb.2: # %entry55; CHECK-NEXT:    #56; CHECK-NEXT:    stwcx. 4, 0, 357; CHECK-NEXT:    bne- 0, .LBB2_158; CHECK-NEXT:  # %bb.3: # %entry59; CHECK-NEXT:    blr60entry:61  %0 = atomicrmw umin ptr %minimum, i32 %val monotonic62  ret void63 64}65 66define void @a32umax(ptr nocapture dereferenceable(4) %minimum, i32 %val) #0 {67; CHECK-LABEL: a32umax:68; CHECK:       # %bb.0: # %entry69; CHECK-NEXT:  .LBB3_1: # %entry70; CHECK-NEXT:    #71; CHECK-NEXT:    lwarx 5, 0, 372; CHECK-NEXT:    cmplw 5, 473; CHECK-NEXT:    bgtlr 074; CHECK-NEXT:  # %bb.2: # %entry75; CHECK-NEXT:    #76; CHECK-NEXT:    stwcx. 4, 0, 377; CHECK-NEXT:    bne- 0, .LBB3_178; CHECK-NEXT:  # %bb.3: # %entry79; CHECK-NEXT:    blr80entry:81  %0 = atomicrmw umax ptr %minimum, i32 %val monotonic82  ret void83 84}85 86define void @a16min(ptr nocapture dereferenceable(4) %minimum, i16 %val) #1 {87; CHECK-LABEL: a16min:88; CHECK:       # %bb.0: # %entry89; CHECK-NEXT:    extsh 4, 490; CHECK-NEXT:  .LBB4_1: # %entry91; CHECK-NEXT:    #92; CHECK-NEXT:    lharx 5, 0, 393; CHECK-NEXT:    extsh 5, 594; CHECK-NEXT:    cmpw 5, 495; CHECK-NEXT:    bltlr 096; CHECK-NEXT:  # %bb.2: # %entry97; CHECK-NEXT:    #98; CHECK-NEXT:    sthcx. 4, 0, 399; CHECK-NEXT:    bne- 0, .LBB4_1100; CHECK-NEXT:  # %bb.3: # %entry101; CHECK-NEXT:    blr102entry:103  %0 = atomicrmw min ptr %minimum, i16 %val monotonic104  ret void105 106}107 108define void @a16max(ptr nocapture dereferenceable(4) %minimum, i16 %val) #1 {109; CHECK-LABEL: a16max:110; CHECK:       # %bb.0: # %entry111; CHECK-NEXT:    extsh 4, 4112; CHECK-NEXT:  .LBB5_1: # %entry113; CHECK-NEXT:    #114; CHECK-NEXT:    lharx 5, 0, 3115; CHECK-NEXT:    extsh 5, 5116; CHECK-NEXT:    cmpw 5, 4117; CHECK-NEXT:    bgtlr 0118; CHECK-NEXT:  # %bb.2: # %entry119; CHECK-NEXT:    #120; CHECK-NEXT:    sthcx. 4, 0, 3121; CHECK-NEXT:    bne- 0, .LBB5_1122; CHECK-NEXT:  # %bb.3: # %entry123; CHECK-NEXT:    blr124entry:125  %0 = atomicrmw max ptr %minimum, i16 %val monotonic126  ret void127 128}129 130define void @a16umin(ptr nocapture dereferenceable(4) %minimum, i16 %val) #1 {131; CHECK-LABEL: a16umin:132; CHECK:       # %bb.0: # %entry133; CHECK-NEXT:  .LBB6_1: # %entry134; CHECK-NEXT:    #135; CHECK-NEXT:    lharx 5, 0, 3136; CHECK-NEXT:    cmplw 5, 4137; CHECK-NEXT:    bltlr 0138; CHECK-NEXT:  # %bb.2: # %entry139; CHECK-NEXT:    #140; CHECK-NEXT:    sthcx. 4, 0, 3141; CHECK-NEXT:    bne- 0, .LBB6_1142; CHECK-NEXT:  # %bb.3: # %entry143; CHECK-NEXT:    blr144entry:145  %0 = atomicrmw umin ptr %minimum, i16 %val monotonic146  ret void147 148}149 150define void @a16umax(ptr nocapture dereferenceable(4) %minimum, i16 %val) #1 {151; CHECK-LABEL: a16umax:152; CHECK:       # %bb.0: # %entry153; CHECK-NEXT:  .LBB7_1: # %entry154; CHECK-NEXT:    #155; CHECK-NEXT:    lharx 5, 0, 3156; CHECK-NEXT:    cmplw 5, 4157; CHECK-NEXT:    bgtlr 0158; CHECK-NEXT:  # %bb.2: # %entry159; CHECK-NEXT:    #160; CHECK-NEXT:    sthcx. 4, 0, 3161; CHECK-NEXT:    bne- 0, .LBB7_1162; CHECK-NEXT:  # %bb.3: # %entry163; CHECK-NEXT:    blr164entry:165  %0 = atomicrmw umax ptr %minimum, i16 %val monotonic166  ret void167 168}169 170define void @a8min(ptr nocapture dereferenceable(4) %minimum, i8 %val) #1 {171; CHECK-LABEL: a8min:172; CHECK:       # %bb.0: # %entry173; CHECK-NEXT:    extsb 4, 4174; CHECK-NEXT:  .LBB8_1: # %entry175; CHECK-NEXT:    #176; CHECK-NEXT:    lbarx 5, 0, 3177; CHECK-NEXT:    extsb 5, 5178; CHECK-NEXT:    cmpw 5, 4179; CHECK-NEXT:    bltlr 0180; CHECK-NEXT:  # %bb.2: # %entry181; CHECK-NEXT:    #182; CHECK-NEXT:    stbcx. 4, 0, 3183; CHECK-NEXT:    bne- 0, .LBB8_1184; CHECK-NEXT:  # %bb.3: # %entry185; CHECK-NEXT:    blr186entry:187  %0 = atomicrmw min ptr %minimum, i8 %val monotonic188  ret void189 190}191 192define void @a8max(ptr nocapture dereferenceable(4) %minimum, i8 %val) #1 {193; CHECK-LABEL: a8max:194; CHECK:       # %bb.0: # %entry195; CHECK-NEXT:    extsb 4, 4196; CHECK-NEXT:  .LBB9_1: # %entry197; CHECK-NEXT:    #198; CHECK-NEXT:    lbarx 5, 0, 3199; CHECK-NEXT:    extsb 5, 5200; CHECK-NEXT:    cmpw 5, 4201; CHECK-NEXT:    bgtlr 0202; CHECK-NEXT:  # %bb.2: # %entry203; CHECK-NEXT:    #204; CHECK-NEXT:    stbcx. 4, 0, 3205; CHECK-NEXT:    bne- 0, .LBB9_1206; CHECK-NEXT:  # %bb.3: # %entry207; CHECK-NEXT:    blr208entry:209  %0 = atomicrmw max ptr %minimum, i8 %val monotonic210  ret void211 212}213 214define void @a8umin(ptr nocapture dereferenceable(4) %minimum, i8 %val) #1 {215; CHECK-LABEL: a8umin:216; CHECK:       # %bb.0: # %entry217; CHECK-NEXT:  .LBB10_1: # %entry218; CHECK-NEXT:    #219; CHECK-NEXT:    lbarx 5, 0, 3220; CHECK-NEXT:    cmplw 5, 4221; CHECK-NEXT:    bltlr 0222; CHECK-NEXT:  # %bb.2: # %entry223; CHECK-NEXT:    #224; CHECK-NEXT:    stbcx. 4, 0, 3225; CHECK-NEXT:    bne- 0, .LBB10_1226; CHECK-NEXT:  # %bb.3: # %entry227; CHECK-NEXT:    blr228entry:229  %0 = atomicrmw umin ptr %minimum, i8 %val monotonic230  ret void231 232}233 234define void @a8umax(ptr nocapture dereferenceable(4) %minimum, i8 %val) #1 {235; CHECK-LABEL: a8umax:236; CHECK:       # %bb.0: # %entry237; CHECK-NEXT:  .LBB11_1: # %entry238; CHECK-NEXT:    #239; CHECK-NEXT:    lbarx 5, 0, 3240; CHECK-NEXT:    cmplw 5, 4241; CHECK-NEXT:    bgtlr 0242; CHECK-NEXT:  # %bb.2: # %entry243; CHECK-NEXT:    #244; CHECK-NEXT:    stbcx. 4, 0, 3245; CHECK-NEXT:    bne- 0, .LBB11_1246; CHECK-NEXT:  # %bb.3: # %entry247; CHECK-NEXT:    blr248entry:249  %0 = atomicrmw umax ptr %minimum, i8 %val monotonic250  ret void251 252}253 254define void @a64min(ptr nocapture dereferenceable(4) %minimum, i64 %val) #0 {255; CHECK-LABEL: a64min:256; CHECK:       # %bb.0: # %entry257; CHECK-NEXT:  .LBB12_1: # %entry258; CHECK-NEXT:    #259; CHECK-NEXT:    ldarx 5, 0, 3260; CHECK-NEXT:    cmpd 5, 4261; CHECK-NEXT:    bltlr 0262; CHECK-NEXT:  # %bb.2: # %entry263; CHECK-NEXT:    #264; CHECK-NEXT:    stdcx. 4, 0, 3265; CHECK-NEXT:    bne- 0, .LBB12_1266; CHECK-NEXT:  # %bb.3: # %entry267; CHECK-NEXT:    blr268entry:269  %0 = atomicrmw min ptr %minimum, i64 %val monotonic270  ret void271 272}273 274define void @a64max(ptr nocapture dereferenceable(4) %minimum, i64 %val) #0 {275; CHECK-LABEL: a64max:276; CHECK:       # %bb.0: # %entry277; CHECK-NEXT:  .LBB13_1: # %entry278; CHECK-NEXT:    #279; CHECK-NEXT:    ldarx 5, 0, 3280; CHECK-NEXT:    cmpd 5, 4281; CHECK-NEXT:    bgtlr 0282; CHECK-NEXT:  # %bb.2: # %entry283; CHECK-NEXT:    #284; CHECK-NEXT:    stdcx. 4, 0, 3285; CHECK-NEXT:    bne- 0, .LBB13_1286; CHECK-NEXT:  # %bb.3: # %entry287; CHECK-NEXT:    blr288entry:289  %0 = atomicrmw max ptr %minimum, i64 %val monotonic290  ret void291 292}293 294define void @a64umin(ptr nocapture dereferenceable(4) %minimum, i64 %val) #0 {295; CHECK-LABEL: a64umin:296; CHECK:       # %bb.0: # %entry297; CHECK-NEXT:  .LBB14_1: # %entry298; CHECK-NEXT:    #299; CHECK-NEXT:    ldarx 5, 0, 3300; CHECK-NEXT:    cmpld 5, 4301; CHECK-NEXT:    bltlr 0302; CHECK-NEXT:  # %bb.2: # %entry303; CHECK-NEXT:    #304; CHECK-NEXT:    stdcx. 4, 0, 3305; CHECK-NEXT:    bne- 0, .LBB14_1306; CHECK-NEXT:  # %bb.3: # %entry307; CHECK-NEXT:    blr308entry:309  %0 = atomicrmw umin ptr %minimum, i64 %val monotonic310  ret void311 312}313 314define void @a64umax(ptr nocapture dereferenceable(4) %minimum, i64 %val) #0 {315; CHECK-LABEL: a64umax:316; CHECK:       # %bb.0: # %entry317; CHECK-NEXT:  .LBB15_1: # %entry318; CHECK-NEXT:    #319; CHECK-NEXT:    ldarx 5, 0, 3320; CHECK-NEXT:    cmpld 5, 4321; CHECK-NEXT:    bgtlr 0322; CHECK-NEXT:  # %bb.2: # %entry323; CHECK-NEXT:    #324; CHECK-NEXT:    stdcx. 4, 0, 3325; CHECK-NEXT:    bne- 0, .LBB15_1326; CHECK-NEXT:  # %bb.3: # %entry327; CHECK-NEXT:    blr328entry:329  %0 = atomicrmw umax ptr %minimum, i64 %val monotonic330  ret void331 332}333 334define void @ae16min(ptr nocapture dereferenceable(4) %minimum, i16 %val) #0 {335; CHECK-LABEL: ae16min:336; CHECK:       # %bb.0: # %entry337; CHECK-NEXT:    li 5, 0338; CHECK-NEXT:    rlwinm 6, 3, 3, 27, 27339; CHECK-NEXT:    extsh 4, 4340; CHECK-NEXT:    ori 7, 5, 65535341; CHECK-NEXT:    xori 5, 6, 16342; CHECK-NEXT:    rldicr 3, 3, 0, 61343; CHECK-NEXT:    slw 8, 4, 5344; CHECK-NEXT:    slw 6, 7, 5345; CHECK-NEXT:    and 7, 8, 6346; CHECK-NEXT:  .LBB16_1: # %entry347; CHECK-NEXT:    #348; CHECK-NEXT:    lwarx 8, 0, 3349; CHECK-NEXT:    and 9, 8, 6350; CHECK-NEXT:    srw 9, 9, 5351; CHECK-NEXT:    extsh 9, 9352; CHECK-NEXT:    cmpw 9, 4353; CHECK-NEXT:    bltlr 0354; CHECK-NEXT:  # %bb.2: # %entry355; CHECK-NEXT:    #356; CHECK-NEXT:    andc 8, 8, 6357; CHECK-NEXT:    or 8, 7, 8358; CHECK-NEXT:    stwcx. 8, 0, 3359; CHECK-NEXT:    bne- 0, .LBB16_1360; CHECK-NEXT:  # %bb.3: # %entry361; CHECK-NEXT:    blr362entry:363  %0 = atomicrmw min ptr %minimum, i16 %val monotonic364  ret void365 366}367 368define void @ae16max(ptr nocapture dereferenceable(4) %minimum, i16 %val) #0 {369; CHECK-LABEL: ae16max:370; CHECK:       # %bb.0: # %entry371; CHECK-NEXT:    li 5, 0372; CHECK-NEXT:    rlwinm 6, 3, 3, 27, 27373; CHECK-NEXT:    extsh 4, 4374; CHECK-NEXT:    ori 7, 5, 65535375; CHECK-NEXT:    xori 5, 6, 16376; CHECK-NEXT:    rldicr 3, 3, 0, 61377; CHECK-NEXT:    slw 8, 4, 5378; CHECK-NEXT:    slw 6, 7, 5379; CHECK-NEXT:    and 7, 8, 6380; CHECK-NEXT:  .LBB17_1: # %entry381; CHECK-NEXT:    #382; CHECK-NEXT:    lwarx 8, 0, 3383; CHECK-NEXT:    and 9, 8, 6384; CHECK-NEXT:    srw 9, 9, 5385; CHECK-NEXT:    extsh 9, 9386; CHECK-NEXT:    cmpw 9, 4387; CHECK-NEXT:    bgtlr 0388; CHECK-NEXT:  # %bb.2: # %entry389; CHECK-NEXT:    #390; CHECK-NEXT:    andc 8, 8, 6391; CHECK-NEXT:    or 8, 7, 8392; CHECK-NEXT:    stwcx. 8, 0, 3393; CHECK-NEXT:    bne- 0, .LBB17_1394; CHECK-NEXT:  # %bb.3: # %entry395; CHECK-NEXT:    blr396entry:397  %0 = atomicrmw max ptr %minimum, i16 %val monotonic398  ret void399 400}401 402define void @ae16umin(ptr nocapture dereferenceable(4) %minimum, i16 %val) #0 {403; CHECK-LABEL: ae16umin:404; CHECK:       # %bb.0: # %entry405; CHECK-NEXT:    li 5, 0406; CHECK-NEXT:    rlwinm 6, 3, 3, 27, 27407; CHECK-NEXT:    ori 5, 5, 65535408; CHECK-NEXT:    xori 6, 6, 16409; CHECK-NEXT:    slw 4, 4, 6410; CHECK-NEXT:    slw 5, 5, 6411; CHECK-NEXT:    rldicr 3, 3, 0, 61412; CHECK-NEXT:    and 6, 4, 5413; CHECK-NEXT:  .LBB18_1: # %entry414; CHECK-NEXT:    #415; CHECK-NEXT:    lwarx 7, 0, 3416; CHECK-NEXT:    and 8, 7, 5417; CHECK-NEXT:    cmplw 8, 4418; CHECK-NEXT:    bltlr 0419; CHECK-NEXT:  # %bb.2: # %entry420; CHECK-NEXT:    #421; CHECK-NEXT:    andc 7, 7, 5422; CHECK-NEXT:    or 7, 6, 7423; CHECK-NEXT:    stwcx. 7, 0, 3424; CHECK-NEXT:    bne- 0, .LBB18_1425; CHECK-NEXT:  # %bb.3: # %entry426; CHECK-NEXT:    blr427entry:428  %0 = atomicrmw umin ptr %minimum, i16 %val monotonic429  ret void430 431}432 433define void @ae16umax(ptr nocapture dereferenceable(4) %minimum, i16 %val) #0 {434; CHECK-LABEL: ae16umax:435; CHECK:       # %bb.0: # %entry436; CHECK-NEXT:    li 5, 0437; CHECK-NEXT:    rlwinm 6, 3, 3, 27, 27438; CHECK-NEXT:    ori 5, 5, 65535439; CHECK-NEXT:    xori 6, 6, 16440; CHECK-NEXT:    slw 4, 4, 6441; CHECK-NEXT:    slw 5, 5, 6442; CHECK-NEXT:    rldicr 3, 3, 0, 61443; CHECK-NEXT:    and 6, 4, 5444; CHECK-NEXT:  .LBB19_1: # %entry445; CHECK-NEXT:    #446; CHECK-NEXT:    lwarx 7, 0, 3447; CHECK-NEXT:    and 8, 7, 5448; CHECK-NEXT:    cmplw 8, 4449; CHECK-NEXT:    bgtlr 0450; CHECK-NEXT:  # %bb.2: # %entry451; CHECK-NEXT:    #452; CHECK-NEXT:    andc 7, 7, 5453; CHECK-NEXT:    or 7, 6, 7454; CHECK-NEXT:    stwcx. 7, 0, 3455; CHECK-NEXT:    bne- 0, .LBB19_1456; CHECK-NEXT:  # %bb.3: # %entry457; CHECK-NEXT:    blr458entry:459  %0 = atomicrmw umax ptr %minimum, i16 %val monotonic460  ret void461 462}463 464define void @ae8min(ptr nocapture dereferenceable(4) %minimum, i8 %val) #0 {465; CHECK-LABEL: ae8min:466; CHECK:       # %bb.0: # %entry467; CHECK-NEXT:    rlwinm 5, 3, 3, 27, 28468; CHECK-NEXT:    li 6, 255469; CHECK-NEXT:    extsb 4, 4470; CHECK-NEXT:    xori 5, 5, 24471; CHECK-NEXT:    slw 7, 4, 5472; CHECK-NEXT:    slw 6, 6, 5473; CHECK-NEXT:    rldicr 3, 3, 0, 61474; CHECK-NEXT:    and 7, 7, 6475; CHECK-NEXT:  .LBB20_1: # %entry476; CHECK-NEXT:    #477; CHECK-NEXT:    lwarx 8, 0, 3478; CHECK-NEXT:    and 9, 8, 6479; CHECK-NEXT:    srw 9, 9, 5480; CHECK-NEXT:    extsb 9, 9481; CHECK-NEXT:    cmpw 9, 4482; CHECK-NEXT:    bltlr 0483; CHECK-NEXT:  # %bb.2: # %entry484; CHECK-NEXT:    #485; CHECK-NEXT:    andc 8, 8, 6486; CHECK-NEXT:    or 8, 7, 8487; CHECK-NEXT:    stwcx. 8, 0, 3488; CHECK-NEXT:    bne- 0, .LBB20_1489; CHECK-NEXT:  # %bb.3: # %entry490; CHECK-NEXT:    blr491entry:492  %0 = atomicrmw min ptr %minimum, i8 %val monotonic493  ret void494 495}496 497define void @ae8max(ptr nocapture dereferenceable(4) %minimum, i8 %val) #0 {498; CHECK-LABEL: ae8max:499; CHECK:       # %bb.0: # %entry500; CHECK-NEXT:    rlwinm 5, 3, 3, 27, 28501; CHECK-NEXT:    li 6, 255502; CHECK-NEXT:    extsb 4, 4503; CHECK-NEXT:    xori 5, 5, 24504; CHECK-NEXT:    slw 7, 4, 5505; CHECK-NEXT:    slw 6, 6, 5506; CHECK-NEXT:    rldicr 3, 3, 0, 61507; CHECK-NEXT:    and 7, 7, 6508; CHECK-NEXT:  .LBB21_1: # %entry509; CHECK-NEXT:    #510; CHECK-NEXT:    lwarx 8, 0, 3511; CHECK-NEXT:    and 9, 8, 6512; CHECK-NEXT:    srw 9, 9, 5513; CHECK-NEXT:    extsb 9, 9514; CHECK-NEXT:    cmpw 9, 4515; CHECK-NEXT:    bgtlr 0516; CHECK-NEXT:  # %bb.2: # %entry517; CHECK-NEXT:    #518; CHECK-NEXT:    andc 8, 8, 6519; CHECK-NEXT:    or 8, 7, 8520; CHECK-NEXT:    stwcx. 8, 0, 3521; CHECK-NEXT:    bne- 0, .LBB21_1522; CHECK-NEXT:  # %bb.3: # %entry523; CHECK-NEXT:    blr524entry:525  %0 = atomicrmw max ptr %minimum, i8 %val monotonic526  ret void527 528}529 530define void @ae8umin(ptr nocapture dereferenceable(4) %minimum, i8 %val) #0 {531; CHECK-LABEL: ae8umin:532; CHECK:       # %bb.0: # %entry533; CHECK-NEXT:    rlwinm 6, 3, 3, 27, 28534; CHECK-NEXT:    li 5, 255535; CHECK-NEXT:    xori 6, 6, 24536; CHECK-NEXT:    rldicr 3, 3, 0, 61537; CHECK-NEXT:    slw 4, 4, 6538; CHECK-NEXT:    slw 5, 5, 6539; CHECK-NEXT:    and 6, 4, 5540; CHECK-NEXT:  .LBB22_1: # %entry541; CHECK-NEXT:    #542; CHECK-NEXT:    lwarx 7, 0, 3543; CHECK-NEXT:    and 8, 7, 5544; CHECK-NEXT:    cmplw 8, 4545; CHECK-NEXT:    bltlr 0546; CHECK-NEXT:  # %bb.2: # %entry547; CHECK-NEXT:    #548; CHECK-NEXT:    andc 7, 7, 5549; CHECK-NEXT:    or 7, 6, 7550; CHECK-NEXT:    stwcx. 7, 0, 3551; CHECK-NEXT:    bne- 0, .LBB22_1552; CHECK-NEXT:  # %bb.3: # %entry553; CHECK-NEXT:    blr554entry:555  %0 = atomicrmw umin ptr %minimum, i8 %val monotonic556  ret void557 558}559 560define void @ae8umax(ptr nocapture dereferenceable(4) %minimum, i8 %val) #0 {561; CHECK-LABEL: ae8umax:562; CHECK:       # %bb.0: # %entry563; CHECK-NEXT:    rlwinm 6, 3, 3, 27, 28564; CHECK-NEXT:    li 5, 255565; CHECK-NEXT:    xori 6, 6, 24566; CHECK-NEXT:    rldicr 3, 3, 0, 61567; CHECK-NEXT:    slw 4, 4, 6568; CHECK-NEXT:    slw 5, 5, 6569; CHECK-NEXT:    and 6, 4, 5570; CHECK-NEXT:  .LBB23_1: # %entry571; CHECK-NEXT:    #572; CHECK-NEXT:    lwarx 7, 0, 3573; CHECK-NEXT:    and 8, 7, 5574; CHECK-NEXT:    cmplw 8, 4575; CHECK-NEXT:    bgtlr 0576; CHECK-NEXT:  # %bb.2: # %entry577; CHECK-NEXT:    #578; CHECK-NEXT:    andc 7, 7, 5579; CHECK-NEXT:    or 7, 6, 7580; CHECK-NEXT:    stwcx. 7, 0, 3581; CHECK-NEXT:    bne- 0, .LBB23_1582; CHECK-NEXT:  # %bb.3: # %entry583; CHECK-NEXT:    blr584entry:585  %0 = atomicrmw umax ptr %minimum, i8 %val monotonic586  ret void587 588}589 590attributes #0 = { nounwind "target-cpu"="ppc64" }591attributes #1 = { nounwind "target-cpu"="pwr8" }592 593