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