[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / fast-isel-divrem-x86-64.ll
blob9c04ea67d5198a907fc51a27378c021a8bb1f74b
1 ; RUN: llc -mtriple=x86_64-none-linux -fast-isel -fast-isel-abort=1 -verify-machineinstrs < %s | FileCheck %s
3 define i64 @test_sdiv64(i64 %dividend, i64 %divisor) nounwind {
4 entry:
5   %result = sdiv i64 %dividend, %divisor
6   ret i64 %result
9 ; CHECK-LABEL: test_sdiv64:
10 ; CHECK: cqto
11 ; CHECK: idivq
13 define i64 @test_srem64(i64 %dividend, i64 %divisor) nounwind {
14 entry:
15   %result = srem i64 %dividend, %divisor
16   ret i64 %result
19 ; CHECK-LABEL: test_srem64:
20 ; CHECK: cqto
21 ; CHECK: idivq
23 define i64 @test_udiv64(i64 %dividend, i64 %divisor) nounwind {
24 entry:
25   %result = udiv i64 %dividend, %divisor
26   ret i64 %result
29 ; CHECK-LABEL: test_udiv64:
30 ; CHECK: xorl
31 ; CHECK: divq
33 define i64 @test_urem64(i64 %dividend, i64 %divisor) nounwind {
34 entry:
35   %result = urem i64 %dividend, %divisor
36   ret i64 %result
39 ; CHECK-LABEL: test_urem64:
40 ; CHECK: xorl
41 ; CHECK: divq