brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.9 KiB · 4d565b5 Raw
255 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/testComparesieqss.c'9 10@glob = dso_local local_unnamed_addr global i16 0, align 211 12; Function Attrs: norecurse nounwind readnone13define dso_local signext i32 @test_ieqss(i16 signext %a, i16 signext %b) {14; CHECK-LABEL: test_ieqss:15; CHECK:       # %bb.0: # %entry16; CHECK-NEXT:    xor r3, r3, r417; CHECK-NEXT:    cntlzw r3, r318; CHECK-NEXT:    srwi r3, r3, 519; CHECK-NEXT:    blr20; CHECK-BE-LABEL: test_ieqss:21; CHECK-BE:       # %bb.0: # %entry22; CHECK-BE-NEXT:    xor r3, r3, r423; CHECK-BE-NEXT:    cntlzw r3, r324; CHECK-BE-NEXT:    srwi r3, r3, 525; CHECK-BE-NEXT:    blr26;27; CHECK-LE-LABEL: test_ieqss:28; CHECK-LE:       # %bb.0: # %entry29; CHECK-LE-NEXT:    xor r3, r3, r430; CHECK-LE-NEXT:    cntlzw r3, r331; CHECK-LE-NEXT:    srwi r3, r3, 532; CHECK-LE-NEXT:    blr33entry:34  %cmp = icmp eq i16 %a, %b35  %conv2 = zext i1 %cmp to i3236  ret i32 %conv237}38 39; Function Attrs: norecurse nounwind readnone40define dso_local signext i32 @test_ieqss_sext(i16 signext %a, i16 signext %b) {41; CHECK-LABEL: test_ieqss_sext:42; CHECK:       # %bb.0: # %entry43; CHECK-NEXT:    xor r3, r3, r444; CHECK-NEXT:    cntlzw r3, r345; CHECK-NEXT:    srwi r3, r3, 546; CHECK-NEXT:    neg r3, r347; CHECK-NEXT:    blr48; CHECK-BE-LABEL: test_ieqss_sext:49; CHECK-BE:       # %bb.0: # %entry50; CHECK-BE-NEXT:    xor r3, r3, r451; CHECK-BE-NEXT:    cntlzw r3, r352; CHECK-BE-NEXT:    srwi r3, r3, 553; CHECK-BE-NEXT:    neg r3, r354; CHECK-BE-NEXT:    blr55;56; CHECK-LE-LABEL: test_ieqss_sext:57; CHECK-LE:       # %bb.0: # %entry58; CHECK-LE-NEXT:    xor r3, r3, r459; CHECK-LE-NEXT:    cntlzw r3, r360; CHECK-LE-NEXT:    srwi r3, r3, 561; CHECK-LE-NEXT:    neg r3, r362; CHECK-LE-NEXT:    blr63entry:64  %cmp = icmp eq i16 %a, %b65  %sub = sext i1 %cmp to i3266  ret i32 %sub67}68 69; Function Attrs: norecurse nounwind readnone70define dso_local signext i32 @test_ieqss_z(i16 signext %a) {71; CHECK-LABEL: test_ieqss_z:72; CHECK:       # %bb.0: # %entry73; CHECK-NEXT:    cntlzw r3, r374; CHECK-NEXT:    srwi r3, r3, 575; CHECK-NEXT:    blr76; CHECK-BE-LABEL: test_ieqss_z:77; CHECK-BE:       # %bb.0: # %entry78; CHECK-BE-NEXT:    cntlzw r3, r379; CHECK-BE-NEXT:    srwi r3, r3, 580; CHECK-BE-NEXT:    blr81;82; CHECK-LE-LABEL: test_ieqss_z:83; CHECK-LE:       # %bb.0: # %entry84; CHECK-LE-NEXT:    cntlzw r3, r385; CHECK-LE-NEXT:    srwi r3, r3, 586; CHECK-LE-NEXT:    blr87entry:88  %cmp = icmp eq i16 %a, 089  %conv1 = zext i1 %cmp to i3290  ret i32 %conv191}92 93; Function Attrs: norecurse nounwind readnone94define dso_local signext i32 @test_ieqss_sext_z(i16 signext %a) {95; CHECK-LABEL: test_ieqss_sext_z:96; CHECK:       # %bb.0: # %entry97; CHECK-NEXT:    cntlzw r3, r398; CHECK-NEXT:    srwi r3, r3, 599; CHECK-NEXT:    neg r3, r3100; CHECK-NEXT:    blr101; CHECK-BE-LABEL: test_ieqss_sext_z:102; CHECK-BE:       # %bb.0: # %entry103; CHECK-BE-NEXT:    cntlzw r3, r3104; CHECK-BE-NEXT:    srwi r3, r3, 5105; CHECK-BE-NEXT:    neg r3, r3106; CHECK-BE-NEXT:    blr107;108; CHECK-LE-LABEL: test_ieqss_sext_z:109; CHECK-LE:       # %bb.0: # %entry110; CHECK-LE-NEXT:    cntlzw r3, r3111; CHECK-LE-NEXT:    srwi r3, r3, 5112; CHECK-LE-NEXT:    neg r3, r3113; CHECK-LE-NEXT:    blr114entry:115  %cmp = icmp eq i16 %a, 0116  %sub = sext i1 %cmp to i32117  ret i32 %sub118}119 120; Function Attrs: norecurse nounwind121define dso_local void @test_ieqss_store(i16 signext %a, i16 signext %b) {122; CHECK-LABEL: test_ieqss_store:123; CHECK:       # %bb.0: # %entry124; CHECK-NEXT:    xor r3, r3, r4125; CHECK-NEXT:    addis r5, r2, glob@toc@ha126; CHECK-NEXT:    cntlzw r3, r3127; CHECK-NEXT:    srwi r3, r3, 5128; CHECK-NEXT:    sth r3, glob@toc@l(r5)129; CHECK-NEXT:    blr130; CHECK-BE-LABEL: test_ieqss_store:131; CHECK-BE:       # %bb.0: # %entry132; CHECK-BE-NEXT:    xor r3, r3, r4133; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha134; CHECK-BE-NEXT:    cntlzw r3, r3135; CHECK-BE-NEXT:    srwi r3, r3, 5136; CHECK-BE-NEXT:    sth r3, glob@toc@l(r4)137; CHECK-BE-NEXT:    blr138;139; CHECK-LE-LABEL: test_ieqss_store:140; CHECK-LE:       # %bb.0: # %entry141; CHECK-LE-NEXT:    xor r3, r3, r4142; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha143; CHECK-LE-NEXT:    cntlzw r3, r3144; CHECK-LE-NEXT:    srwi r3, r3, 5145; CHECK-LE-NEXT:    sth r3, glob@toc@l(r4)146; CHECK-LE-NEXT:    blr147entry:148  %cmp = icmp eq i16 %a, %b149  %conv3 = zext i1 %cmp to i16150  store i16 %conv3, ptr @glob, align 2151  ret void152}153 154; Function Attrs: norecurse nounwind155define dso_local void @test_ieqss_sext_store(i16 signext %a, i16 signext %b) {156; CHECK-LABEL: test_ieqss_sext_store:157; CHECK:       # %bb.0: # %entry158; CHECK-NEXT:    xor r3, r3, r4159; CHECK-NEXT:    addis r5, r2, glob@toc@ha160; CHECK-NEXT:    cntlzw r3, r3161; CHECK-NEXT:    srwi r3, r3, 5162; CHECK-NEXT:    neg r3, r3163; CHECK-NEXT:    sth r3, glob@toc@l(r5)164; CHECK-NEXT:    blr165; CHECK-BE-LABEL: test_ieqss_sext_store:166; CHECK-BE:       # %bb.0: # %entry167; CHECK-BE-NEXT:    xor r3, r3, r4168; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha169; CHECK-BE-NEXT:    cntlzw r3, r3170; CHECK-BE-NEXT:    srwi r3, r3, 5171; CHECK-BE-NEXT:    neg r3, r3172; CHECK-BE-NEXT:    sth r3, glob@toc@l(r4)173; CHECK-BE-NEXT:    blr174;175; CHECK-LE-LABEL: test_ieqss_sext_store:176; CHECK-LE:       # %bb.0: # %entry177; CHECK-LE-NEXT:    xor r3, r3, r4178; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha179; CHECK-LE-NEXT:    cntlzw r3, r3180; CHECK-LE-NEXT:    srwi r3, r3, 5181; CHECK-LE-NEXT:    neg r3, r3182; CHECK-LE-NEXT:    sth r3, glob@toc@l(r4)183; CHECK-LE-NEXT:    blr184entry:185  %cmp = icmp eq i16 %a, %b186  %conv3 = sext i1 %cmp to i16187  store i16 %conv3, ptr @glob, align 2188  ret void189}190 191; Function Attrs: norecurse nounwind192define dso_local void @test_ieqss_z_store(i16 signext %a) {193; CHECK-LABEL: test_ieqss_z_store:194; CHECK:       # %bb.0: # %entry195; CHECK-NEXT:    cntlzw r3, r3196; CHECK-NEXT:    addis r4, r2, glob@toc@ha197; CHECK-NEXT:    srwi r3, r3, 5198; CHECK-NEXT:    sth r3, glob@toc@l(r4)199; CHECK-NEXT:    blr200; CHECK-BE-LABEL: test_ieqss_z_store:201; CHECK-BE:       # %bb.0: # %entry202; CHECK-BE-NEXT:    cntlzw r3, r3203; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha204; CHECK-BE-NEXT:    srwi r3, r3, 5205; CHECK-BE-NEXT:    sth r3, glob@toc@l(r4)206; CHECK-BE-NEXT:    blr207;208; CHECK-LE-LABEL: test_ieqss_z_store:209; CHECK-LE:       # %bb.0: # %entry210; CHECK-LE-NEXT:    cntlzw r3, r3211; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha212; CHECK-LE-NEXT:    srwi r3, r3, 5213; CHECK-LE-NEXT:    sth r3, glob@toc@l(r4)214; CHECK-LE-NEXT:    blr215entry:216  %cmp = icmp eq i16 %a, 0217  %conv2 = zext i1 %cmp to i16218  store i16 %conv2, ptr @glob, align 2219  ret void220}221 222; Function Attrs: norecurse nounwind223define dso_local void @test_ieqss_sext_z_store(i16 signext %a) {224; CHECK-LABEL: test_ieqss_sext_z_store:225; CHECK:       # %bb.0: # %entry226; CHECK-NEXT:    cntlzw r3, r3227; CHECK-NEXT:    addis r4, r2, glob@toc@ha228; CHECK-NEXT:    srwi r3, r3, 5229; CHECK-NEXT:    neg r3, r3230; CHECK-NEXT:    sth r3, glob@toc@l(r4)231; CHECK-NEXT:    blr232; CHECK-BE-LABEL: test_ieqss_sext_z_store:233; CHECK-BE:       # %bb.0: # %entry234; CHECK-BE-NEXT:    cntlzw r3, r3235; CHECK-BE-NEXT:    addis r4, r2, glob@toc@ha236; CHECK-BE-NEXT:    srwi r3, r3, 5237; CHECK-BE-NEXT:    neg r3, r3238; CHECK-BE-NEXT:    sth r3, glob@toc@l(r4)239; CHECK-BE-NEXT:    blr240;241; CHECK-LE-LABEL: test_ieqss_sext_z_store:242; CHECK-LE:       # %bb.0: # %entry243; CHECK-LE-NEXT:    cntlzw r3, r3244; CHECK-LE-NEXT:    addis r4, r2, glob@toc@ha245; CHECK-LE-NEXT:    srwi r3, r3, 5246; CHECK-LE-NEXT:    neg r3, r3247; CHECK-LE-NEXT:    sth r3, glob@toc@l(r4)248; CHECK-LE-NEXT:    blr249entry:250  %cmp = icmp eq i16 %a, 0251  %conv2 = sext i1 %cmp to i16252  store i16 %conv2, ptr @glob, align 2253  ret void254}255