brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 153b76e Raw
91 lines · plain
1; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s2 3define i64 @f1() {4; CHECK-LABEL: f1:5entry:6        ret i64 07}8 9define i64 @f2() {10; CHECK-LABEL: f2:11entry:12        ret i64 113}14 15define i64 @f3() {16; CHECK-LABEL: f3:17; CHECK: mvn r0, #-214748364818entry:19        ret i64 214748364720}21 22define i64 @f4() {23; CHECK-LABEL: f4:24; CHECK: mov r0, #-214748364825entry:26        ret i64 214748364827}28 29define i64 @f5() {30; CHECK-LABEL: f5:31; CHECK: mvn r0, #032; CHECK: mvn r1, #-214748364833entry:34        ret i64 922337203685477580735}36 37define i64 @f6(i64 %x, i64 %y) {38; CHECK-LABEL: f6:39; CHECK: adds40; CHECK: adc41entry:42        %tmp1 = add i64 %y, 1           ; <i64> [#uses=1]43        ret i64 %tmp144}45 46define void @f7() {47; CHECK-LABEL: f7:48entry:49        %tmp = call i64 @f8( )          ; <i64> [#uses=0]50        ret void51}52 53declare i64 @f8()54 55define i64 @f9(i64 %a, i64 %b) {56; CHECK-LABEL: f9:57; CHECK: subs r58; CHECK: sbc59entry:60        %tmp = sub i64 %a, %b           ; <i64> [#uses=1]61        ret i64 %tmp62}63 64define i64 @f(i32 %a, i32 %b) {65; CHECK-LABEL: f:66; CHECK: smull67entry:68        %tmp = sext i32 %a to i64               ; <i64> [#uses=1]69        %tmp1 = sext i32 %b to i64              ; <i64> [#uses=1]70        %tmp2 = mul i64 %tmp1, %tmp             ; <i64> [#uses=1]71        ret i64 %tmp272}73 74define i64 @g(i32 %a, i32 %b) {75; CHECK-LABEL: g:76; CHECK: umull77entry:78        %tmp = zext i32 %a to i64               ; <i64> [#uses=1]79        %tmp1 = zext i32 %b to i64              ; <i64> [#uses=1]80        %tmp2 = mul i64 %tmp1, %tmp             ; <i64> [#uses=1]81        ret i64 %tmp282}83 84define i64 @f10() {85; CHECK-LABEL: f10:86entry:87        %a = alloca i64, align 8                ; <ptr> [#uses=1]88        %retval = load i64, ptr %a          ; <i64> [#uses=1]89        ret i64 %retval90}91