68 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=ppc64 < %s | FileCheck %s2; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu -mcpu=ppc < %s | FileCheck -check-prefix=CHECK-32 %s3target datalayout = "E-m:e-i64:64-n32:64"4target triple = "powerpc64-unknown-linux-gnu"5 6; Function Attrs: nounwind readnone7define signext i32 @foo4(i32 signext %a) #0 {8entry:9 %div = sdiv i32 %a, 810 ret i32 %div11 12; CHECK-LABEL: @foo413; CHECK: srawi [[REG1:[0-9]+]], 3, 314; CHECK: addze [[REG2:[0-9]+]], [[REG1]]15; CHECK: extsw 3, [[REG2]]16; CHECK: blr17}18 19; Function Attrs: nounwind readnone20define i64 @foo8(i64 %a) #0 {21entry:22 %div = sdiv i64 %a, 823 ret i64 %div24 25; CHECK-LABEL: @foo826; CHECK: sradi [[REG1:[0-9]+]], 3, 327; CHECK: addze 3, [[REG1]]28; CHECK: blr29 30; CHECK-32-LABEL: @foo831; CHECK-32-NOT: sradi32; CHECK-32: blr33}34 35; Function Attrs: nounwind readnone36define signext i32 @foo4n(i32 signext %a) #0 {37entry:38 %div = sdiv i32 %a, -839 ret i32 %div40 41; CHECK-LABEL: @foo4n42; CHECK: srawi [[REG1:[0-9]+]], 3, 343; CHECK: addze [[REG2:[0-9]+]], [[REG1]]44; CHECK: neg [[REG3:[0-9]+]], [[REG2]]45; CHECK: extsw 3, [[REG3]]46; CHECK: blr47}48 49; Function Attrs: nounwind readnone50define i64 @foo8n(i64 %a) #0 {51entry:52 %div = sdiv i64 %a, -853 ret i64 %div54 55; CHECK-LABEL: @foo8n56; CHECK: sradi [[REG1:[0-9]+]], 3, 357; CHECK: addze [[REG2:[0-9]+]], [[REG1]]58; CHECK: neg 3, [[REG2]]59; CHECK: blr60 61; CHECK-32-LABEL: @foo8n62; CHECK-32-NOT: sradi63; CHECK-32: blr64}65 66attributes #0 = { nounwind readnone }67 68