[ARM] support for Cortex-R4/R4F
[oota-llvm.git] / test / CodeGen / Thumb2 / div.ll
1 ; RUN: llc -mtriple=thumb-apple-darwin -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - \
2 ; RUN:    | FileCheck %s -check-prefix=CHECK-THUMB
3 ; RUN: llc -mtriple=thumb-apple-darwin -mcpu=cortex-m3 -mattr=+thumb2 %s -o - \
4 ; RUN:    | FileCheck %s -check-prefix=CHECK-THUMBV7M
5 ; RUN: llc -mtriple=thumb-apple-darwin -mcpu=swift %s -o - \
6 ; RUN:    | FileCheck %s -check-prefix=CHECK-HWDIV
7 ; RUN: llc -mtriple=thumb-apple-darwin -mcpu=cortex-r4 %s -o - \
8 ; RUN:    | FileCheck %s -check-prefix=CHECK-HWDIV
9 ; RUN: llc -mtriple=thumb-apple-darwin -mcpu=cortex-r4f %s -o - \
10 ; RUN:    | FileCheck %s -check-prefix=CHECK-HWDIV
11 ; RUN: llc -mtriple=thumb-apple-darwin -mcpu=cortex-r5 %s -o - \
12 ; RUN:    | FileCheck %s -check-prefix=CHECK-HWDIV
13
14 define i32 @f1(i32 %a, i32 %b) {
15 entry:
16 ; CHECK-THUMB: f1
17 ; CHECK-THUMB: __divsi3
18 ; CHECK-THUMBV7M: f1
19 ; CHECK-THUMBV7M: sdiv
20 ; CHECK-HWDIV: f1
21 ; CHECK-HWDIV: sdiv
22         %tmp1 = sdiv i32 %a, %b         ; <i32> [#uses=1]
23         ret i32 %tmp1
24 }
25
26 define i32 @f2(i32 %a, i32 %b) {
27 entry:
28 ; CHECK-THUMB: f2
29 ; CHECK-THUMB: __udivsi3
30 ; CHECK-THUMBV7M: f2
31 ; CHECK-THUMBV7M: udiv
32 ; CHECK-HWDIV: f2
33 ; CHECK-HWDIV: udiv
34         %tmp1 = udiv i32 %a, %b         ; <i32> [#uses=1]
35         ret i32 %tmp1
36 }
37
38 define i32 @f3(i32 %a, i32 %b) {
39 entry:
40 ; CHECK-THUMB: f3
41 ; CHECK-THUMB: __modsi3
42 ; CHECK-THUMBV7M: f3
43 ; CHECK-THUMBV7M: sdiv
44 ; CHECK-HWDIV: f3
45 ; CHECK-HWDIV: sdiv
46         %tmp1 = srem i32 %a, %b         ; <i32> [#uses=1]
47         ret i32 %tmp1
48 }
49
50 define i32 @f4(i32 %a, i32 %b) {
51 entry:
52 ; CHECK-THUMB: f4
53 ; CHECK-THUMB: __umodsi3
54 ; CHECK-THUMBV7M: f4
55 ; CHECK-THUMBV7M: udiv
56 ; CHECK-HWDIV: f4
57 ; CHECK-HWDIV: udiv
58         %tmp1 = urem i32 %a, %b         ; <i32> [#uses=1]
59         ret i32 %tmp1
60 }
61