73 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -ppc-gpr-icmps=all -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s3; RUN: llc -ppc-gpr-icmps=all -verify-machineinstrs -mcpu=pwr7 -mattr=-isel < %s | FileCheck --check-prefix=CHECK-NO-ISEL %s4target datalayout = "E-m:e-i64:64-n32:64"5target triple = "powerpc64-unknown-linux-gnu"6 7; Function Attrs: nounwind readnone8define signext i32 @crbitsoff(i32 signext %v1, i32 signext %v2) #0 {9; CHECK-LABEL: crbitsoff:10; CHECK: # %bb.0: # %entry11; CHECK-NEXT: cntlzw 4, 412; CHECK-NEXT: cmplwi 3, 013; CHECK-NEXT: li 3, 114; CHECK-NEXT: iseleq 3, 0, 315; CHECK-NEXT: rlwinm 4, 4, 27, 5, 3116; CHECK-NEXT: and 3, 3, 417; CHECK-NEXT: blr18;19; CHECK-NO-ISEL-LABEL: crbitsoff:20; CHECK-NO-ISEL: # %bb.0: # %entry21; CHECK-NO-ISEL-NEXT: cmplwi 3, 022; CHECK-NO-ISEL-NEXT: li 3, 123; CHECK-NO-ISEL-NEXT: bne 0, .LBB0_224; CHECK-NO-ISEL-NEXT: # %bb.1: # %entry25; CHECK-NO-ISEL-NEXT: li 3, 026; CHECK-NO-ISEL-NEXT: .LBB0_2: # %entry27; CHECK-NO-ISEL-NEXT: cntlzw 4, 428; CHECK-NO-ISEL-NEXT: rlwinm 4, 4, 27, 5, 3129; CHECK-NO-ISEL-NEXT: and 3, 3, 430; CHECK-NO-ISEL-NEXT: blr31entry:32 %tobool = icmp ne i32 %v1, 033 %lnot = icmp eq i32 %v2, 034 %and3 = and i1 %tobool, %lnot35 %and = zext i1 %and3 to i3236 ret i32 %and37 38}39 40define signext i32 @crbitson(i32 signext %v1, i32 signext %v2) #1 {41; CHECK-LABEL: crbitson:42; CHECK: # %bb.0: # %entry43; CHECK-NEXT: cntlzw 3, 344; CHECK-NEXT: cntlzw 4, 445; CHECK-NEXT: srwi 3, 3, 546; CHECK-NEXT: srwi 4, 4, 547; CHECK-NEXT: xori 3, 3, 148; CHECK-NEXT: and 3, 3, 449; CHECK-NEXT: blr50;51; CHECK-NO-ISEL-LABEL: crbitson:52; CHECK-NO-ISEL: # %bb.0: # %entry53; CHECK-NO-ISEL-NEXT: cntlzw 3, 354; CHECK-NO-ISEL-NEXT: cntlzw 4, 455; CHECK-NO-ISEL-NEXT: srwi 3, 3, 556; CHECK-NO-ISEL-NEXT: srwi 4, 4, 557; CHECK-NO-ISEL-NEXT: xori 3, 3, 158; CHECK-NO-ISEL-NEXT: and 3, 3, 459; CHECK-NO-ISEL-NEXT: blr60entry:61 %tobool = icmp ne i32 %v1, 062 %lnot = icmp eq i32 %v2, 063 %and3 = and i1 %tobool, %lnot64 %and = zext i1 %and3 to i3265 ret i32 %and66 67}68 69 70attributes #0 = { nounwind readnone "target-features"="-crbits" }71attributes #1 = { nounwind readnone }72 73