xref: /llvm-project/llvm/test/CodeGen/ARM/Windows/division.ll (revision e1aa782bd073925dae4c3069e396bdd77e2199a1)
1fe83b502SSaleem Abdulrasool; RUN: llc -mtriple thumbv7-windows-itanium -filetype asm -o - %s | FileCheck %s
2fe83b502SSaleem Abdulrasool; RUN: llc -mtriple thumbv7-windows-msvc -filetype asm -o - %s | FileCheck %s
3fe83b502SSaleem Abdulrasool
4d1229248SMartell Malonedefine arm_aapcs_vfpcc i32 @sdiv32(i32 %divisor, i32 %divident) {
5d1229248SMartell Maloneentry:
6d1229248SMartell Malone  %div = sdiv i32 %divident, %divisor
7d1229248SMartell Malone  ret i32 %div
8d1229248SMartell Malone}
9d1229248SMartell Malone
10071a0991SSaleem Abdulrasool; CHECK-LABEL: sdiv32:
11*e1aa782bSSaleem Abdulrasool; CHECK: cbz r0
120dab98d9SSaleem Abdulrasool; CHECK: bl __rt_sdiv
13*e1aa782bSSaleem Abdulrasool; CHECK: __brkdiv0
14d1229248SMartell Malone
15fe83b502SSaleem Abdulrasooldefine arm_aapcs_vfpcc i32 @udiv32(i32 %divisor, i32 %divident) {
16fe83b502SSaleem Abdulrasoolentry:
17fe83b502SSaleem Abdulrasool  %div = udiv i32 %divident, %divisor
18fe83b502SSaleem Abdulrasool  ret i32 %div
19fe83b502SSaleem Abdulrasool}
20fe83b502SSaleem Abdulrasool
21fe83b502SSaleem Abdulrasool; CHECK-LABEL: udiv32:
22*e1aa782bSSaleem Abdulrasool; CHECK: cbz r0
230dab98d9SSaleem Abdulrasool; CHECK: bl __rt_udiv
24*e1aa782bSSaleem Abdulrasool; CHECK: __brkdiv0
25d1229248SMartell Malone
26d1229248SMartell Malonedefine arm_aapcs_vfpcc i64 @sdiv64(i64 %divisor, i64 %divident) {
27d1229248SMartell Maloneentry:
28d1229248SMartell Malone  %div = sdiv i64 %divident, %divisor
29d1229248SMartell Malone  ret i64 %div
30d1229248SMartell Malone}
31d1229248SMartell Malone
32071a0991SSaleem Abdulrasool; CHECK-LABEL: sdiv64:
33*e1aa782bSSaleem Abdulrasool; CHECK: orrs.w r4, r0, r1
34*e1aa782bSSaleem Abdulrasool; CHECK-NEXT: beq
350dab98d9SSaleem Abdulrasool; CHECK: bl __rt_sdiv64
36*e1aa782bSSaleem Abdulrasool; CHECK: __brkdiv0
37fe83b502SSaleem Abdulrasool
38fe83b502SSaleem Abdulrasooldefine arm_aapcs_vfpcc i64 @udiv64(i64 %divisor, i64 %divident) {
39fe83b502SSaleem Abdulrasoolentry:
40fe83b502SSaleem Abdulrasool  %div = udiv i64 %divident, %divisor
41fe83b502SSaleem Abdulrasool  ret i64 %div
42fe83b502SSaleem Abdulrasool}
43fe83b502SSaleem Abdulrasool
44fe83b502SSaleem Abdulrasool; CHECK-LABEL: udiv64:
45*e1aa782bSSaleem Abdulrasool; CHECK: orrs.w r4, r0, r1
46*e1aa782bSSaleem Abdulrasool; CHECK-NEXT: beq
470dab98d9SSaleem Abdulrasool; CHECK: bl __rt_udiv64
48*e1aa782bSSaleem Abdulrasool; CHECK: __brkdiv0
490dab98d9SSaleem Abdulrasool
50