71 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s3 4define i8 @sdiv_neg_neg_high_bits(i8 %x, i8 %y) {5; CHECK-LABEL: sdiv_neg_neg_high_bits:6; CHECK: # %bb.0:7; CHECK-NEXT: xorl %eax, %eax8; CHECK-NEXT: retq9 %num = or i8 %x, 12810 %denum = or i8 %y, 13111 %div = sdiv i8 %num, %denum12 %r = and i8 %div, 12813 ret i8 %r14}15 16define i8 @sdiv_exact_odd_odd(i8 %x, i8 %y) {17; CHECK-LABEL: sdiv_exact_odd_odd:18; CHECK: # %bb.0:19; CHECK-NEXT: movb $1, %al20; CHECK-NEXT: retq21 %num = or i8 %x, 122 %denum = or i8 %y, 123 %div = sdiv exact i8 %num, %denum24 %r = and i8 %div, 125 ret i8 %r26}27 28define i8 @sdiv_exact_even_even_fail_unknown(i8 %x, i8 %y) {29; CHECK-LABEL: sdiv_exact_even_even_fail_unknown:30; CHECK: # %bb.0:31; CHECK-NEXT: andb $-2, %dil32; CHECK-NEXT: andb $-2, %sil33; CHECK-NEXT: movsbl %dil, %eax34; CHECK-NEXT: idivb %sil35; CHECK-NEXT: andb $1, %al36; CHECK-NEXT: retq37 %num = and i8 %x, -238 %denum = and i8 %y, -239 %div = sdiv exact i8 %num, %denum40 %r = and i8 %div, 141 ret i8 %r42}43 44define i8 @udiv_exact_even_odd(i8 %x, i8 %y) {45; CHECK-LABEL: udiv_exact_even_odd:46; CHECK: # %bb.0:47; CHECK-NEXT: xorl %eax, %eax48; CHECK-NEXT: retq49 %num = and i8 %x, -250 %denum = or i8 %y, 151 %div = udiv exact i8 %num, %denum52 %r = and i8 %div, 153 ret i8 %r54}55 56define i8 @udiv_exact_even_even_fail_unknown(i8 %x, i8 %y) {57; CHECK-LABEL: udiv_exact_even_even_fail_unknown:58; CHECK: # %bb.0:59; CHECK-NEXT: andb $-2, %dil60; CHECK-NEXT: andb $-2, %sil61; CHECK-NEXT: movzbl %dil, %eax62; CHECK-NEXT: divb %sil63; CHECK-NEXT: andb $1, %al64; CHECK-NEXT: retq65 %num = and i8 %x, -266 %denum = and i8 %y, -267 %div = udiv exact i8 %num, %denum68 %r = and i8 %div, 169 ret i8 %r70}71