1 ; RUN: llc -march=mips < %s | FileCheck %s -check-prefix=TRAP
2 ; RUN: llc -march=mips -mno-check-zero-division < %s |\
3 ; RUN: FileCheck %s -check-prefix=NOCHECK
6 ; TRAP: div $zero, ${{[0-9]+}}, $[[R0:[0-9]+]]
7 ; TRAP: teq $[[R0]], $zero, 7
14 define i32 @sdiv1(i32 %a0, i32 %a1) nounwind readnone {
16 %div = sdiv i32 %a0, %a1
21 ; TRAP: div $zero, ${{[0-9]+}}, $[[R0:[0-9]+]]
22 ; TRAP: teq $[[R0]], $zero, 7
25 define i32 @srem1(i32 %a0, i32 %a1) nounwind readnone {
27 %rem = srem i32 %a0, %a1
32 ; TRAP: divu $zero, ${{[0-9]+}}, $[[R0:[0-9]+]]
33 ; TRAP: teq $[[R0]], $zero, 7
36 define i32 @udiv1(i32 %a0, i32 %a1) nounwind readnone {
38 %div = udiv i32 %a0, %a1
43 ; TRAP: divu $zero, ${{[0-9]+}}, $[[R0:[0-9]+]]
44 ; TRAP: teq $[[R0]], $zero, 7
47 define i32 @urem1(i32 %a0, i32 %a1) nounwind readnone {
49 %rem = urem i32 %a0, %a1
54 define i32 @sdivrem1(i32 %a0, i32 %a1, i32* nocapture %r) nounwind {
56 %rem = srem i32 %a0, %a1
57 store i32 %rem, i32* %r, align 4
58 %div = sdiv i32 %a0, %a1
63 define i32 @udivrem1(i32 %a0, i32 %a1, i32* nocapture %r) nounwind {
65 %rem = urem i32 %a0, %a1
66 store i32 %rem, i32* %r, align 4
67 %div = udiv i32 %a0, %a1