brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.7 KiB · 414ff5e Raw
243 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; ModuleID = 'ComparisonTestCases/testComparesieqsll.c'9 10@glob = dso_local local_unnamed_addr global i64 0, align 811 12; Function Attrs: norecurse nounwind readnone13define dso_local signext i32 @test_ieqsll(i64 %a, i64 %b) {14; CHECK-LABEL: test_ieqsll:15; CHECK:       # %bb.0: # %entry16; CHECK-NEXT:    xor r3, r3, r417; CHECK-NEXT:    cntlzd r3, r318; CHECK-NEXT:    rldicl r3, r3, 58, 6319; CHECK-NEXT:    blr20; CHECK-BE-LABEL: test_ieqsll:21; CHECK-BE:       # %bb.0: # %entry22; CHECK-BE-NEXT:    xor r3, r3, r423; CHECK-BE-NEXT:    cntlzd r3, r324; CHECK-BE-NEXT:    rldicl r3, r3, 58, 6325; CHECK-BE-NEXT:    blr26;27; CHECK-LE-LABEL: test_ieqsll:28; CHECK-LE:       # %bb.0: # %entry29; CHECK-LE-NEXT:    xor r3, r3, r430; CHECK-LE-NEXT:    cntlzd r3, r331; CHECK-LE-NEXT:    rldicl r3, r3, 58, 6332; CHECK-LE-NEXT:    blr33entry:34  %cmp = icmp eq i64 %a, %b35  %conv = zext i1 %cmp to i3236  ret i32 %conv37}38 39; Function Attrs: norecurse nounwind readnone40define dso_local signext i32 @test_ieqsll_sext(i64 %a, i64 %b) {41; CHECK-LABEL: test_ieqsll_sext:42; CHECK:       # %bb.0: # %entry43; CHECK-NEXT:    xor r3, r3, r444; CHECK-NEXT:    addic r3, r3, -145; CHECK-NEXT:    subfe r3, r3, r346; CHECK-NEXT:    blr47; CHECK-BE-LABEL: test_ieqsll_sext:48; CHECK-BE:       # %bb.0: # %entry49; CHECK-BE-NEXT:    xor r3, r3, r450; CHECK-BE-NEXT:    addic r3, r3, -151; CHECK-BE-NEXT:    subfe r3, r3, r352; CHECK-BE-NEXT:    blr53;54; CHECK-LE-LABEL: test_ieqsll_sext:55; CHECK-LE:       # %bb.0: # %entry56; CHECK-LE-NEXT:    xor r3, r3, r457; CHECK-LE-NEXT:    addic r3, r3, -158; CHECK-LE-NEXT:    subfe r3, r3, r359; CHECK-LE-NEXT:    blr60entry:61  %cmp = icmp eq i64 %a, %b62  %sub = sext i1 %cmp to i3263  ret i32 %sub64}65 66; Function Attrs: norecurse nounwind readnone67define dso_local signext i32 @test_ieqsll_z(i64 %a) {68; CHECK-LABEL: test_ieqsll_z:69; CHECK:       # %bb.0: # %entry70; CHECK-NEXT:    cntlzd r3, r371; CHECK-NEXT:    rldicl r3, r3, 58, 6372; CHECK-NEXT:    blr73; CHECK-BE-LABEL: test_ieqsll_z:74; CHECK-BE:       # %bb.0: # %entry75; CHECK-BE-NEXT:    cntlzd r3, r376; CHECK-BE-NEXT:    rldicl r3, r3, 58, 6377; CHECK-BE-NEXT:    blr78;79; CHECK-LE-LABEL: test_ieqsll_z:80; CHECK-LE:       # %bb.0: # %entry81; CHECK-LE-NEXT:    cntlzd r3, r382; CHECK-LE-NEXT:    rldicl r3, r3, 58, 6383; CHECK-LE-NEXT:    blr84entry:85  %cmp = icmp eq i64 %a, 086  %conv = zext i1 %cmp to i3287  ret i32 %conv88}89 90; Function Attrs: norecurse nounwind readnone91define dso_local signext i32 @test_ieqsll_sext_z(i64 %a) {92; CHECK-LABEL: test_ieqsll_sext_z:93; CHECK:       # %bb.0: # %entry94; CHECK-NEXT:    addic r3, r3, -195; CHECK-NEXT:    subfe r3, r3, r396; CHECK-NEXT:    blr97; CHECK-BE-LABEL: test_ieqsll_sext_z:98; CHECK-BE:       # %bb.0: # %entry99; CHECK-BE-NEXT:    addic r3, r3, -1100; CHECK-BE-NEXT:    subfe r3, r3, r3101; CHECK-BE-NEXT:    blr102;103; CHECK-LE-LABEL: test_ieqsll_sext_z:104; CHECK-LE:       # %bb.0: # %entry105; CHECK-LE-NEXT:    addic r3, r3, -1106; CHECK-LE-NEXT:    subfe r3, r3, r3107; CHECK-LE-NEXT:    blr108entry:109  %cmp = icmp eq i64 %a, 0110  %sub = sext i1 %cmp to i32111  ret i32 %sub112}113 114; Function Attrs: norecurse nounwind115define dso_local void @test_ieqsll_store(i64 %a, i64 %b) {116; CHECK-LABEL: test_ieqsll_store:117; CHECK:       # %bb.0: # %entry118; CHECK-NEXT:    xor r3, r3, r4119; CHECK-NEXT:    addis r5, r2, glob@toc@ha120; CHECK-NEXT:    cntlzd r3, r3121; CHECK-NEXT:    rldicl r3, r3, 58, 63122; CHECK-NEXT:    std r3, glob@toc@l(r5)123; CHECK-NEXT:    blr124; CHECK-BE-LABEL: test_ieqsll_store:125; CHECK-BE:       # %bb.0: # %entry126; CHECK-BE-NEXT:    xor r3, r3, r4127; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha128; CHECK-BE-NEXT:    cntlzd r3, r3129; CHECK-BE-NEXT:    rldicl r3, r3, 58, 63130; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)131; CHECK-BE-NEXT:    blr132;133; CHECK-LE-LABEL: test_ieqsll_store:134; CHECK-LE:       # %bb.0: # %entry135; CHECK-LE-NEXT:    xor r3, r3, r4136; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha137; CHECK-LE-NEXT:    cntlzd r3, r3138; CHECK-LE-NEXT:    rldicl r3, r3, 58, 63139; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)140; CHECK-LE-NEXT:    blr141entry:142  %cmp = icmp eq i64 %a, %b143  %conv1 = zext i1 %cmp to i64144  store i64 %conv1, ptr @glob, align 8145  ret void146}147 148; Function Attrs: norecurse nounwind149define dso_local void @test_ieqsll_sext_store(i64 %a, i64 %b) {150; CHECK-LABEL: test_ieqsll_sext_store:151; CHECK:       # %bb.0: # %entry152; CHECK-NEXT:    xor r3, r3, r4153; CHECK-NEXT:    addis r5, r2, glob@toc@ha154; CHECK-NEXT:    addic r3, r3, -1155; CHECK-NEXT:    subfe r3, r3, r3156; CHECK-NEXT:    std r3, glob@toc@l(r5)157; CHECK-NEXT:    blr158; CHECK-BE-LABEL: test_ieqsll_sext_store:159; CHECK-BE:       # %bb.0: # %entry160; CHECK-BE-NEXT:    xor r3, r3, r4161; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha162; CHECK-BE-NEXT:    addic r3, r3, -1163; CHECK-BE-NEXT:    subfe r3, r3, r3164; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)165; CHECK-BE-NEXT:    blr166;167; CHECK-LE-LABEL: test_ieqsll_sext_store:168; CHECK-LE:       # %bb.0: # %entry169; CHECK-LE-NEXT:    xor r3, r3, r4170; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha171; CHECK-LE-NEXT:    addic r3, r3, -1172; CHECK-LE-NEXT:    subfe r3, r3, r3173; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)174; CHECK-LE-NEXT:    blr175entry:176  %cmp = icmp eq i64 %a, %b177  %conv1 = sext i1 %cmp to i64178  store i64 %conv1, ptr @glob, align 8179  ret void180}181 182; Function Attrs: norecurse nounwind183define dso_local void @test_ieqsll_z_store(i64 %a) {184; CHECK-LABEL: test_ieqsll_z_store:185; CHECK:       # %bb.0: # %entry186; CHECK-NEXT:    cntlzd r3, r3187; CHECK-NEXT:    addis r4, r2, glob@toc@ha188; CHECK-NEXT:    rldicl r3, r3, 58, 63189; CHECK-NEXT:    std r3, glob@toc@l(r4)190; CHECK-NEXT:    blr191; CHECK-BE-LABEL: test_ieqsll_z_store:192; CHECK-BE:       # %bb.0: # %entry193; CHECK-BE-NEXT:    cntlzd r3, r3194; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha195; CHECK-BE-NEXT:    rldicl r3, r3, 58, 63196; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)197; CHECK-BE-NEXT:    blr198;199; CHECK-LE-LABEL: test_ieqsll_z_store:200; CHECK-LE:       # %bb.0: # %entry201; CHECK-LE-NEXT:    cntlzd r3, r3202; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha203; CHECK-LE-NEXT:    rldicl r3, r3, 58, 63204; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)205; CHECK-LE-NEXT:    blr206entry:207  %cmp = icmp eq i64 %a, 0208  %conv1 = zext i1 %cmp to i64209  store i64 %conv1, ptr @glob, align 8210  ret void211}212 213; Function Attrs: norecurse nounwind214define dso_local void @test_ieqsll_sext_z_store(i64 %a) {215; CHECK-LABEL: test_ieqsll_sext_z_store:216; CHECK:       # %bb.0: # %entry217; CHECK-NEXT:    addic r3, r3, -1218; CHECK-NEXT:    addis r4, r2, glob@toc@ha219; CHECK-NEXT:    subfe r3, r3, r3220; CHECK-NEXT:    std r3, glob@toc@l(r4)221; CHECK-NEXT:    blr222; CHECK-BE-LABEL: test_ieqsll_sext_z_store:223; CHECK-BE:       # %bb.0: # %entry224; CHECK-BE-NEXT:    addic r3, r3, -1225; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha226; CHECK-BE-NEXT:    subfe r3, r3, r3227; CHECK-BE-NEXT:    std r3, glob@toc@l(r4)228; CHECK-BE-NEXT:    blr229;230; CHECK-LE-LABEL: test_ieqsll_sext_z_store:231; CHECK-LE:       # %bb.0: # %entry232; CHECK-LE-NEXT:    addic r3, r3, -1233; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha234; CHECK-LE-NEXT:    subfe r3, r3, r3235; CHECK-LE-NEXT:    std r3, glob@toc@l(r4)236; CHECK-LE-NEXT:    blr237entry:238  %cmp = icmp eq i64 %a, 0239  %conv1 = sext i1 %cmp to i64240  store i64 %conv1, ptr @glob, align 8241  ret void242}243