brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · da4c192 Raw
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