blob: 73e3556c63ed12dc8f675f0aa62979602ce3ab20 [file] [log] [blame]
Alexei Starovoitov9a672452017-11-19 01:35:00 +00001; RUN: llc < %s -march=bpfel | FileCheck %s
Alexei Starovoitove4c8c802015-01-24 17:51:26 +00002
3define void @test() #0 {
4entry:
5; CHECK: test:
6
7; CHECK: call f_i16
Alexei Starovoitov8f9f8212016-11-18 02:32:35 +00008; CHECK: *(u16 *)(r1 + 0) = r0
Alexei Starovoitove4c8c802015-01-24 17:51:26 +00009 %0 = call i16 @f_i16()
10 store volatile i16 %0, i16* @g_i16
11
12; CHECK: call f_i32
Alexei Starovoitov8f9f8212016-11-18 02:32:35 +000013; CHECK: *(u32 *)(r1 + 0) = r0
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000014 %1 = call i32 @f_i32()
15 store volatile i32 %1, i32* @g_i32
16
17; CHECK: call f_i64
Alexei Starovoitov8f9f8212016-11-18 02:32:35 +000018; CHECK: *(u64 *)(r1 + 0) = r0
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000019 %2 = call i64 @f_i64()
20 store volatile i64 %2, i64* @g_i64
21
22 ret void
23}
24
25@g_i16 = common global i16 0, align 2
26@g_i32 = common global i32 0, align 2
27@g_i64 = common global i64 0, align 2
28
29define i16 @f_i16() #0 {
30; CHECK: f_i16:
Alexei Starovoitov8f9f8212016-11-18 02:32:35 +000031; CHECK: r0 = 1
32; CHECK: exit
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000033 ret i16 1
34}
35
36define i32 @f_i32() #0 {
37; CHECK: f_i32:
Alexei Starovoitov8f9f8212016-11-18 02:32:35 +000038; CHECK: r0 = 16909060
39; CHECK: exit
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000040 ret i32 16909060
41}
42
43define i64 @f_i64() #0 {
44; CHECK: f_i64:
Yonghong Songbe9c0032017-09-11 23:43:35 +000045; CHECK: r0 = 72623859790382856 ll
Alexei Starovoitov8f9f8212016-11-18 02:32:35 +000046; CHECK: exit
Alexei Starovoitove4c8c802015-01-24 17:51:26 +000047 ret i64 72623859790382856
48}