blob: 098226e3f335f4da697c51bbbb6f8fc720af5cc0 [file] [log] [blame]
Saleem Abdulrasoolfe83b502015-09-25 05:15:46 +00001; RUN: llc -mtriple thumbv7-windows-itanium -filetype asm -o - %s | FileCheck %s
2; RUN: llc -mtriple thumbv7-windows-msvc -filetype asm -o - %s | FileCheck %s
3
Martell Maloned1229242015-11-26 15:34:03 +00004define arm_aapcs_vfpcc i32 @sdiv32(i32 %divisor, i32 %divident) {
5entry:
6 %div = sdiv i32 %divident, %divisor
7 ret i32 %div
8}
9
Saleem Abdulrasool071a0992016-03-17 14:10:49 +000010; CHECK-LABEL: sdiv32:
11; CHECK: cbz r0
12; CHECK: bl __rt_sdiv
13; CHECK: udf.w #249
Martell Maloned1229242015-11-26 15:34:03 +000014
Saleem Abdulrasoolfe83b502015-09-25 05:15:46 +000015define arm_aapcs_vfpcc i32 @udiv32(i32 %divisor, i32 %divident) {
16entry:
17 %div = udiv i32 %divident, %divisor
18 ret i32 %div
19}
20
21; CHECK-LABEL: udiv32:
Saleem Abdulrasool071a0992016-03-17 14:10:49 +000022; CHECK: cbz r0
23; CHECK: bl __rt_udiv
24; CHECK: udf.w #249
Martell Maloned1229242015-11-26 15:34:03 +000025
26define arm_aapcs_vfpcc i64 @sdiv64(i64 %divisor, i64 %divident) {
27entry:
28 %div = sdiv i64 %divident, %divisor
29 ret i64 %div
30}
31
Saleem Abdulrasool071a0992016-03-17 14:10:49 +000032; CHECK-LABEL: sdiv64:
33; CHECK: orr.w r12, r0, r1
34; CHECK-NEXT: cbz r12
Martell Maloned1229242015-11-26 15:34:03 +000035; CHECK: bl __rt_sdiv64
Saleem Abdulrasool071a0992016-03-17 14:10:49 +000036; CHECK: udf.w #249
Saleem Abdulrasoolfe83b502015-09-25 05:15:46 +000037
Saleem Abdulrasoolfe83b502015-09-25 05:15:46 +000038define arm_aapcs_vfpcc i64 @udiv64(i64 %divisor, i64 %divident) {
39entry:
40 %div = udiv i64 %divident, %divisor
41 ret i64 %div
42}
43
44; CHECK-LABEL: udiv64:
Saleem Abdulrasool071a0992016-03-17 14:10:49 +000045; CHECK: orr.w r12, r0, r1
46; CHECK-NEXT: cbz r12
Saleem Abdulrasoolfe83b502015-09-25 05:15:46 +000047; CHECK: bl __rt_udiv64
Saleem Abdulrasool071a0992016-03-17 14:10:49 +000048; CHECK: udf.w #249
49