108 lines · plain
1; RUN: llc -O2 -mtriple=bpfel -mattr=+alu32 < %s | FileCheck %s2;3; unsigned char loadu8(unsigned char *p)4; {5; return *p;6; }7;8; unsigned short loadu16(unsigned short *p)9; {10; return *p;11; }12;13; unsigned loadu32(unsigned *p)14; {15; return *p;16; }17;18; unsigned long long loadu64(unsigned long long *p)19; {20; return *p;21; }22;23; void storeu8(unsigned char *p, unsigned long long v)24; {25; *p = (unsigned char)v;26; }27;28; void storeu16(unsigned short *p, unsigned long long v)29; {30; *p = (unsigned short)v;31; }32;33; void storeu32(unsigned *p, unsigned long long v)34; {35; *p = (unsigned)v;36; }37;38; void storeu64(unsigned long long *p, unsigned long long v)39; {40; *p = v;41; }42; Function Attrs: norecurse nounwind readonly43define dso_local zeroext i8 @loadu8(ptr nocapture readonly %p) local_unnamed_addr #0 {44entry:45 %0 = load i8, ptr %p, align 146; CHECK: w{{[0-9]+}} = *(u8 *)(r{{[0-9]+}} + 0)47 ret i8 %048}49 50; Function Attrs: norecurse nounwind readonly51define dso_local zeroext i16 @loadu16(ptr nocapture readonly %p) local_unnamed_addr #0 {52entry:53 %0 = load i16, ptr %p, align 254; CHECK: w{{[0-9]+}} = *(u16 *)(r{{[0-9]+}} + 0)55 ret i16 %056}57 58; Function Attrs: norecurse nounwind readonly59define dso_local i32 @loadu32(ptr nocapture readonly %p) local_unnamed_addr #0 {60entry:61 %0 = load i32, ptr %p, align 462; CHECK: w{{[0-9]+}} = *(u32 *)(r{{[0-9]+}} + 0)63 ret i32 %064}65 66; Function Attrs: norecurse nounwind readonly67define dso_local i64 @loadu64(ptr nocapture readonly %p) local_unnamed_addr #0 {68entry:69 %0 = load i64, ptr %p, align 870; CHECK: r{{[0-9]+}} = *(u64 *)(r{{[0-9]+}} + 0)71 ret i64 %072}73 74; Function Attrs: norecurse nounwind75define dso_local void @storeu8(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {76entry:77 %conv = trunc i64 %v to i878 store i8 %conv, ptr %p, align 179; CHECK: *(u8 *)(r{{[0-9]+}} + 0) = w{{[0-9]+}}80 ret void81}82 83; Function Attrs: norecurse nounwind84define dso_local void @storeu16(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {85entry:86 %conv = trunc i64 %v to i1687 store i16 %conv, ptr %p, align 288; CHECK: *(u16 *)(r{{[0-9]+}} + 0) = w{{[0-9]+}}89 ret void90}91 92; Function Attrs: norecurse nounwind93define dso_local void @storeu32(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {94entry:95 %conv = trunc i64 %v to i3296 store i32 %conv, ptr %p, align 497; CHECK: *(u32 *)(r{{[0-9]+}} + 0) = w{{[0-9]+}}98 ret void99}100 101; Function Attrs: norecurse nounwind102define dso_local void @storeu64(ptr nocapture %p, i64 %v) local_unnamed_addr #1 {103entry:104 store i64 %v, ptr %p, align 8105; CHECK: *(u64 *)(r{{[0-9]+}} + 0) = r{{[0-9]+}}106 ret void107}108