~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/PowerPC/rm-zext.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc -mcpu=pwr7 < %s | FileCheck %s
 
2
target datalayout = "E-m:e-i64:64-n32:64"
 
3
target triple = "powerpc64-unknown-linux-gnu"
 
4
 
 
5
; Function Attrs: nounwind readnone
 
6
define signext i32 @foo(i32 signext %a) #0 {
 
7
entry:
 
8
  %mul = mul nsw i32 %a, %a
 
9
  %shr2 = lshr i32 %mul, 5
 
10
  ret i32 %shr2
 
11
 
 
12
; CHECK-LABEL @foo
 
13
; CHECK-NOT: rldicl 3, {{[0-9]+}}, 0, 32
 
14
; CHECK: blr
 
15
}
 
16
 
 
17
define zeroext i32 @test6(i32 zeroext %x) #0 {
 
18
entry:
 
19
  %and = lshr i32 %x, 16
 
20
  %shr = and i32 %and, 255
 
21
  %and1 = shl i32 %x, 16
 
22
  %shl = and i32 %and1, 16711680
 
23
  %or = or i32 %shr, %shl
 
24
  ret i32 %or
 
25
 
 
26
; CHECK-LABEL @test6
 
27
; CHECK-NOT: rldicl 3, {{[0-9]+}}, 0, 32
 
28
; CHECK: blr
 
29
}
 
30
 
 
31
define zeroext i32 @min(i32 zeroext %a, i32 zeroext %b) #0 {
 
32
entry:
 
33
  %cmp = icmp ule i32 %a, %b
 
34
  %cond = select i1 %cmp, i32 %a, i32 %b
 
35
  ret i32 %cond
 
36
 
 
37
; CHECK-LABEL @min
 
38
; CHECK-NOT: rldicl 3, {{[0-9]+}}, 0, 32
 
39
; CHECK: blr
 
40
}
 
41
 
 
42
; Function Attrs: nounwind readnone
 
43
declare i32 @llvm.bswap.i32(i32) #0
 
44
 
 
45
; Function Attrs: nounwind readonly
 
46
define zeroext i32 @bs32(i32* nocapture readonly %x) #1 {
 
47
entry:
 
48
  %0 = load i32, i32* %x, align 4
 
49
  %1 = tail call i32 @llvm.bswap.i32(i32 %0)
 
50
  ret i32 %1
 
51
 
 
52
; CHECK-LABEL: @bs32
 
53
; CHECK-NOT: rldicl 3, {{[0-9]+}}, 0, 32
 
54
; CHECK: blr
 
55
}
 
56
 
 
57
; Function Attrs: nounwind readonly
 
58
define zeroext i16 @bs16(i16* nocapture readonly %x) #1 {
 
59
entry:
 
60
  %0 = load i16, i16* %x, align 2
 
61
  %1 = tail call i16 @llvm.bswap.i16(i16 %0)
 
62
  ret i16 %1
 
63
 
 
64
; CHECK-LABEL: @bs16
 
65
; CHECK-NOT: rldicl 3, {{[0-9]+}}, 0, 32
 
66
; CHECK: blr
 
67
}
 
68
 
 
69
; Function Attrs: nounwind readnone
 
70
declare i16 @llvm.bswap.i16(i16) #0
 
71
 
 
72
; Function Attrs: nounwind readnone
 
73
define zeroext i32 @ctlz32(i32 zeroext %x) #0 {
 
74
entry:
 
75
  %0 = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
 
76
  ret i32 %0
 
77
 
 
78
; CHECK-LABEL: @ctlz32
 
79
; CHECK-NOT: rldicl 3, {{[0-9]+}}, 0, 32
 
80
; CHECK: blr
 
81
}
 
82
 
 
83
; Function Attrs: nounwind readnone
 
84
declare i32 @llvm.ctlz.i32(i32, i1) #0
 
85
 
 
86
 
 
87
attributes #0 = { nounwind readnone }
 
88
attributes #1 = { nounwind readonly }
 
89