~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/X86/fast-isel-divrem.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 -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort=1 -verify-machineinstrs < %s | FileCheck %s
 
2
; RUN: llc -mtriple=i686-none-linux -fast-isel -fast-isel-abort=1 -verify-machineinstrs < %s | FileCheck %s
 
3
 
 
4
define i8 @test_sdiv8(i8 %dividend, i8 %divisor) nounwind {
 
5
entry:
 
6
  %result = sdiv i8 %dividend, %divisor
 
7
  ret i8 %result
 
8
}
 
9
 
 
10
; CHECK-LABEL: test_sdiv8:
 
11
; CHECK: movsbw
 
12
; CHECK: idivb
 
13
 
 
14
define i8 @test_srem8(i8 %dividend, i8 %divisor) nounwind {
 
15
entry:
 
16
  %result = srem i8 %dividend, %divisor
 
17
  ret i8 %result
 
18
}
 
19
 
 
20
; CHECK-LABEL: test_srem8:
 
21
; CHECK: movsbw
 
22
; CHECK: idivb
 
23
 
 
24
define i8 @test_udiv8(i8 %dividend, i8 %divisor) nounwind {
 
25
entry:
 
26
  %result = udiv i8 %dividend, %divisor
 
27
  ret i8 %result
 
28
}
 
29
 
 
30
; CHECK-LABEL: test_udiv8:
 
31
; CHECK: movzbw
 
32
; CHECK: divb
 
33
 
 
34
define i8 @test_urem8(i8 %dividend, i8 %divisor) nounwind {
 
35
entry:
 
36
  %result = urem i8 %dividend, %divisor
 
37
  ret i8 %result
 
38
}
 
39
 
 
40
; CHECK-LABEL: test_urem8:
 
41
; CHECK: movzbw
 
42
; CHECK: divb
 
43
 
 
44
define i16 @test_sdiv16(i16 %dividend, i16 %divisor) nounwind {
 
45
entry:
 
46
  %result = sdiv i16 %dividend, %divisor
 
47
  ret i16 %result
 
48
}
 
49
 
 
50
; CHECK-LABEL: test_sdiv16:
 
51
; CHECK: cwtd
 
52
; CHECK: idivw
 
53
 
 
54
define i16 @test_srem16(i16 %dividend, i16 %divisor) nounwind {
 
55
entry:
 
56
  %result = srem i16 %dividend, %divisor
 
57
  ret i16 %result
 
58
}
 
59
 
 
60
; CHECK-LABEL: test_srem16:
 
61
; CHECK: cwtd
 
62
; CHECK: idivw
 
63
 
 
64
define i16 @test_udiv16(i16 %dividend, i16 %divisor) nounwind {
 
65
entry:
 
66
  %result = udiv i16 %dividend, %divisor
 
67
  ret i16 %result
 
68
}
 
69
 
 
70
; CHECK-LABEL: test_udiv16:
 
71
; CHECK: xorl
 
72
; CHECK: divw
 
73
 
 
74
define i16 @test_urem16(i16 %dividend, i16 %divisor) nounwind {
 
75
entry:
 
76
  %result = urem i16 %dividend, %divisor
 
77
  ret i16 %result
 
78
}
 
79
 
 
80
; CHECK-LABEL: test_urem16:
 
81
; CHECK: xorl
 
82
; CHECK: divw
 
83
 
 
84
define i32 @test_sdiv32(i32 %dividend, i32 %divisor) nounwind {
 
85
entry:
 
86
  %result = sdiv i32 %dividend, %divisor
 
87
  ret i32 %result
 
88
}
 
89
 
 
90
; CHECK-LABEL: test_sdiv32:
 
91
; CHECK: cltd
 
92
; CHECK: idivl
 
93
 
 
94
define i32 @test_srem32(i32 %dividend, i32 %divisor) nounwind {
 
95
entry:
 
96
  %result = srem i32 %dividend, %divisor
 
97
  ret i32 %result
 
98
}
 
99
 
 
100
; CHECK-LABEL: test_srem32:
 
101
; CHECK: cltd
 
102
; CHECK: idivl
 
103
 
 
104
define i32 @test_udiv32(i32 %dividend, i32 %divisor) nounwind {
 
105
entry:
 
106
  %result = udiv i32 %dividend, %divisor
 
107
  ret i32 %result
 
108
}
 
109
 
 
110
; CHECK-LABEL: test_udiv32:
 
111
; CHECK: xorl
 
112
; CHECK: divl
 
113
 
 
114
define i32 @test_urem32(i32 %dividend, i32 %divisor) nounwind {
 
115
entry:
 
116
  %result = urem i32 %dividend, %divisor
 
117
  ret i32 %result
 
118
}
 
119
 
 
120
; CHECK-LABEL: test_urem32:
 
121
; CHECK: xorl
 
122
; CHECK: divl