blob: 1532f7dd59646d8063bcb5ec24f2038e8602b213 [file] [log] [blame]
Ehsan Amiria538b0f2016-08-03 18:17:35 +00001; RUN: llc -verify-machineinstrs -mcpu=ppc64 < %s | FileCheck %s
2; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu -mcpu=ppc < %s | FileCheck -check-prefix=CHECK-32 %s
Hal Finkel13d104b2014-12-11 18:37:52 +00003target datalayout = "E-m:e-i64:64-n32:64"
4target triple = "powerpc64-unknown-linux-gnu"
5
6; Function Attrs: nounwind readnone
7define signext i32 @foo4(i32 signext %a) #0 {
8entry:
9 %div = sdiv i32 %a, 8
10 ret i32 %div
11
Jonathan Roelofs49e46ce2015-08-10 19:01:27 +000012; CHECK-LABEL: @foo4
Hal Finkel13d104b2014-12-11 18:37:52 +000013; CHECK: srawi [[REG1:[0-9]+]], 3, 3
14; CHECK: addze [[REG2:[0-9]+]], [[REG1]]
15; CHECK: extsw 3, [[REG2]]
16; CHECK: blr
17}
18
19; Function Attrs: nounwind readnone
20define i64 @foo8(i64 %a) #0 {
21entry:
22 %div = sdiv i64 %a, 8
23 ret i64 %div
24
Jonathan Roelofs49e46ce2015-08-10 19:01:27 +000025; CHECK-LABEL: @foo8
Hal Finkel13d104b2014-12-11 18:37:52 +000026; CHECK: sradi [[REG1:[0-9]+]], 3, 3
27; CHECK: addze 3, [[REG1]]
28; CHECK: blr
Hal Finkel04b16b52014-12-23 08:38:50 +000029
Jonathan Roelofs49e46ce2015-08-10 19:01:27 +000030; CHECK-32-LABEL: @foo8
Hal Finkel04b16b52014-12-23 08:38:50 +000031; CHECK-32-NOT: sradi
32; CHECK-32: blr
Hal Finkel13d104b2014-12-11 18:37:52 +000033}
34
35; Function Attrs: nounwind readnone
36define signext i32 @foo4n(i32 signext %a) #0 {
37entry:
38 %div = sdiv i32 %a, -8
39 ret i32 %div
40
41; CHECK-LABEL: @foo4n
42; CHECK: srawi [[REG1:[0-9]+]], 3, 3
43; CHECK: addze [[REG2:[0-9]+]], [[REG1]]
44; CHECK: neg [[REG3:[0-9]+]], [[REG2]]
45; CHECK: extsw 3, [[REG3]]
46; CHECK: blr
47}
48
49; Function Attrs: nounwind readnone
50define i64 @foo8n(i64 %a) #0 {
51entry:
52 %div = sdiv i64 %a, -8
53 ret i64 %div
54
55; CHECK-LABEL: @foo8n
56; CHECK: sradi [[REG1:[0-9]+]], 3, 3
57; CHECK: addze [[REG2:[0-9]+]], [[REG1]]
58; CHECK: neg 3, [[REG2]]
59; CHECK: blr
Hal Finkel04b16b52014-12-23 08:38:50 +000060
Jonathan Roelofs49e46ce2015-08-10 19:01:27 +000061; CHECK-32-LABEL: @foo8n
Hal Finkel04b16b52014-12-23 08:38:50 +000062; CHECK-32-NOT: sradi
63; CHECK-32: blr
Hal Finkel13d104b2014-12-11 18:37:52 +000064}
65
66attributes #0 = { nounwind readnone }
67