brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 0e55370 Raw
66 lines · plain
1; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s2 3define i64 @_f0(ptr %p) {4; CHECK: f0:5; CHECK: ldur x0, [x0, #-8]6; CHECK-NEXT: ret7  %tmp = getelementptr inbounds i64, ptr %p, i64 -18  %ret = load i64, ptr %tmp, align 29  ret i64 %ret10}11define i32 @_f1(ptr %p) {12; CHECK: f1:13; CHECK: ldur w0, [x0, #-4]14; CHECK-NEXT: ret15  %tmp = getelementptr inbounds i32, ptr %p, i64 -116  %ret = load i32, ptr %tmp, align 217  ret i32 %ret18}19define i16 @_f2(ptr %p) {20; CHECK: f2:21; CHECK: ldurh w0, [x0, #-2]22; CHECK-NEXT: ret23  %tmp = getelementptr inbounds i16, ptr %p, i64 -124  %ret = load i16, ptr %tmp, align 225  ret i16 %ret26}27define i8 @_f3(ptr %p) {28; CHECK: f3:29; CHECK: ldurb w0, [x0, #-1]30; CHECK-NEXT: ret31  %tmp = getelementptr inbounds i8, ptr %p, i64 -132  %ret = load i8, ptr %tmp, align 233  ret i8 %ret34}35 36define i64 @zext32(ptr %a) nounwind ssp {37; CHECK-LABEL: zext32:38; CHECK: ldur w0, [x0, #-12]39; CHECK-NEXT: ret40  %p = getelementptr inbounds i8, ptr %a, i64 -1241  %tmp2 = load i32, ptr %p, align 442  %ret = zext i32 %tmp2 to i6443 44  ret i64 %ret45}46define i64 @zext16(ptr %a) nounwind ssp {47; CHECK-LABEL: zext16:48; CHECK: ldurh w0, [x0, #-12]49; CHECK-NEXT: ret50  %p = getelementptr inbounds i8, ptr %a, i64 -1251  %tmp2 = load i16, ptr %p, align 252  %ret = zext i16 %tmp2 to i6453 54  ret i64 %ret55}56define i64 @zext8(ptr %a) nounwind ssp {57; CHECK-LABEL: zext8:58; CHECK: ldurb w0, [x0, #-12]59; CHECK-NEXT: ret60  %p = getelementptr inbounds i8, ptr %a, i64 -1261  %tmp2 = load i8, ptr %p, align 162  %ret = zext i8 %tmp2 to i6463 64  ret i64 %ret65}66