brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.0 KiB · 6b864ec Raw
184 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -relocation-model=pic -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \3; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s \4; RUN:  --implicit-check-not cmpw --implicit-check-not cmpd --implicit-check-not cmpl \5; RUN:  --check-prefixes=CHECK,BE6; RUN: llc -relocation-model=pic -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \7; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s \8; RUN:  --implicit-check-not cmpw --implicit-check-not cmpd --implicit-check-not cmpl \9; RUN:  --check-prefixes=CHECK,LE10; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \11; RUN:     -ppc-asm-full-reg-names -mcpu=pwr10 < %s | \12; RUN:     FileCheck %s --check-prefixes=CHECK-P10,CHECK-P10-LE13; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \14; RUN:     -ppc-asm-full-reg-names -mcpu=pwr10 < %s | \15; RUN:     FileCheck %s --check-prefixes=CHECK-P10,CHECK-P10-BE16; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \17; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr10 < %s | \18; RUN:   FileCheck %s --check-prefixes=CHECK-P10-CMP,CHECK-P10-CMP-LE \19; RUN:   --implicit-check-not cmpw --implicit-check-not cmpd \20; RUN:   --implicit-check-not cmpl21; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \22; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr10 < %s | \23; RUN:   FileCheck %s --check-prefixes=CHECK-P10-CMP,CHECK-P10-CMP-BE \24; RUN:   --implicit-check-not cmpw --implicit-check-not cmpd \25; RUN:   --implicit-check-not cmpl26 27%struct.tree_common = type { i8, [3 x i8] }28declare signext i32 @fn2(...) local_unnamed_addr #129 30; Function Attrs: nounwind31define dso_local i32 @testCompare1(ptr nocapture readonly %arg1) nounwind {32; BE-LABEL: testCompare1:33; BE:       # %bb.0: # %entry34; BE-NEXT:    mflr r035; BE-NEXT:    stdu r1, -112(r1)36; BE-NEXT:    addis r4, r2, testCompare1@toc@ha37; BE-NEXT:    std r0, 128(r1)38; BE-NEXT:    lbz r3, 0(r3)39; BE-NEXT:    lbz r4, testCompare1@toc@l(r4)40; BE-NEXT:    clrlwi r3, r3, 3141; BE-NEXT:    clrlwi r4, r4, 3142; BE-NEXT:    clrldi r3, r3, 3243; BE-NEXT:    clrldi r4, r4, 3244; BE-NEXT:    sub r3, r4, r345; BE-NEXT:    rldicl r3, r3, 1, 6346; BE-NEXT:    bl fn247; BE-NEXT:    nop48; BE-NEXT:    addi r1, r1, 11249; BE-NEXT:    ld r0, 16(r1)50; BE-NEXT:    mtlr r051; BE-NEXT:    blr52;53; LE-LABEL: testCompare1:54; LE:       # %bb.0: # %entry55; LE-NEXT:    mflr r056; LE-NEXT:    stdu r1, -32(r1)57; LE-NEXT:    addis r4, r2, testCompare1@toc@ha58; LE-NEXT:    std r0, 48(r1)59; LE-NEXT:    lbz r3, 0(r3)60; LE-NEXT:    lbz r4, testCompare1@toc@l(r4)61; LE-NEXT:    clrlwi r3, r3, 3162; LE-NEXT:    clrlwi r4, r4, 3163; LE-NEXT:    clrldi r3, r3, 3264; LE-NEXT:    clrldi r4, r4, 3265; LE-NEXT:    sub r3, r4, r366; LE-NEXT:    rldicl r3, r3, 1, 6367; LE-NEXT:    bl fn268; LE-NEXT:    nop69; LE-NEXT:    addi r1, r1, 3270; LE-NEXT:    ld r0, 16(r1)71; LE-NEXT:    mtlr r072; LE-NEXT:    blr73;74; CHECK-P10-LE-LABEL: testCompare1:75; CHECK-P10-LE:       # %bb.0: # %entry76; CHECK-P10-LE-NEXT:    plbz r4, testCompare1@PCREL(0), 177; CHECK-P10-LE-NEXT:    lbz r3, 0(r3)78; CHECK-P10-LE-NEXT:    clrlwi r4, r4, 3179; CHECK-P10-LE-NEXT:    clrlwi r3, r3, 3180; CHECK-P10-LE-NEXT:    cmplw r4, r381; CHECK-P10-LE-NEXT:    setbc r3, lt82; CHECK-P10-LE-NEXT:    b fn2@notoc83; CHECK-P10-LE-NEXT:    #TC_RETURNd8 fn2@notoc 084;85; CHECK-P10-BE-LABEL: testCompare1:86; CHECK-P10-BE:       # %bb.0: # %entry87; CHECK-P10-BE-NEXT:    mflr r088; CHECK-P10-BE-NEXT:    std r0, 16(r1)89; CHECK-P10-BE-NEXT:    stdu r1, -112(r1)90; CHECK-P10-BE-NEXT:    addis r4, r2, testCompare1@toc@ha91; CHECK-P10-BE-NEXT:    lbz r3, 0(r3)92; CHECK-P10-BE-NEXT:    lbz r4, testCompare1@toc@l(r4)93; CHECK-P10-BE-NEXT:    clrlwi r3, r3, 3194; CHECK-P10-BE-NEXT:    clrlwi r4, r4, 3195; CHECK-P10-BE-NEXT:    cmplw r4, r396; CHECK-P10-BE-NEXT:    setbc r3, lt97; CHECK-P10-BE-NEXT:    bl fn298; CHECK-P10-BE-NEXT:    nop99; CHECK-P10-BE-NEXT:    addi r1, r1, 112100; CHECK-P10-BE-NEXT:    ld r0, 16(r1)101; CHECK-P10-BE-NEXT:    mtlr r0102; CHECK-P10-BE-NEXT:    blr103;104; CHECK-P10-CMP-LE-LABEL: testCompare1:105; CHECK-P10-CMP-LE:       # %bb.0: # %entry106; CHECK-P10-CMP-LE-NEXT:    mflr r0107; CHECK-P10-CMP-LE-NEXT:    std r0, 16(r1)108; CHECK-P10-CMP-LE-NEXT:    stdu r1, -112(r1)109; CHECK-P10-CMP-LE-NEXT:    addis r4, r2, testCompare1@toc@ha110; CHECK-P10-CMP-LE-NEXT:    lbz r3, 0(r3)111; CHECK-P10-CMP-LE-NEXT:    lbz r4, testCompare1@toc@l(r4)112; CHECK-P10-CMP-LE-NEXT:    clrlwi r3, r3, 31113; CHECK-P10-CMP-LE-NEXT:    clrldi r3, r3, 32114; CHECK-P10-CMP-LE-NEXT:    clrlwi r4, r4, 31115; CHECK-P10-CMP-LE-NEXT:    clrldi r4, r4, 32116; CHECK-P10-CMP-LE-NEXT:    sub r3, r4, r3117; CHECK-P10-CMP-LE-NEXT:    rldicl r3, r3, 1, 63118; CHECK-P10-CMP-LE-NEXT:    bl fn2119; CHECK-P10-CMP-LE-NEXT:    nop120; CHECK-P10-CMP-LE-NEXT:    addi r1, r1, 112121; CHECK-P10-CMP-LE-NEXT:    ld r0, 16(r1)122; CHECK-P10-CMP-LE-NEXT:    mtlr r0123; CHECK-P10-CMP-LE-NEXT:    blr124;125; CHECK-P10-CMP-BE-LABEL: testCompare1:126; CHECK-P10-CMP-BE:       # %bb.0: # %entry127; CHECK-P10-CMP-BE-NEXT:    plbz r4, testCompare1@PCREL(0), 1128; CHECK-P10-CMP-BE-NEXT:    lbz r3, 0(r3)129; CHECK-P10-CMP-BE-NEXT:    clrlwi r4, r4, 31130; CHECK-P10-CMP-BE-NEXT:    clrlwi r3, r3, 31131; CHECK-P10-CMP-BE-NEXT:    clrldi r4, r4, 32132; CHECK-P10-CMP-BE-NEXT:    clrldi r3, r3, 32133; CHECK-P10-CMP-BE-NEXT:    sub r3, r4, r3134; CHECK-P10-CMP-BE-NEXT:    rldicl r3, r3, 1, 63135; CHECK-P10-CMP-BE-NEXT:    b fn2@notoc136; CHECK-P10-CMP-BE-NEXT:    #TC_RETURNd8 fn2@notoc 0137entry:138  %bf.load = load i8, ptr @testCompare1, align 4139  %bf.clear = and i8 %bf.load, 1140  %bf.load1 = load i8, ptr %arg1, align 4141  %bf.clear2 = and i8 %bf.load1, 1142  %cmp = icmp ult i8 %bf.clear, %bf.clear2143  %conv = zext i1 %cmp to i32144  %call = tail call signext i32 @fn2(i32 signext %conv) #2145  ret i32 undef146}147 148; Function Attrs: norecurse nounwind readnone149define dso_local signext i32 @testCompare2(i32 zeroext %a, i32 zeroext %b) {150; CHECK-LABEL: testCompare2:151; CHECK:       # %bb.0: # %entry152; CHECK-NEXT:    clrlwi r3, r3, 31153; CHECK-NEXT:    clrlwi r4, r4, 31154; CHECK-NEXT:    clrldi r3, r3, 32155; CHECK-NEXT:    clrldi r4, r4, 32156; CHECK-NEXT:    sub r3, r3, r4157; CHECK-NEXT:    rldicl r3, r3, 1, 63158; CHECK-NEXT:    blr159;160; CHECK-P10-LABEL: testCompare2:161; CHECK-P10:       # %bb.0: # %entry162; CHECK-P10-NEXT:    clrlwi r3, r3, 31163; CHECK-P10-NEXT:    clrlwi r4, r4, 31164; CHECK-P10-NEXT:    cmplw r3, r4165; CHECK-P10-NEXT:    setbc r3, lt166; CHECK-P10-NEXT:    blr167;168; CHECK-P10-CMP-LABEL: testCompare2:169; CHECK-P10-CMP:       # %bb.0: # %entry170; CHECK-P10-CMP-NEXT:    clrlwi r3, r3, 31171; CHECK-P10-CMP-NEXT:    clrlwi r4, r4, 31172; CHECK-P10-CMP-NEXT:    clrldi r3, r3, 32173; CHECK-P10-CMP-NEXT:    clrldi r4, r4, 32174; CHECK-P10-CMP-NEXT:    sub r3, r3, r4175; CHECK-P10-CMP-NEXT:    rldicl r3, r3, 1, 63176; CHECK-P10-CMP-NEXT:    blr177entry:178  %and = and i32 %a, 1179  %and1 = and i32 %b, 1180  %cmp = icmp ult i32 %and, %and1181  %conv = zext i1 %cmp to i32182  ret i32 %conv183}184