brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · 9d62a1c 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 cmplw --implicit-check-not cmpld20; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \21; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr10 < %s | \22; RUN:   FileCheck %s --check-prefixes=CHECK-P10-CMP,CHECK-P10-CMP-BE \23; RUN:   --implicit-check-not cmplw --implicit-check-not cmpld24 25%struct.tree_common = type { i8, [3 x i8] }26declare signext i32 @fn2(...) local_unnamed_addr #127 28; Function Attrs: nounwind29define dso_local i32 @testCompare1(ptr nocapture readonly %arg1) nounwind {30; BE-LABEL: testCompare1:31; BE:       # %bb.0: # %entry32; BE-NEXT:    mflr r033; BE-NEXT:    stdu r1, -112(r1)34; BE-NEXT:    addis r4, r2, testCompare1@toc@ha35; BE-NEXT:    std r0, 128(r1)36; BE-NEXT:    lbz r3, 0(r3)37; BE-NEXT:    lbz r4, testCompare1@toc@l(r4)38; BE-NEXT:    clrlwi r3, r3, 3139; BE-NEXT:    clrlwi r4, r4, 3140; BE-NEXT:    clrldi r3, r3, 3241; BE-NEXT:    clrldi r4, r4, 3242; BE-NEXT:    sub r3, r3, r443; BE-NEXT:    rldicl r3, r3, 1, 6344; BE-NEXT:    bl fn245; BE-NEXT:    nop46; BE-NEXT:    addi r1, r1, 11247; BE-NEXT:    ld r0, 16(r1)48; BE-NEXT:    mtlr r049; BE-NEXT:    blr50;51; LE-LABEL: testCompare1:52; LE:       # %bb.0: # %entry53; LE-NEXT:    mflr r054; LE-NEXT:    stdu r1, -32(r1)55; LE-NEXT:    addis r4, r2, testCompare1@toc@ha56; LE-NEXT:    std r0, 48(r1)57; LE-NEXT:    lbz r3, 0(r3)58; LE-NEXT:    lbz r4, testCompare1@toc@l(r4)59; LE-NEXT:    clrlwi r3, r3, 3160; LE-NEXT:    clrlwi r4, r4, 3161; LE-NEXT:    clrldi r3, r3, 3262; LE-NEXT:    clrldi r4, r4, 3263; LE-NEXT:    sub r3, r3, r464; LE-NEXT:    rldicl r3, r3, 1, 6365; LE-NEXT:    bl fn266; LE-NEXT:    nop67; LE-NEXT:    addi r1, r1, 3268; LE-NEXT:    ld r0, 16(r1)69; LE-NEXT:    mtlr r070; LE-NEXT:    blr71;72; CHECK-P10-LE-LABEL: testCompare1:73; CHECK-P10-LE:       # %bb.0: # %entry74; CHECK-P10-LE-NEXT:    plbz r4, testCompare1@PCREL(0), 175; CHECK-P10-LE-NEXT:    lbz r3, 0(r3)76; CHECK-P10-LE-NEXT:    clrlwi r4, r4, 3177; CHECK-P10-LE-NEXT:    clrlwi r3, r3, 3178; CHECK-P10-LE-NEXT:    cmplw r4, r379; CHECK-P10-LE-NEXT:    setbc r3, gt80; CHECK-P10-LE-NEXT:    b fn2@notoc81; CHECK-P10-LE-NEXT:    #TC_RETURNd8 fn2@notoc 082;83; CHECK-P10-BE-LABEL: testCompare1:84; CHECK-P10-BE:       # %bb.0: # %entry85; CHECK-P10-BE-NEXT:    mflr r086; CHECK-P10-BE-NEXT:    std r0, 16(r1)87; CHECK-P10-BE-NEXT:    stdu r1, -112(r1)88; CHECK-P10-BE-NEXT:    addis r4, r2, testCompare1@toc@ha89; CHECK-P10-BE-NEXT:    lbz r3, 0(r3)90; CHECK-P10-BE-NEXT:    lbz r4, testCompare1@toc@l(r4)91; CHECK-P10-BE-NEXT:    clrlwi r3, r3, 3192; CHECK-P10-BE-NEXT:    clrlwi r4, r4, 3193; CHECK-P10-BE-NEXT:    cmplw r4, r394; CHECK-P10-BE-NEXT:    setbc r3, gt95; CHECK-P10-BE-NEXT:    bl fn296; CHECK-P10-BE-NEXT:    nop97; CHECK-P10-BE-NEXT:    addi r1, r1, 11298; CHECK-P10-BE-NEXT:    ld r0, 16(r1)99; CHECK-P10-BE-NEXT:    mtlr r0100; CHECK-P10-BE-NEXT:    blr101;102; CHECK-P10-CMP-LE-LABEL: testCompare1:103; CHECK-P10-CMP-LE:       # %bb.0: # %entry104; CHECK-P10-CMP-LE-NEXT:    mflr r0105; CHECK-P10-CMP-LE-NEXT:    std r0, 16(r1)106; CHECK-P10-CMP-LE-NEXT:    stdu r1, -112(r1)107; CHECK-P10-CMP-LE-NEXT:    addis r4, r2, testCompare1@toc@ha108; CHECK-P10-CMP-LE-NEXT:    lbz r3, 0(r3)109; CHECK-P10-CMP-LE-NEXT:    lbz r4, testCompare1@toc@l(r4)110; CHECK-P10-CMP-LE-NEXT:    clrlwi r3, r3, 31111; CHECK-P10-CMP-LE-NEXT:    clrldi r3, r3, 32112; CHECK-P10-CMP-LE-NEXT:    clrlwi r4, r4, 31113; CHECK-P10-CMP-LE-NEXT:    clrldi r4, r4, 32114; CHECK-P10-CMP-LE-NEXT:    sub r3, r3, r4115; CHECK-P10-CMP-LE-NEXT:    rldicl r3, r3, 1, 63116; CHECK-P10-CMP-LE-NEXT:    bl fn2117; CHECK-P10-CMP-LE-NEXT:    nop118; CHECK-P10-CMP-LE-NEXT:    addi r1, r1, 112119; CHECK-P10-CMP-LE-NEXT:    ld r0, 16(r1)120; CHECK-P10-CMP-LE-NEXT:    mtlr r0121; CHECK-P10-CMP-LE-NEXT:    blr122;123; CHECK-P10-CMP-BE-LABEL: testCompare1:124; CHECK-P10-CMP-BE:       # %bb.0: # %entry125; CHECK-P10-CMP-BE-NEXT:    plbz r4, testCompare1@PCREL(0), 1126; CHECK-P10-CMP-BE-NEXT:    lbz r3, 0(r3)127; CHECK-P10-CMP-BE-NEXT:    clrlwi r4, r4, 31128; CHECK-P10-CMP-BE-NEXT:    clrlwi r3, r3, 31129; CHECK-P10-CMP-BE-NEXT:    clrldi r4, r4, 32130; CHECK-P10-CMP-BE-NEXT:    clrldi r3, r3, 32131; CHECK-P10-CMP-BE-NEXT:    sub r3, r3, r4132; CHECK-P10-CMP-BE-NEXT:    rldicl r3, r3, 1, 63133; CHECK-P10-CMP-BE-NEXT:    b fn2@notoc134; CHECK-P10-CMP-BE-NEXT:    #TC_RETURNd8 fn2@notoc 0135 136entry:137  %bf.load = load i8, ptr @testCompare1, align 4138  %bf.clear = and i8 %bf.load, 1139  %bf.load1 = load i8, ptr %arg1, align 4140  %bf.clear2 = and i8 %bf.load1, 1141  %cmp = icmp ugt i8 %bf.clear, %bf.clear2142  %conv = zext i1 %cmp to i32143  %call = tail call signext i32 @fn2(i32 signext %conv) #2144  ret i32 undef145}146 147; Function Attrs: norecurse nounwind readnone148define dso_local signext i32 @testCompare2(i32 zeroext %a, i32 zeroext %b) {149; CHECK-LABEL: testCompare2:150; CHECK:       # %bb.0: # %entry151; CHECK-NEXT:    clrlwi r3, r3, 31152; CHECK-NEXT:    clrlwi r4, r4, 31153; CHECK-NEXT:    clrldi r3, r3, 32154; CHECK-NEXT:    clrldi r4, r4, 32155; CHECK-NEXT:    sub r3, r4, r3156; CHECK-NEXT:    rldicl r3, r3, 1, 63157; CHECK-NEXT:    blr158;159; CHECK-P10-LABEL: testCompare2:160; CHECK-P10:       # %bb.0: # %entry161; CHECK-P10-NEXT:    clrlwi r3, r3, 31162; CHECK-P10-NEXT:    clrlwi r4, r4, 31163; CHECK-P10-NEXT:    cmplw r3, r4164; CHECK-P10-NEXT:    setbc r3, gt165; CHECK-P10-NEXT:    blr166;167; CHECK-P10-CMP-LABEL: testCompare2:168; CHECK-P10-CMP:       # %bb.0: # %entry169; CHECK-P10-CMP-NEXT:    clrlwi r3, r3, 31170; CHECK-P10-CMP-NEXT:    clrlwi r4, r4, 31171; CHECK-P10-CMP-NEXT:    clrldi r3, r3, 32172; CHECK-P10-CMP-NEXT:    clrldi r4, r4, 32173; CHECK-P10-CMP-NEXT:    sub r3, r4, r3174; CHECK-P10-CMP-NEXT:    rldicl r3, r3, 1, 63175; CHECK-P10-CMP-NEXT:    blr176 177entry:178  %and = and i32 %a, 1179  %and1 = and i32 %b, 1180  %cmp = icmp ugt i32 %and, %and1181  %conv = zext i1 %cmp to i32182  ret i32 %conv183}184