brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 8a20f5d Raw
133 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=aarch64 -code-model=tiny -verify-machineinstrs | FileCheck %s3 4%struct.T = type <{ i32, i64, i8, i32 }>5 6@ptr = external dso_local local_unnamed_addr global ptr, align 87@ch = external dso_local local_unnamed_addr global i32, align 48@ch8 = external dso_local local_unnamed_addr global i8, align 49@t = external dso_local local_unnamed_addr global %struct.T, align 410@t2 = external dso_local local_unnamed_addr global %struct.T, align 211@f = external dso_local local_unnamed_addr global float, align 412 13define i32 @barp() {14; CHECK-LABEL: barp:15; CHECK:       // %bb.0: // %entry16; CHECK-NEXT:    ldr x8, ptr17; CHECK-NEXT:    ldr w0, [x8]18; CHECK-NEXT:    ret19entry:20  %0 = load ptr, ptr @ptr, align 821  %1 = load i32, ptr %0, align 422  ret i32 %123}24 25define i32 @barch() {26; CHECK-LABEL: barch:27; CHECK:       // %bb.0: // %entry28; CHECK-NEXT:    ldr w0, ch29; CHECK-NEXT:    ret30entry:31  %0 = load i32, ptr @ch, align 432  ret i32 %033}34 35define i32 @barta() {36; CHECK-LABEL: barta:37; CHECK:       // %bb.0: // %entry38; CHECK-NEXT:    ldr w0, t39; CHECK-NEXT:    ret40entry:41  %0 = load i32, ptr @t, align 442  ret i32 %043}44 45define i64 @bartb() {46; CHECK-LABEL: bartb:47; CHECK:       // %bb.0: // %entry48; CHECK-NEXT:    ldr x0, t+449; CHECK-NEXT:    ret50entry:51  %0 = load i64, ptr getelementptr inbounds (%struct.T, ptr @t, i64 0, i32 1), align 852  ret i64 %053}54 55define i32 @bartc() {56; CHECK-LABEL: bartc:57; CHECK:       // %bb.0: // %entry58; CHECK-NEXT:    adr x8, t+1359; CHECK-NEXT:    ldr w0, [x8]60; CHECK-NEXT:    ret61entry:62  %0 = load i32, ptr getelementptr inbounds (%struct.T, ptr @t, i64 0, i32 3), align 163  ret i32 %064}65 66define i32 @bart2a() {67; CHECK-LABEL: bart2a:68; CHECK:       // %bb.0: // %entry69; CHECK-NEXT:    adr x8, t270; CHECK-NEXT:    ldr w0, [x8]71; CHECK-NEXT:    ret72entry:73  %0 = load i32, ptr @t2, align 274  ret i32 %075}76 77define i64 @zextload() {78; CHECK-LABEL: zextload:79; CHECK:       // %bb.0: // %entry80; CHECK-NEXT:    ldr w0, ch81; CHECK-NEXT:    ret82entry:83  %0 = load i32, ptr @ch, align 484  %1 = zext i32 %0 to i6485  ret i64 %186}87 88define i64 @zextload8() {89; CHECK-LABEL: zextload8:90; CHECK:       // %bb.0: // %entry91; CHECK-NEXT:    adr x8, ch892; CHECK-NEXT:    ldrb w0, [x8]93; CHECK-NEXT:    ret94entry:95  %0 = load i8, ptr @ch8, align 496  %1 = zext i8 %0 to i6497  ret i64 %198}99 100define i64 @sextload() {101; CHECK-LABEL: sextload:102; CHECK:       // %bb.0: // %entry103; CHECK-NEXT:    ldrsw x0, ch104; CHECK-NEXT:    ret105entry:106  %0 = load i32, ptr @ch, align 4107  %1 = sext i32 %0 to i64108  ret i64 %1109}110 111define i64 @sextload8() {112; CHECK-LABEL: sextload8:113; CHECK:       // %bb.0: // %entry114; CHECK-NEXT:    adr x8, ch8115; CHECK-NEXT:    ldrsb x0, [x8]116; CHECK-NEXT:    ret117entry:118  %0 = load i8, ptr @ch8, align 4119  %1 = sext i8 %0 to i64120  ret i64 %1121}122 123define float @floatload() {124; CHECK-LABEL: floatload:125; CHECK:       // %bb.0: // %entry126; CHECK-NEXT:    ldr s0, f127; CHECK-NEXT:    ret128entry:129  %0 = load float, ptr @f, align 4130  ret float %0131}132 133