1 ; RUN: llc < %s -mcpu=atom -mtriple=i686-linux | FileCheck %s
3 define i32 @Test_get_quotient(i32 %a, i32 %b) nounwind {
4 ; CHECK-LABEL: Test_get_quotient:
5 ; CHECK: orl %ecx, %edx
6 ; CHECK-NEXT: testl $-256, %edx
12 %result = sdiv i32 %a, %b
16 define i32 @Test_get_remainder(i32 %a, i32 %b) nounwind {
17 ; CHECK-LABEL: Test_get_remainder:
18 ; CHECK: orl %ecx, %edx
19 ; CHECK-NEXT: testl $-256, %edx
25 %result = srem i32 %a, %b
29 define i32 @Test_get_quotient_and_remainder(i32 %a, i32 %b) nounwind {
30 ; CHECK-LABEL: Test_get_quotient_and_remainder:
31 ; CHECK: orl %ecx, %edx
32 ; CHECK-NEXT: testl $-256, %edx
40 %resultdiv = sdiv i32 %a, %b
41 %resultrem = srem i32 %a, %b
42 %result = add i32 %resultdiv, %resultrem
46 define i32 @Test_use_div_and_idiv(i32 %a, i32 %b) nounwind {
47 ; CHECK-LABEL: Test_use_div_and_idiv:
54 %resultidiv = sdiv i32 %a, %b
55 %resultdiv = udiv i32 %a, %b
56 %result = add i32 %resultidiv, %resultdiv
60 define i32 @Test_use_div_imm_imm() nounwind {
61 ; CHECK-LABEL: Test_use_div_imm_imm:
63 %resultdiv = sdiv i32 256, 4
67 define i32 @Test_use_div_reg_imm(i32 %a) nounwind {
68 ; CHECK-LABEL: Test_use_div_reg_imm:
72 %resultdiv = sdiv i32 %a, 33
76 define i32 @Test_use_rem_reg_imm(i32 %a) nounwind {
77 ; CHECK-LABEL: Test_use_rem_reg_imm:
81 %resultrem = srem i32 %a, 33
85 define i32 @Test_use_divrem_reg_imm(i32 %a) nounwind {
86 ; CHECK-LABEL: Test_use_divrem_reg_imm:
90 %resultdiv = sdiv i32 %a, 33
91 %resultrem = srem i32 %a, 33
92 %result = add i32 %resultdiv, %resultrem
96 define i32 @Test_use_div_imm_reg(i32 %a) nounwind {
97 ; CHECK-LABEL: Test_use_div_imm_reg:
101 %resultdiv = sdiv i32 4, %a
105 define i32 @Test_use_rem_imm_reg(i32 %a) nounwind {
106 ; CHECK-LABEL: Test_use_rem_imm_reg:
110 %resultdiv = sdiv i32 4, %a