Mercurial > hg > Members > tobaru > cbc > CbC_llvm
comparison test/CodeGen/NVPTX/arithmetic-int.ll @ 100:7d135dc70f03
LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 22:53:40 +0900 |
parents | 54457678186b |
children |
comparison
equal
deleted
inserted
replaced
96:6418606d0ead | 100:7d135dc70f03 |
---|---|
27 ; CHECK: ret | 27 ; CHECK: ret |
28 %ret = mul i64 %a, %b | 28 %ret = mul i64 %a, %b |
29 ret i64 %ret | 29 ret i64 %ret |
30 } | 30 } |
31 | 31 |
32 define i64 @umul_lohi_i64(i64 %a) { | |
33 ; CHECK-LABEL: umul_lohi_i64( | |
34 entry: | |
35 %0 = zext i64 %a to i128 | |
36 %1 = mul i128 %0, 288 | |
37 ; CHECK: mul.lo.{{u|s}}64 | |
38 ; CHECK: mul.hi.{{u|s}}64 | |
39 %2 = lshr i128 %1, 1 | |
40 %3 = trunc i128 %2 to i64 | |
41 ret i64 %3 | |
42 } | |
43 | |
44 define i64 @smul_lohi_i64(i64 %a) { | |
45 ; CHECK-LABEL: smul_lohi_i64( | |
46 entry: | |
47 %0 = sext i64 %a to i128 | |
48 %1 = mul i128 %0, 288 | |
49 ; CHECK: mul.lo.{{u|s}}64 | |
50 ; CHECK: mul.hi.{{u|s}}64 | |
51 %2 = ashr i128 %1, 1 | |
52 %3 = trunc i128 %2 to i64 | |
53 ret i64 %3 | |
54 } | |
55 | |
32 define i64 @sdiv_i64(i64 %a, i64 %b) { | 56 define i64 @sdiv_i64(i64 %a, i64 %b) { |
33 ; CHECK: div.s64 %rd{{[0-9]+}}, %rd{{[0-9]+}}, %rd{{[0-9]+}} | 57 ; CHECK: div.s64 %rd{{[0-9]+}}, %rd{{[0-9]+}}, %rd{{[0-9]+}} |
34 ; CHECK: ret | 58 ; CHECK: ret |
35 %ret = sdiv i64 %a, %b | 59 %ret = sdiv i64 %a, %b |
36 ret i64 %ret | 60 ret i64 %ret |