blob: c6330a6807aa31557c4fbe521ba2546a2988e3ea [file] [log] [blame]
Hal Finkel13d104b2014-12-11 18:37:52 +00001; RUN: llc -mcpu=ppc64 < %s | FileCheck %s
2target datalayout = "E-m:e-i64:64-n32:64"
3target triple = "powerpc64-unknown-linux-gnu"
4
5; Function Attrs: nounwind readnone
6define signext i32 @foo4(i32 signext %a) #0 {
7entry:
8 %div = sdiv i32 %a, 8
9 ret i32 %div
10
11; CHECK-LABEL @foo4
12; CHECK: srawi [[REG1:[0-9]+]], 3, 3
13; CHECK: addze [[REG2:[0-9]+]], [[REG1]]
14; CHECK: extsw 3, [[REG2]]
15; CHECK: blr
16}
17
18; Function Attrs: nounwind readnone
19define i64 @foo8(i64 %a) #0 {
20entry:
21 %div = sdiv i64 %a, 8
22 ret i64 %div
23
24; CHECK-LABEL @foo8
25; CHECK: sradi [[REG1:[0-9]+]], 3, 3
26; CHECK: addze 3, [[REG1]]
27; CHECK: blr
28}
29
30; Function Attrs: nounwind readnone
31define signext i32 @foo4n(i32 signext %a) #0 {
32entry:
33 %div = sdiv i32 %a, -8
34 ret i32 %div
35
36; CHECK-LABEL: @foo4n
37; CHECK: srawi [[REG1:[0-9]+]], 3, 3
38; CHECK: addze [[REG2:[0-9]+]], [[REG1]]
39; CHECK: neg [[REG3:[0-9]+]], [[REG2]]
40; CHECK: extsw 3, [[REG3]]
41; CHECK: blr
42}
43
44; Function Attrs: nounwind readnone
45define i64 @foo8n(i64 %a) #0 {
46entry:
47 %div = sdiv i64 %a, -8
48 ret i64 %div
49
50; CHECK-LABEL: @foo8n
51; CHECK: sradi [[REG1:[0-9]+]], 3, 3
52; CHECK: addze [[REG2:[0-9]+]], [[REG1]]
53; CHECK: neg 3, [[REG2]]
54; CHECK: blr
55}
56
57attributes #0 = { nounwind readnone }
58