brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · de0286a Raw
251 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3; Function Attrs: norecurse nounwind readonly4define fp128 @loadf128(ptr nocapture readonly %0) {5; CHECK-LABEL: loadf128:6; CHECK:       # %bb.0:7; CHECK-NEXT:    ld %s2, 8(, %s0)8; CHECK-NEXT:    ld %s3, (, %s0)9; CHECK-NEXT:    or %s0, 0, %s210; CHECK-NEXT:    or %s1, 0, %s311; CHECK-NEXT:    b.l.t (, %s10)12  %2 = load fp128, ptr %0, align 1613  ret fp128 %214}15 16; Function Attrs: norecurse nounwind readonly17define double @loadf64(ptr nocapture readonly %0) {18; CHECK-LABEL: loadf64:19; CHECK:       # %bb.0:20; CHECK-NEXT:    ld %s0, (, %s0)21; CHECK-NEXT:    b.l.t (, %s10)22  %2 = load double, ptr %0, align 1623  ret double %224}25 26; Function Attrs: norecurse nounwind readonly27define float @loadf32(ptr nocapture readonly %0) {28; CHECK-LABEL: loadf32:29; CHECK:       # %bb.0:30; CHECK-NEXT:    ldu %s0, (, %s0)31; CHECK-NEXT:    b.l.t (, %s10)32  %2 = load float, ptr %0, align 1633  ret float %234}35 36; Function Attrs: norecurse nounwind readonly37define i128 @loadi128(ptr nocapture readonly %0) {38; CHECK-LABEL: loadi128:39; CHECK:       # %bb.0:40; CHECK-NEXT:    ld %s2, (, %s0)41; CHECK-NEXT:    ld %s1, 8(, %s0)42; CHECK-NEXT:    or %s0, 0, %s243; CHECK-NEXT:    b.l.t (, %s10)44  %2 = load i128, ptr %0, align 1645  ret i128 %246}47 48; Function Attrs: norecurse nounwind readonly49define i64 @loadi64(ptr nocapture readonly %0) {50; CHECK-LABEL: loadi64:51; CHECK:       # %bb.0:52; CHECK-NEXT:    ld %s0, (, %s0)53; CHECK-NEXT:    b.l.t (, %s10)54  %2 = load i64, ptr %0, align 1655  ret i64 %256}57 58; Function Attrs: norecurse nounwind readonly59define i32 @loadi32(ptr nocapture readonly %0) {60; CHECK-LABEL: loadi32:61; CHECK:       # %bb.0:62; CHECK-NEXT:    ldl.sx %s0, (, %s0)63; CHECK-NEXT:    b.l.t (, %s10)64  %2 = load i32, ptr %0, align 1665  ret i32 %266}67 68; Function Attrs: norecurse nounwind readonly69define i64 @loadi32sext(ptr nocapture readonly %0) {70; CHECK-LABEL: loadi32sext:71; CHECK:       # %bb.0:72; CHECK-NEXT:    ldl.sx %s0, (, %s0)73; CHECK-NEXT:    b.l.t (, %s10)74  %2 = load i32, ptr %0, align 1675  %3 = sext i32 %2 to i6476  ret i64 %377}78 79; Function Attrs: norecurse nounwind readonly80define i64 @loadi32zext(ptr nocapture readonly %0) {81; CHECK-LABEL: loadi32zext:82; CHECK:       # %bb.0:83; CHECK-NEXT:    ldl.zx %s0, (, %s0)84; CHECK-NEXT:    b.l.t (, %s10)85  %2 = load i32, ptr %0, align 1686  %3 = zext i32 %2 to i6487  ret i64 %388}89 90; Function Attrs: norecurse nounwind readonly91define i16 @loadi16(ptr nocapture readonly %0) {92; CHECK-LABEL: loadi16:93; CHECK:       # %bb.0:94; CHECK-NEXT:    ld2b.zx %s0, (, %s0)95; CHECK-NEXT:    b.l.t (, %s10)96  %2 = load i16, ptr %0, align 1697  ret i16 %298}99 100; Function Attrs: norecurse nounwind readonly101define i64 @loadi16sext(ptr nocapture readonly %0) {102; CHECK-LABEL: loadi16sext:103; CHECK:       # %bb.0:104; CHECK-NEXT:    ld2b.sx %s0, (, %s0)105; CHECK-NEXT:    b.l.t (, %s10)106  %2 = load i16, ptr %0, align 16107  %3 = sext i16 %2 to i64108  ret i64 %3109}110 111; Function Attrs: norecurse nounwind readonly112define i64 @loadi16zext(ptr nocapture readonly %0) {113; CHECK-LABEL: loadi16zext:114; CHECK:       # %bb.0:115; CHECK-NEXT:    ld2b.zx %s0, (, %s0)116; CHECK-NEXT:    b.l.t (, %s10)117  %2 = load i16, ptr %0, align 16118  %3 = zext i16 %2 to i64119  ret i64 %3120}121 122; Function Attrs: norecurse nounwind readonly123define i8 @loadi8(ptr nocapture readonly %0) {124; CHECK-LABEL: loadi8:125; CHECK:       # %bb.0:126; CHECK-NEXT:    ld1b.zx %s0, (, %s0)127; CHECK-NEXT:    b.l.t (, %s10)128  %2 = load i8, ptr %0, align 16129  ret i8 %2130}131 132; Function Attrs: norecurse nounwind readonly133define i64 @loadi8sext(ptr nocapture readonly %0) {134; CHECK-LABEL: loadi8sext:135; CHECK:       # %bb.0:136; CHECK-NEXT:    ld1b.sx %s0, (, %s0)137; CHECK-NEXT:    b.l.t (, %s10)138  %2 = load i8, ptr %0, align 16139  %3 = sext i8 %2 to i64140  ret i64 %3141}142 143; Function Attrs: norecurse nounwind readonly144define i64 @loadi8zext(ptr nocapture readonly %0) {145; CHECK-LABEL: loadi8zext:146; CHECK:       # %bb.0:147; CHECK-NEXT:    ld1b.zx %s0, (, %s0)148; CHECK-NEXT:    b.l.t (, %s10)149  %2 = load i8, ptr %0, align 16150  %3 = zext i8 %2 to i64151  ret i64 %3152}153 154; Function Attrs: norecurse nounwind readonly155define fp128 @loadf128stk() {156; CHECK-LABEL: loadf128stk:157; CHECK:       .LBB{{[0-9]+}}_2:158; CHECK-NEXT:    ld %s1, (, %s11)159; CHECK-NEXT:    ld %s0, 8(, %s11)160; CHECK-NEXT:    adds.l %s11, 16, %s11161; CHECK-NEXT:    b.l.t (, %s10)162  %addr = alloca fp128, align 16163  %1 = load fp128, ptr %addr, align 16164  ret fp128 %1165}166 167; Function Attrs: norecurse nounwind readonly168define double @loadf64stk() {169; CHECK-LABEL: loadf64stk:170; CHECK:       .LBB{{[0-9]+}}_2:171; CHECK-NEXT:    ld %s0, (, %s11)172; CHECK-NEXT:    adds.l %s11, 16, %s11173; CHECK-NEXT:    b.l.t (, %s10)174  %addr = alloca double, align 16175  %1 = load double, ptr %addr, align 16176  ret double %1177}178 179; Function Attrs: norecurse nounwind readonly180define float @loadf32stk() {181; CHECK-LABEL: loadf32stk:182; CHECK:       .LBB{{[0-9]+}}_2:183; CHECK-NEXT:    ldu %s0, (, %s11)184; CHECK-NEXT:    adds.l %s11, 16, %s11185; CHECK-NEXT:    b.l.t (, %s10)186  %addr = alloca float, align 16187  %1 = load float, ptr %addr, align 16188  ret float %1189}190 191; Function Attrs: norecurse nounwind readonly192define i128 @loadi128stk() {193; CHECK-LABEL: loadi128stk:194; CHECK:       .LBB{{[0-9]+}}_2:195; CHECK-NEXT:    ld %s0, (, %s11)196; CHECK-NEXT:    ld %s1, 8(, %s11)197; CHECK-NEXT:    adds.l %s11, 16, %s11198; CHECK-NEXT:    b.l.t (, %s10)199  %addr = alloca i128, align 16200  %1 = load i128, ptr %addr, align 16201  ret i128 %1202}203 204; Function Attrs: norecurse nounwind readonly205define i64 @loadi64stk() {206; CHECK-LABEL: loadi64stk:207; CHECK:       .LBB{{[0-9]+}}_2:208; CHECK-NEXT:    ld %s0, (, %s11)209; CHECK-NEXT:    adds.l %s11, 16, %s11210; CHECK-NEXT:    b.l.t (, %s10)211  %addr = alloca i64, align 16212  %1 = load i64, ptr %addr, align 16213  ret i64 %1214}215 216; Function Attrs: norecurse nounwind readonly217define i32 @loadi32stk() {218; CHECK-LABEL: loadi32stk:219; CHECK:       .LBB{{[0-9]+}}_2:220; CHECK-NEXT:    ldl.sx %s0, (, %s11)221; CHECK-NEXT:    adds.l %s11, 16, %s11222; CHECK-NEXT:    b.l.t (, %s10)223  %addr = alloca i32, align 16224  %1 = load i32, ptr %addr, align 16225  ret i32 %1226}227 228; Function Attrs: norecurse nounwind readonly229define i16 @loadi16stk() {230; CHECK-LABEL: loadi16stk:231; CHECK:       .LBB{{[0-9]+}}_2:232; CHECK-NEXT:    ld2b.zx %s0, (, %s11)233; CHECK-NEXT:    adds.l %s11, 16, %s11234; CHECK-NEXT:    b.l.t (, %s10)235  %addr = alloca i16, align 16236  %1 = load i16, ptr %addr, align 16237  ret i16 %1238}239 240; Function Attrs: norecurse nounwind readonly241define i8 @loadi8stk() {242; CHECK-LABEL: loadi8stk:243; CHECK:       .LBB{{[0-9]+}}_2:244; CHECK-NEXT:    ld1b.zx %s0, (, %s11)245; CHECK-NEXT:    adds.l %s11, 16, %s11246; CHECK-NEXT:    b.l.t (, %s10)247  %addr = alloca i8, align 16248  %1 = load i8, ptr %addr, align 16249  ret i8 %1250}251