brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.8 KiB · 68dc0bd Raw
254 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 i8 0, align 110 11; Function Attrs: norecurse nounwind readnone12define i64 @test_llequc(i8 zeroext %a, i8 zeroext %b) {13; CHECK-LABEL: test_llequc:14; CHECK:       # %bb.0: # %entry15; CHECK-NEXT:    xor r3, r3, r416; CHECK-NEXT:    cntlzw r3, r317; CHECK-NEXT:    srwi r3, r3, 518; CHECK-NEXT:    blr19; CHECK-BE-LABEL: test_llequc:20; CHECK-BE:       # %bb.0: # %entry21; CHECK-BE-NEXT:    xor r3, r3, r422; CHECK-BE-NEXT:    cntlzw r3, r323; CHECK-BE-NEXT:    srwi r3, r3, 524; CHECK-BE-NEXT:    blr25;26; CHECK-LE-LABEL: test_llequc:27; CHECK-LE:       # %bb.0: # %entry28; CHECK-LE-NEXT:    xor r3, r3, r429; CHECK-LE-NEXT:    cntlzw r3, r330; CHECK-LE-NEXT:    srwi r3, r3, 531; CHECK-LE-NEXT:    blr32entry:33  %cmp = icmp eq i8 %a, %b34  %conv3 = zext i1 %cmp to i6435  ret i64 %conv336}37 38; Function Attrs: norecurse nounwind readnone39define i64 @test_llequc_sext(i8 zeroext %a, i8 zeroext %b) {40; CHECK-LABEL: test_llequc_sext:41; CHECK:       # %bb.0: # %entry42; CHECK-NEXT:    xor r3, r3, r443; CHECK-NEXT:    cntlzw r3, r344; CHECK-NEXT:    srwi r3, r3, 545; CHECK-NEXT:    neg r3, r346; CHECK-NEXT:    blr47; CHECK-BE-LABEL: test_llequc_sext:48; CHECK-BE:       # %bb.0: # %entry49; CHECK-BE-NEXT:    xor r3, r3, r450; CHECK-BE-NEXT:    cntlzw r3, r351; CHECK-BE-NEXT:    srwi r3, r3, 552; CHECK-BE-NEXT:    neg r3, r353; CHECK-BE-NEXT:    blr54;55; CHECK-LE-LABEL: test_llequc_sext:56; CHECK-LE:       # %bb.0: # %entry57; CHECK-LE-NEXT:    xor r3, r3, r458; CHECK-LE-NEXT:    cntlzw r3, r359; CHECK-LE-NEXT:    srwi r3, r3, 560; CHECK-LE-NEXT:    neg r3, r361; CHECK-LE-NEXT:    blr62entry:63  %cmp = icmp eq i8 %a, %b64  %conv3 = sext i1 %cmp to i6465  ret i64 %conv366}67 68; Function Attrs: norecurse nounwind readnone69define i64 @test_llequc_z(i8 zeroext %a) {70; CHECK-LABEL: test_llequc_z:71; CHECK:       # %bb.0: # %entry72; CHECK-NEXT:    cntlzw r3, r373; CHECK-NEXT:    srwi r3, r3, 574; CHECK-NEXT:    blr75; CHECK-BE-LABEL: test_llequc_z:76; CHECK-BE:       # %bb.0: # %entry77; CHECK-BE-NEXT:    cntlzw r3, r378; CHECK-BE-NEXT:    srwi r3, r3, 579; CHECK-BE-NEXT:    blr80;81; CHECK-LE-LABEL: test_llequc_z:82; CHECK-LE:       # %bb.0: # %entry83; CHECK-LE-NEXT:    cntlzw r3, r384; CHECK-LE-NEXT:    srwi r3, r3, 585; CHECK-LE-NEXT:    blr86entry:87  %cmp = icmp eq i8 %a, 088  %conv2 = zext i1 %cmp to i6489  ret i64 %conv290}91 92; Function Attrs: norecurse nounwind readnone93define i64 @test_llequc_sext_z(i8 zeroext %a) {94; CHECK-LABEL: test_llequc_sext_z:95; CHECK:       # %bb.0: # %entry96; CHECK-NEXT:    cntlzw r3, r397; CHECK-NEXT:    srwi r3, r3, 598; CHECK-NEXT:    neg r3, r399; CHECK-NEXT:    blr100; CHECK-BE-LABEL: test_llequc_sext_z:101; CHECK-BE:       # %bb.0: # %entry102; CHECK-BE-NEXT:    cntlzw r3, r3103; CHECK-BE-NEXT:    srwi r3, r3, 5104; CHECK-BE-NEXT:    neg r3, r3105; CHECK-BE-NEXT:    blr106;107; CHECK-LE-LABEL: test_llequc_sext_z:108; CHECK-LE:       # %bb.0: # %entry109; CHECK-LE-NEXT:    cntlzw r3, r3110; CHECK-LE-NEXT:    srwi r3, r3, 5111; CHECK-LE-NEXT:    neg r3, r3112; CHECK-LE-NEXT:    blr113entry:114  %cmp = icmp eq i8 %a, 0115  %conv2 = sext i1 %cmp to i64116  ret i64 %conv2117}118 119; Function Attrs: norecurse nounwind120define dso_local void @test_llequc_store(i8 zeroext %a, i8 zeroext %b) {121; CHECK-LABEL: test_llequc_store:122; CHECK:       # %bb.0: # %entry123; CHECK-NEXT:    xor r3, r3, r4124; CHECK-NEXT:    addis r5, r2, glob@toc@ha125; CHECK-NEXT:    cntlzw r3, r3126; CHECK-NEXT:    srwi r3, r3, 5127; CHECK-NEXT:    stb r3, glob@toc@l(r5)128; CHECK-NEXT:    blr129; CHECK-BE-LABEL: test_llequc_store:130; CHECK-BE:       # %bb.0: # %entry131; CHECK-BE-NEXT:    xor r3, r3, r4132; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha133; CHECK-BE-NEXT:    cntlzw r3, r3134; CHECK-BE-NEXT:    srwi r3, r3, 5135; CHECK-BE-NEXT:    stb r3, glob@toc@l(r4)136; CHECK-BE-NEXT:    blr137;138; CHECK-LE-LABEL: test_llequc_store:139; CHECK-LE:       # %bb.0: # %entry140; CHECK-LE-NEXT:    xor r3, r3, r4141; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha142; CHECK-LE-NEXT:    cntlzw r3, r3143; CHECK-LE-NEXT:    srwi r3, r3, 5144; CHECK-LE-NEXT:    stb r3, glob@toc@l(r4)145; CHECK-LE-NEXT:    blr146entry:147  %cmp = icmp eq i8 %a, %b148  %conv3 = zext i1 %cmp to i8149  store i8 %conv3, ptr @glob, align 1150  ret void151}152 153; Function Attrs: norecurse nounwind154define dso_local void @test_llequc_sext_store(i8 zeroext %a, i8 zeroext %b) {155; CHECK-LABEL: test_llequc_sext_store:156; CHECK:       # %bb.0: # %entry157; CHECK-NEXT:    xor r3, r3, r4158; CHECK-NEXT:    addis r5, r2, glob@toc@ha159; CHECK-NEXT:    cntlzw r3, r3160; CHECK-NEXT:    srwi r3, r3, 5161; CHECK-NEXT:    neg r3, r3162; CHECK-NEXT:    stb r3, glob@toc@l(r5)163; CHECK-NEXT:    blr164; CHECK-BE-LABEL: test_llequc_sext_store:165; CHECK-BE:       # %bb.0: # %entry166; CHECK-BE-NEXT:    xor r3, r3, r4167; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha168; CHECK-BE-NEXT:    cntlzw r3, r3169; CHECK-BE-NEXT:    srwi r3, r3, 5170; CHECK-BE-NEXT:    neg r3, r3171; CHECK-BE-NEXT:    stb r3, glob@toc@l(r4)172; CHECK-BE-NEXT:    blr173;174; CHECK-LE-LABEL: test_llequc_sext_store:175; CHECK-LE:       # %bb.0: # %entry176; CHECK-LE-NEXT:    xor r3, r3, r4177; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha178; CHECK-LE-NEXT:    cntlzw r3, r3179; CHECK-LE-NEXT:    srwi r3, r3, 5180; CHECK-LE-NEXT:    neg r3, r3181; CHECK-LE-NEXT:    stb r3, glob@toc@l(r4)182; CHECK-LE-NEXT:    blr183entry:184  %cmp = icmp eq i8 %a, %b185  %conv3 = sext i1 %cmp to i8186  store i8 %conv3, ptr @glob, align 1187  ret void188}189 190; Function Attrs: norecurse nounwind191define dso_local void @test_llequc_z_store(i8 zeroext %a) {192; CHECK-LABEL: test_llequc_z_store:193; CHECK:       # %bb.0: # %entry194; CHECK-NEXT:    cntlzw r3, r3195; CHECK-NEXT:    addis r4, r2, glob@toc@ha196; CHECK-NEXT:    srwi r3, r3, 5197; CHECK-NEXT:    stb r3, glob@toc@l(r4)198; CHECK-NEXT:    blr199; CHECK-BE-LABEL: test_llequc_z_store:200; CHECK-BE:       # %bb.0: # %entry201; CHECK-BE-NEXT:    cntlzw r3, r3202; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha203; CHECK-BE-NEXT:    srwi r3, r3, 5204; CHECK-BE-NEXT:    stb r3, glob@toc@l(r4)205; CHECK-BE-NEXT:    blr206;207; CHECK-LE-LABEL: test_llequc_z_store:208; CHECK-LE:       # %bb.0: # %entry209; CHECK-LE-NEXT:    cntlzw r3, r3210; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha211; CHECK-LE-NEXT:    srwi r3, r3, 5212; CHECK-LE-NEXT:    stb r3, glob@toc@l(r4)213; CHECK-LE-NEXT:    blr214entry:215  %cmp = icmp eq i8 %a, 0216  %conv2 = zext i1 %cmp to i8217  store i8 %conv2, ptr @glob, align 1218  ret void219}220 221; Function Attrs: norecurse nounwind222define dso_local void @test_llequc_sext_z_store(i8 zeroext %a) {223; CHECK-LABEL: test_llequc_sext_z_store:224; CHECK:       # %bb.0: # %entry225; CHECK-NEXT:    cntlzw r3, r3226; CHECK-NEXT:    addis r4, r2, glob@toc@ha227; CHECK-NEXT:    srwi r3, r3, 5228; CHECK-NEXT:    neg r3, r3229; CHECK-NEXT:    stb r3, glob@toc@l(r4)230; CHECK-NEXT:    blr231; CHECK-BE-LABEL: test_llequc_sext_z_store:232; CHECK-BE:       # %bb.0: # %entry233; CHECK-BE-NEXT:    cntlzw r3, r3234; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha235; CHECK-BE-NEXT:    srwi r3, r3, 5236; CHECK-BE-NEXT:    neg r3, r3237; CHECK-BE-NEXT:    stb r3, glob@toc@l(r4)238; CHECK-BE-NEXT:    blr239;240; CHECK-LE-LABEL: test_llequc_sext_z_store:241; CHECK-LE:       # %bb.0: # %entry242; CHECK-LE-NEXT:    cntlzw r3, r3243; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha244; CHECK-LE-NEXT:    srwi r3, r3, 5245; CHECK-LE-NEXT:    neg r3, r3246; CHECK-LE-NEXT:    stb r3, glob@toc@l(r4)247; CHECK-LE-NEXT:    blr248entry:249  %cmp = icmp eq i8 %a, 0250  %conv2 = sext i1 %cmp to i8251  store i8 %conv2, ptr @glob, align 1252  ret void253}254