blob: 2449e5ad677764b4c7205ca93ad5bc06b7a70380 [file] [log] [blame]
Saleem Abdulrasool905b6d192014-04-03 23:47:24 +00001; RUN: llc -mtriple=thumb-eabi %s -o - | FileCheck %s
2; RUN: llc -mtriple=thumb-apple-darwin %s -o - | FileCheck %s -check-prefix CHECK-DARWIN
Evan Chengd76d0aa2009-06-24 06:36:07 +00003
4define i64 @f1() {
5entry:
6 ret i64 0
7}
8
9define i64 @f2() {
10entry:
11 ret i64 1
12}
13
14define i64 @f3() {
15entry:
16 ret i64 2147483647
17}
18
19define i64 @f4() {
20entry:
21 ret i64 2147483648
22}
23
24define i64 @f5() {
25entry:
26 ret i64 9223372036854775807
27}
28
29define i64 @f6(i64 %x, i64 %y) {
30entry:
31 %tmp1 = add i64 %y, 1 ; <i64> [#uses=1]
32 ret i64 %tmp1
33}
34
35define void @f7() {
36entry:
37 %tmp = call i64 @f8( ) ; <i64> [#uses=0]
38 ret void
39}
40
41declare i64 @f8()
42
43define i64 @f9(i64 %a, i64 %b) {
44entry:
45 %tmp = sub i64 %a, %b ; <i64> [#uses=1]
46 ret i64 %tmp
47}
48
49define i64 @f(i32 %a, i32 %b) {
50entry:
51 %tmp = sext i32 %a to i64 ; <i64> [#uses=1]
52 %tmp1 = sext i32 %b to i64 ; <i64> [#uses=1]
53 %tmp2 = mul i64 %tmp1, %tmp ; <i64> [#uses=1]
54 ret i64 %tmp2
55}
56
57define i64 @g(i32 %a, i32 %b) {
58entry:
59 %tmp = zext i32 %a to i64 ; <i64> [#uses=1]
60 %tmp1 = zext i32 %b to i64 ; <i64> [#uses=1]
61 %tmp2 = mul i64 %tmp1, %tmp ; <i64> [#uses=1]
62 ret i64 %tmp2
63}
64
65define i64 @f10() {
66entry:
67 %a = alloca i64, align 8 ; <i64*> [#uses=1]
68 %retval = load i64* %a ; <i64> [#uses=1]
69 ret i64 %retval
70}
71
Saleem Abdulrasool905b6d192014-04-03 23:47:24 +000072; CHECK: mvn
73; CHECK-NOT: mvn
74
75; CHECK: adc
76; CHECK-NOT: adc
77
78; CHECK: sbc
79; CHECK-NOT: sbc
80
81; CHECK-DARWIN: __muldi3
82