blob: 3e649ca9a60384db4550119fa7549a80fd72d861 [file] [log] [blame]
Mehdi Amini945a6602015-02-27 18:32:11 +00001; 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
Eli Bendersky24a36eb2013-04-17 20:10:13 +00003
4define i8 @test_sdiv8(i8 %dividend, i8 %divisor) nounwind {
5entry:
6 %result = sdiv i8 %dividend, %divisor
7 ret i8 %result
8}
9
Stephen Linf799e3f2013-07-13 20:38:47 +000010; CHECK-LABEL: test_sdiv8:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000011; CHECK: movsbw
12; CHECK: idivb
13
14define i8 @test_srem8(i8 %dividend, i8 %divisor) nounwind {
15entry:
16 %result = srem i8 %dividend, %divisor
17 ret i8 %result
18}
19
Stephen Linf799e3f2013-07-13 20:38:47 +000020; CHECK-LABEL: test_srem8:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000021; CHECK: movsbw
22; CHECK: idivb
23
24define i8 @test_udiv8(i8 %dividend, i8 %divisor) nounwind {
25entry:
26 %result = udiv i8 %dividend, %divisor
27 ret i8 %result
28}
29
Stephen Linf799e3f2013-07-13 20:38:47 +000030; CHECK-LABEL: test_udiv8:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000031; CHECK: movzbw
32; CHECK: divb
33
34define i8 @test_urem8(i8 %dividend, i8 %divisor) nounwind {
35entry:
36 %result = urem i8 %dividend, %divisor
37 ret i8 %result
38}
39
Stephen Linf799e3f2013-07-13 20:38:47 +000040; CHECK-LABEL: test_urem8:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000041; CHECK: movzbw
42; CHECK: divb
43
44define i16 @test_sdiv16(i16 %dividend, i16 %divisor) nounwind {
45entry:
46 %result = sdiv i16 %dividend, %divisor
47 ret i16 %result
48}
49
Stephen Linf799e3f2013-07-13 20:38:47 +000050; CHECK-LABEL: test_sdiv16:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000051; CHECK: cwtd
52; CHECK: idivw
53
54define i16 @test_srem16(i16 %dividend, i16 %divisor) nounwind {
55entry:
56 %result = srem i16 %dividend, %divisor
57 ret i16 %result
58}
59
Stephen Linf799e3f2013-07-13 20:38:47 +000060; CHECK-LABEL: test_srem16:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000061; CHECK: cwtd
62; CHECK: idivw
63
64define i16 @test_udiv16(i16 %dividend, i16 %divisor) nounwind {
65entry:
66 %result = udiv i16 %dividend, %divisor
67 ret i16 %result
68}
69
Stephen Linf799e3f2013-07-13 20:38:47 +000070; CHECK-LABEL: test_udiv16:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000071; CHECK: xorl
72; CHECK: divw
73
74define i16 @test_urem16(i16 %dividend, i16 %divisor) nounwind {
75entry:
76 %result = urem i16 %dividend, %divisor
77 ret i16 %result
78}
79
Stephen Linf799e3f2013-07-13 20:38:47 +000080; CHECK-LABEL: test_urem16:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000081; CHECK: xorl
82; CHECK: divw
83
84define i32 @test_sdiv32(i32 %dividend, i32 %divisor) nounwind {
85entry:
86 %result = sdiv i32 %dividend, %divisor
87 ret i32 %result
88}
89
Stephen Linf799e3f2013-07-13 20:38:47 +000090; CHECK-LABEL: test_sdiv32:
Eli Bendersky24a36eb2013-04-17 20:10:13 +000091; CHECK: cltd
92; CHECK: idivl
93
94define i32 @test_srem32(i32 %dividend, i32 %divisor) nounwind {
95entry:
96 %result = srem i32 %dividend, %divisor
97 ret i32 %result
98}
99
Stephen Linf799e3f2013-07-13 20:38:47 +0000100; CHECK-LABEL: test_srem32:
Eli Bendersky24a36eb2013-04-17 20:10:13 +0000101; CHECK: cltd
102; CHECK: idivl
103
104define i32 @test_udiv32(i32 %dividend, i32 %divisor) nounwind {
105entry:
106 %result = udiv i32 %dividend, %divisor
107 ret i32 %result
108}
109
Stephen Linf799e3f2013-07-13 20:38:47 +0000110; CHECK-LABEL: test_udiv32:
Eli Bendersky24a36eb2013-04-17 20:10:13 +0000111; CHECK: xorl
112; CHECK: divl
113
114define i32 @test_urem32(i32 %dividend, i32 %divisor) nounwind {
115entry:
116 %result = urem i32 %dividend, %divisor
117 ret i32 %result
118}
119
Stephen Linf799e3f2013-07-13 20:38:47 +0000120; CHECK-LABEL: test_urem32:
Eli Bendersky24a36eb2013-04-17 20:10:13 +0000121; CHECK: xorl
122; CHECK: divl