brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.6 KiB · 081b1b0 Raw
242 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -O2 \3; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s --check-prefix=CHECK-BE \4; RUN:  --implicit-check-not cmpw --implicit-check-not cmpd --implicit-check-not cmpl5; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -O2 \6; RUN:   -ppc-gpr-icmps=all -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck %s --check-prefix=CHECK-LE \7; RUN:  --implicit-check-not cmpw --implicit-check-not cmpd --implicit-check-not cmpl8 9@glob = dso_local local_unnamed_addr global i64 0, align 810 11; Function Attrs: norecurse nounwind readnone12define i64 @test_llequll(i64 %a, i64 %b) {13; CHECK-LABEL: test_llequll:14; CHECK:       # %bb.0: # %entry15; CHECK-NEXT:    xor r3, r3, r416; CHECK-NEXT:    cntlzd r3, r317; CHECK-NEXT:    rldicl r3, r3, 58, 6318; CHECK-NEXT:    blr19; CHECK-BE-LABEL: test_llequll:20; CHECK-BE:       # %bb.0: # %entry21; CHECK-BE-NEXT:    xor r3, r3, r422; CHECK-BE-NEXT:    cntlzd r3, r323; CHECK-BE-NEXT:    rldicl r3, r3, 58, 6324; CHECK-BE-NEXT:    blr25;26; CHECK-LE-LABEL: test_llequll:27; CHECK-LE:       # %bb.0: # %entry28; CHECK-LE-NEXT:    xor r3, r3, r429; CHECK-LE-NEXT:    cntlzd r3, r330; CHECK-LE-NEXT:    rldicl r3, r3, 58, 6331; CHECK-LE-NEXT:    blr32entry:33  %cmp = icmp eq i64 %a, %b34  %conv1 = zext i1 %cmp to i6435  ret i64 %conv136}37 38; Function Attrs: norecurse nounwind readnone39define i64 @test_llequll_sext(i64 %a, i64 %b) {40; CHECK-LABEL: test_llequll_sext:41; CHECK:       # %bb.0: # %entry42; CHECK-NEXT:    xor r3, r3, r443; CHECK-NEXT:    addic r3, r3, -144; CHECK-NEXT:    subfe r3, r3, r345; CHECK-NEXT:    blr46; CHECK-BE-LABEL: test_llequll_sext:47; CHECK-BE:       # %bb.0: # %entry48; CHECK-BE-NEXT:    xor r3, r3, r449; CHECK-BE-NEXT:    addic r3, r3, -150; CHECK-BE-NEXT:    subfe r3, r3, r351; CHECK-BE-NEXT:    blr52;53; CHECK-LE-LABEL: test_llequll_sext:54; CHECK-LE:       # %bb.0: # %entry55; CHECK-LE-NEXT:    xor r3, r3, r456; CHECK-LE-NEXT:    addic r3, r3, -157; CHECK-LE-NEXT:    subfe r3, r3, r358; CHECK-LE-NEXT:    blr59entry:60  %cmp = icmp eq i64 %a, %b61  %conv1 = sext i1 %cmp to i6462  ret i64 %conv163}64 65; Function Attrs: norecurse nounwind readnone66define i64 @test_llequll_z(i64 %a) {67; CHECK-LABEL: test_llequll_z:68; CHECK:       # %bb.0: # %entry69; CHECK-NEXT:    cntlzd r3, r370; CHECK-NEXT:    rldicl r3, r3, 58, 6371; CHECK-NEXT:    blr72; CHECK-BE-LABEL: test_llequll_z:73; CHECK-BE:       # %bb.0: # %entry74; CHECK-BE-NEXT:    cntlzd r3, r375; CHECK-BE-NEXT:    rldicl r3, r3, 58, 6376; CHECK-BE-NEXT:    blr77;78; CHECK-LE-LABEL: test_llequll_z:79; CHECK-LE:       # %bb.0: # %entry80; CHECK-LE-NEXT:    cntlzd r3, r381; CHECK-LE-NEXT:    rldicl r3, r3, 58, 6382; CHECK-LE-NEXT:    blr83entry:84  %cmp = icmp eq i64 %a, 085  %conv1 = zext i1 %cmp to i6486  ret i64 %conv187}88 89; Function Attrs: norecurse nounwind readnone90define i64 @test_llequll_sext_z(i64 %a) {91; CHECK-LABEL: test_llequll_sext_z:92; CHECK:       # %bb.0: # %entry93; CHECK-NEXT:    addic r3, r3, -194; CHECK-NEXT:    subfe r3, r3, r395; CHECK-NEXT:    blr96; CHECK-BE-LABEL: test_llequll_sext_z:97; CHECK-BE:       # %bb.0: # %entry98; CHECK-BE-NEXT:    addic r3, r3, -199; CHECK-BE-NEXT:    subfe r3, r3, r3100; CHECK-BE-NEXT:    blr101;102; CHECK-LE-LABEL: test_llequll_sext_z:103; CHECK-LE:       # %bb.0: # %entry104; CHECK-LE-NEXT:    addic r3, r3, -1105; CHECK-LE-NEXT:    subfe r3, r3, r3106; CHECK-LE-NEXT:    blr107entry:108  %cmp = icmp eq i64 %a, 0109  %conv1 = sext i1 %cmp to i64110  ret i64 %conv1111}112 113; Function Attrs: norecurse nounwind114define dso_local void @test_llequll_store(i64 %a, i64 %b) {115; CHECK-LABEL: test_llequll_store:116; CHECK:       # %bb.0: # %entry117; CHECK-NEXT:    xor r3, r3, r4118; CHECK-NEXT:    addis r5, r2, glob@toc@ha119; CHECK-NEXT:    cntlzd r3, r3120; CHECK-NEXT:    rldicl r3, r3, 58, 63121; CHECK-NEXT:    std r3, glob@toc@l(r5)122; CHECK-NEXT:    blr123; CHECK-BE-LABEL: test_llequll_store:124; CHECK-BE:       # %bb.0: # %entry125; CHECK-BE-NEXT:    xor r3, r3, r4126; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha127; CHECK-BE-NEXT:    cntlzd r3, r3128; CHECK-BE-NEXT:    rldicl r3, r3, 58, 63129; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)130; CHECK-BE-NEXT:    blr131;132; CHECK-LE-LABEL: test_llequll_store:133; CHECK-LE:       # %bb.0: # %entry134; CHECK-LE-NEXT:    xor r3, r3, r4135; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha136; CHECK-LE-NEXT:    cntlzd r3, r3137; CHECK-LE-NEXT:    rldicl r3, r3, 58, 63138; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)139; CHECK-LE-NEXT:    blr140entry:141  %cmp = icmp eq i64 %a, %b142  %conv1 = zext i1 %cmp to i64143  store i64 %conv1, ptr @glob, align 8144  ret void145}146 147; Function Attrs: norecurse nounwind148define dso_local void @test_llequll_sext_store(i64 %a, i64 %b) {149; CHECK-LABEL: test_llequll_sext_store:150; CHECK:       # %bb.0: # %entry151; CHECK-NEXT:    xor r3, r3, r4152; CHECK-NEXT:    addis r5, r2, glob@toc@ha153; CHECK-NEXT:    addic r3, r3, -1154; CHECK-NEXT:    subfe r3, r3, r3155; CHECK-NEXT:    std r3, glob@toc@l(r5)156; CHECK-NEXT:    blr157; CHECK-BE-LABEL: test_llequll_sext_store:158; CHECK-BE:       # %bb.0: # %entry159; CHECK-BE-NEXT:    xor r3, r3, r4160; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha161; CHECK-BE-NEXT:    addic r3, r3, -1162; CHECK-BE-NEXT:    subfe r3, r3, r3163; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)164; CHECK-BE-NEXT:    blr165;166; CHECK-LE-LABEL: test_llequll_sext_store:167; CHECK-LE:       # %bb.0: # %entry168; CHECK-LE-NEXT:    xor r3, r3, r4169; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha170; CHECK-LE-NEXT:    addic r3, r3, -1171; CHECK-LE-NEXT:    subfe r3, r3, r3172; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)173; CHECK-LE-NEXT:    blr174entry:175  %cmp = icmp eq i64 %a, %b176  %conv1 = sext i1 %cmp to i64177  store i64 %conv1, ptr @glob, align 8178  ret void179}180 181; Function Attrs: norecurse nounwind182define dso_local void @test_llequll_z_store(i64 %a) {183; CHECK-LABEL: test_llequll_z_store:184; CHECK:       # %bb.0: # %entry185; CHECK-NEXT:    cntlzd r3, r3186; CHECK-NEXT:    addis r4, r2, glob@toc@ha187; CHECK-NEXT:    rldicl r3, r3, 58, 63188; CHECK-NEXT:    std r3, glob@toc@l(r4)189; CHECK-NEXT:    blr190; CHECK-BE-LABEL: test_llequll_z_store:191; CHECK-BE:       # %bb.0: # %entry192; CHECK-BE-NEXT:    cntlzd r3, r3193; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha194; CHECK-BE-NEXT:    rldicl r3, r3, 58, 63195; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)196; CHECK-BE-NEXT:    blr197;198; CHECK-LE-LABEL: test_llequll_z_store:199; CHECK-LE:       # %bb.0: # %entry200; CHECK-LE-NEXT:    cntlzd r3, r3201; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha202; CHECK-LE-NEXT:    rldicl r3, r3, 58, 63203; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)204; CHECK-LE-NEXT:    blr205entry:206  %cmp = icmp eq i64 %a, 0207  %conv1 = zext i1 %cmp to i64208  store i64 %conv1, ptr @glob, align 8209  ret void210}211 212; Function Attrs: norecurse nounwind213define dso_local void @test_llequll_sext_z_store(i64 %a) {214; CHECK-LABEL: test_llequll_sext_z_store:215; CHECK:       # %bb.0: # %entry216; CHECK-NEXT:    addic r3, r3, -1217; CHECK-NEXT:    addis r4, r2, glob@toc@ha218; CHECK-NEXT:    subfe r3, r3, r3219; CHECK-NEXT:    std r3, glob@toc@l(r4)220; CHECK-NEXT:    blr221; CHECK-BE-LABEL: test_llequll_sext_z_store:222; CHECK-BE:       # %bb.0: # %entry223; CHECK-BE-NEXT:    addic r3, r3, -1224; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha225; CHECK-BE-NEXT:    subfe r3, r3, r3226; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)227; CHECK-BE-NEXT:    blr228;229; CHECK-LE-LABEL: test_llequll_sext_z_store:230; CHECK-LE:       # %bb.0: # %entry231; CHECK-LE-NEXT:    addic r3, r3, -1232; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha233; CHECK-LE-NEXT:    subfe r3, r3, r3234; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)235; CHECK-LE-NEXT:    blr236entry:237  %cmp = icmp eq i64 %a, 0238  %conv1 = sext i1 %cmp to i64239  store i64 %conv1, ptr @glob, align 8240  ret void241}242