~ubuntu-branches/ubuntu/quantal/llvm-3.1/quantal

« back to all changes in this revision

Viewing changes to test/CodeGen/XCore/ashr.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2012-03-29 19:09:51 UTC
  • Revision ID: package-import@ubuntu.com-20120329190951-aq83ivog4cg8bxun
Tags: upstream-3.1~svn153643
ImportĀ upstreamĀ versionĀ 3.1~svn153643

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s -march=xcore -asm-verbose=0 | FileCheck %s
 
2
define i32 @ashr(i32 %a, i32 %b) {
 
3
        %1 = ashr i32 %a, %b
 
4
        ret i32 %1
 
5
}
 
6
; CHECK: ashr:
 
7
; CHECK-NEXT: ashr r0, r0, r1
 
8
 
 
9
define i32 @ashri1(i32 %a) {
 
10
        %1 = ashr i32 %a, 24
 
11
        ret i32 %1
 
12
}
 
13
; CHECK: ashri1:
 
14
; CHECK-NEXT: ashr r0, r0, 24
 
15
 
 
16
define i32 @ashri2(i32 %a) {
 
17
        %1 = ashr i32 %a, 31
 
18
        ret i32 %1
 
19
}
 
20
; CHECK: ashri2:
 
21
; CHECK-NEXT: ashr r0, r0, 32
 
22
 
 
23
define i32 @f1(i32 %a) {
 
24
        %1 = icmp slt i32 %a, 0
 
25
        br i1 %1, label %less, label %not_less
 
26
less:
 
27
        ret i32 10
 
28
not_less:
 
29
        ret i32 17
 
30
}
 
31
; CHECK: f1:
 
32
; CHECK-NEXT: ashr r0, r0, 32
 
33
; CHECK-NEXT: bf r0
 
34
 
 
35
define i32 @f2(i32 %a) {
 
36
        %1 = icmp sge i32 %a, 0
 
37
        br i1 %1, label %greater, label %not_greater
 
38
greater:
 
39
        ret i32 10
 
40
not_greater:
 
41
        ret i32 17
 
42
}
 
43
; CHECK: f2:
 
44
; CHECK-NEXT: ashr r0, r0, 32
 
45
; CHECK-NEXT: bt r0
 
46
 
 
47
define i32 @f3(i32 %a) {
 
48
        %1 = icmp slt i32 %a, 0
 
49
        %2 = select i1 %1, i32 10, i32 17
 
50
        ret i32 %2
 
51
}
 
52
; CHECK: f3:
 
53
; CHECK-NEXT: ashr r0, r0, 32
 
54
; CHECK-NEXT: bf r0
 
55
; CHECK-NEXT: ldc r0, 10
 
56
; CHECK: ldc r0, 17
 
57
 
 
58
define i32 @f4(i32 %a) {
 
59
        %1 = icmp sge i32 %a, 0
 
60
        %2 = select i1 %1, i32 10, i32 17
 
61
        ret i32 %2
 
62
}
 
63
; CHECK: f4:
 
64
; CHECK-NEXT: ashr r0, r0, 32
 
65
; CHECK-NEXT: bf r0
 
66
; CHECK-NEXT: ldc r0, 17
 
67
; CHECK: ldc r0, 10
 
68
 
 
69
define i32 @f5(i32 %a) {
 
70
        %1 = icmp sge i32 %a, 0
 
71
        %2 = zext i1 %1 to i32
 
72
        ret i32 %2
 
73
}
 
74
; CHECK: f5:
 
75
; CHECK-NEXT: ashr r0, r0, 32
 
76
; CHECK-NEXT: eq r0, r0, 0