102 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=powerpc64le-linux-gnu < %s | FileCheck %s3define i16 @SEXTParam(i16 signext %0) #0 {4; CHECK-LABEL: SEXTParam:5; CHECK: # %bb.0: # %top6; CHECK-NEXT: li 4, 07; CHECK-NEXT: sth 4, -4(1)8; CHECK-NEXT: addi 4, 1, -49; CHECK-NEXT: lwsync10; CHECK-NEXT: .LBB0_1: # %top11; CHECK-NEXT: #12; CHECK-NEXT: lharx 5, 0, 413; CHECK-NEXT: extsh 5, 514; CHECK-NEXT: cmpw 5, 315; CHECK-NEXT: blt 0, .LBB0_316; CHECK-NEXT: # %bb.2: # %top17; CHECK-NEXT: #18; CHECK-NEXT: sthcx. 3, 0, 419; CHECK-NEXT: bne- 0, .LBB0_120; CHECK-NEXT: .LBB0_3: # %top21; CHECK-NEXT: lwsync22; CHECK-NEXT: lhz 3, -4(1)23; CHECK-NEXT: cmpd 7, 3, 324; CHECK-NEXT: bne- 7, .+425; CHECK-NEXT: isync26; CHECK-NEXT: blr27top:28 %1 = alloca i16, align 429 store i16 0, ptr %1, align 430 %rv.i = atomicrmw min ptr %1, i16 %0 acq_rel31 %rv.i2 = load atomic i16, ptr %1 acquire, align 1632 ret i16 %rv.i233}34 35define i16 @noSEXTParam(i16 %0) #0 {36; CHECK-LABEL: noSEXTParam:37; CHECK: # %bb.0: # %top38; CHECK-NEXT: li 4, 039; CHECK-NEXT: extsh 3, 340; CHECK-NEXT: sth 4, -4(1)41; CHECK-NEXT: addi 4, 1, -442; CHECK-NEXT: lwsync43; CHECK-NEXT: .LBB1_1: # %top44; CHECK-NEXT: #45; CHECK-NEXT: lharx 5, 0, 446; CHECK-NEXT: extsh 5, 547; CHECK-NEXT: cmpw 5, 348; CHECK-NEXT: blt 0, .LBB1_349; CHECK-NEXT: # %bb.2: # %top50; CHECK-NEXT: #51; CHECK-NEXT: sthcx. 3, 0, 452; CHECK-NEXT: bne- 0, .LBB1_153; CHECK-NEXT: .LBB1_3: # %top54; CHECK-NEXT: lwsync55; CHECK-NEXT: lhz 3, -4(1)56; CHECK-NEXT: cmpd 7, 3, 357; CHECK-NEXT: bne- 7, .+458; CHECK-NEXT: isync59; CHECK-NEXT: blr60top:61 %1 = alloca i16, align 462 store i16 0, ptr %1, align 463 %rv.i = atomicrmw min ptr %1, i16 %0 acq_rel64 %rv.i2 = load atomic i16, ptr %1 acquire, align 1665 ret i16 %rv.i266}67 68define i16 @noSEXTLoad(ptr %p) #0 {69; CHECK-LABEL: noSEXTLoad:70; CHECK: # %bb.0: # %top71; CHECK-NEXT: li 4, 072; CHECK-NEXT: lha 3, 0(3)73; CHECK-NEXT: sth 4, -4(1)74; CHECK-NEXT: addi 4, 1, -475; CHECK-NEXT: lwsync76; CHECK-NEXT: .LBB2_1: # %top77; CHECK-NEXT: #78; CHECK-NEXT: lharx 5, 0, 479; CHECK-NEXT: extsh 5, 580; CHECK-NEXT: cmpw 5, 381; CHECK-NEXT: blt 0, .LBB2_382; CHECK-NEXT: # %bb.2: # %top83; CHECK-NEXT: #84; CHECK-NEXT: sthcx. 3, 0, 485; CHECK-NEXT: bne- 0, .LBB2_186; CHECK-NEXT: .LBB2_3: # %top87; CHECK-NEXT: lwsync88; CHECK-NEXT: lhz 3, -4(1)89; CHECK-NEXT: cmpd 7, 3, 390; CHECK-NEXT: bne- 7, .+491; CHECK-NEXT: isync92; CHECK-NEXT: blr93top:94 %0 = load i16, ptr %p, align 295 %1 = alloca i16, align 496 store i16 0, ptr %1, align 497 %rv.i = atomicrmw min ptr %1, i16 %0 acq_rel98 %rv.i2 = load atomic i16, ptr %1 acquire, align 1699 ret i16 %rv.i2100}101attributes #0 = { nounwind }102