90 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s3; RUN: llc -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 @foo(i32 signext %a, i32 signext %b) #0 {9; CHECK-LABEL: foo:10; CHECK: # %bb.0: # %entry11; CHECK-NEXT: cmpw 3, 412; CHECK-NEXT: li 3, 013; CHECK-NEXT: li 4, 1614; CHECK-NEXT: isellt 3, 4, 315; CHECK-NEXT: blr16;17; CHECK-NO-ISEL-LABEL: foo:18; CHECK-NO-ISEL: # %bb.0: # %entry19; CHECK-NO-ISEL-NEXT: cmpw 3, 420; CHECK-NO-ISEL-NEXT: li 3, 1621; CHECK-NO-ISEL-NEXT: bclr 12, 0, 022; CHECK-NO-ISEL-NEXT: # %bb.1: # %entry23; CHECK-NO-ISEL-NEXT: li 3, 024; CHECK-NO-ISEL-NEXT: blr25entry:26 %cmp = icmp slt i32 %a, %b27 %conv = zext i1 %cmp to i3228 %shl = shl nuw nsw i32 %conv, 429 ret i32 %shl30 31 32}33 34; Function Attrs: nounwind readnone35define signext i32 @foo2(i32 signext %a, i32 signext %b) #0 {36; CHECK-LABEL: foo2:37; CHECK: # %bb.0: # %entry38; CHECK-NEXT: cmpw 3, 439; CHECK-NEXT: li 3, 540; CHECK-NEXT: li 4, 2141; CHECK-NEXT: isellt 3, 4, 342; CHECK-NEXT: blr43;44; CHECK-NO-ISEL-LABEL: foo2:45; CHECK-NO-ISEL: # %bb.0: # %entry46; CHECK-NO-ISEL-NEXT: cmpw 3, 447; CHECK-NO-ISEL-NEXT: li 3, 2148; CHECK-NO-ISEL-NEXT: bclr 12, 0, 049; CHECK-NO-ISEL-NEXT: # %bb.1: # %entry50; CHECK-NO-ISEL-NEXT: li 3, 551; CHECK-NO-ISEL-NEXT: blr52entry:53 %cmp = icmp slt i32 %a, %b54 %conv = zext i1 %cmp to i3255 %shl = shl nuw nsw i32 %conv, 456 %add1 = or i32 %shl, 557 ret i32 %add158 59 60}61 62; Function Attrs: nounwind readnone63define signext i32 @foo3(i32 signext %a, i32 signext %b) #0 {64; CHECK-LABEL: foo3:65; CHECK: # %bb.0: # %entry66; CHECK-NEXT: cmpw 3, 467; CHECK-NEXT: li 3, 1668; CHECK-NEXT: iselgt 3, 0, 369; CHECK-NEXT: blr70;71; CHECK-NO-ISEL-LABEL: foo3:72; CHECK-NO-ISEL: # %bb.0: # %entry73; CHECK-NO-ISEL-NEXT: cmpw 3, 474; CHECK-NO-ISEL-NEXT: li 3, 075; CHECK-NO-ISEL-NEXT: bclr 12, 1, 076; CHECK-NO-ISEL-NEXT: # %bb.1: # %entry77; CHECK-NO-ISEL-NEXT: li 3, 1678; CHECK-NO-ISEL-NEXT: blr79entry:80 %cmp = icmp sle i32 %a, %b81 %conv = zext i1 %cmp to i3282 %shl = shl nuw nsw i32 %conv, 483 ret i32 %shl84 85 86}87 88attributes #0 = { nounwind readnone }89 90