brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 3805e88 Raw
160 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3@vi8 = common dso_local local_unnamed_addr global i8 0, align 84@vi16 = common dso_local local_unnamed_addr global i16 0, align 85@vi32 = common dso_local local_unnamed_addr global i32 0, align 86@vi64 = common dso_local local_unnamed_addr global i64 0, align 87@vf32 = common dso_local local_unnamed_addr global float 0.000000e+00, align 88@vf64 = common dso_local local_unnamed_addr global double 0.000000e+00, align 89 10; Function Attrs: norecurse nounwind readonly11define double @loadf64stk() {12; CHECK-LABEL: loadf64stk:13; CHECK:       .LBB{{[0-9]+}}_2:14; CHECK-NEXT:    ld %s0, 8(, %s11)15; CHECK-NEXT:    adds.l %s11, 16, %s1116; CHECK-NEXT:    b.l.t (, %s10)17  %addr = alloca double, align 818  %1 = load double, ptr %addr, align 819  ret double %120}21 22; Function Attrs: norecurse nounwind readonly23define float @loadf32stk() {24; CHECK-LABEL: loadf32stk:25; CHECK:       .LBB{{[0-9]+}}_2:26; CHECK-NEXT:    ldu %s0, 8(, %s11)27; CHECK-NEXT:    adds.l %s11, 16, %s1128; CHECK-NEXT:    b.l.t (, %s10)29  %addr = alloca float, align 830  %1 = load float, ptr %addr, align 831  ret float %132}33 34; Function Attrs: norecurse nounwind readonly35define i64 @loadi64stk() {36; CHECK-LABEL: loadi64stk:37; CHECK:       .LBB{{[0-9]+}}_2:38; CHECK-NEXT:    ld %s0, 8(, %s11)39; CHECK-NEXT:    adds.l %s11, 16, %s1140; CHECK-NEXT:    b.l.t (, %s10)41  %addr = alloca i64, align 842  %1 = load i64, ptr %addr, align 843  ret i64 %144}45 46; Function Attrs: norecurse nounwind readonly47define i32 @loadi32stk() {48; CHECK-LABEL: loadi32stk:49; CHECK:       .LBB{{[0-9]+}}_2:50; CHECK-NEXT:    ldl.sx %s0, 8(, %s11)51; CHECK-NEXT:    adds.l %s11, 16, %s1152; CHECK-NEXT:    b.l.t (, %s10)53  %addr = alloca i32, align 854  %1 = load i32, ptr %addr, align 855  ret i32 %156}57 58; Function Attrs: norecurse nounwind readonly59define i16 @loadi16stk() {60; CHECK-LABEL: loadi16stk:61; CHECK:       .LBB{{[0-9]+}}_2:62; CHECK-NEXT:    ld2b.zx %s0, 8(, %s11)63; CHECK-NEXT:    adds.l %s11, 16, %s1164; CHECK-NEXT:    b.l.t (, %s10)65  %addr = alloca i16, align 866  %1 = load i16, ptr %addr, align 867  ret i16 %168}69 70; Function Attrs: norecurse nounwind readonly71define i8 @loadi8stk() {72; CHECK-LABEL: loadi8stk:73; CHECK:       .LBB{{[0-9]+}}_2:74; CHECK-NEXT:    ld1b.zx %s0, 8(, %s11)75; CHECK-NEXT:    adds.l %s11, 16, %s1176; CHECK-NEXT:    b.l.t (, %s10)77  %addr = alloca i8, align 878  %1 = load i8, ptr %addr, align 879  ret i8 %180}81 82; Function Attrs: norecurse nounwind readonly83define double @loadf64com() {84; CHECK-LABEL: loadf64com:85; CHECK:       # %bb.0:86; CHECK-NEXT:    lea %s0, vf64@lo87; CHECK-NEXT:    and %s0, %s0, (32)088; CHECK-NEXT:    lea.sl %s0, vf64@hi(, %s0)89; CHECK-NEXT:    ld %s0, (, %s0)90; CHECK-NEXT:    b.l.t (, %s10)91  %1 = load double, ptr @vf64, align 892  ret double %193}94 95; Function Attrs: norecurse nounwind readonly96define float @loadf32com() {97; CHECK-LABEL: loadf32com:98; CHECK:       # %bb.0:99; CHECK-NEXT:    lea %s0, vf32@lo100; CHECK-NEXT:    and %s0, %s0, (32)0101; CHECK-NEXT:    lea.sl %s0, vf32@hi(, %s0)102; CHECK-NEXT:    ldu %s0, (, %s0)103; CHECK-NEXT:    b.l.t (, %s10)104  %1 = load float, ptr @vf32, align 8105  ret float %1106}107 108; Function Attrs: norecurse nounwind readonly109define i64 @loadi64com() {110; CHECK-LABEL: loadi64com:111; CHECK:       # %bb.0:112; CHECK-NEXT:    lea %s0, vi64@lo113; CHECK-NEXT:    and %s0, %s0, (32)0114; CHECK-NEXT:    lea.sl %s0, vi64@hi(, %s0)115; CHECK-NEXT:    ld %s0, (, %s0)116; CHECK-NEXT:    b.l.t (, %s10)117  %1 = load i64, ptr @vi64, align 8118  ret i64 %1119}120 121; Function Attrs: norecurse nounwind readonly122define i32 @loadi32com() {123; CHECK-LABEL: loadi32com:124; CHECK:       # %bb.0:125; CHECK-NEXT:    lea %s0, vi32@lo126; CHECK-NEXT:    and %s0, %s0, (32)0127; CHECK-NEXT:    lea.sl %s0, vi32@hi(, %s0)128; CHECK-NEXT:    ldl.sx %s0, (, %s0)129; CHECK-NEXT:    b.l.t (, %s10)130  %1 = load i32, ptr @vi32, align 8131  ret i32 %1132}133 134; Function Attrs: norecurse nounwind readonly135define i16 @loadi16com() {136; CHECK-LABEL: loadi16com:137; CHECK:       # %bb.0:138; CHECK-NEXT:    lea %s0, vi16@lo139; CHECK-NEXT:    and %s0, %s0, (32)0140; CHECK-NEXT:    lea.sl %s0, vi16@hi(, %s0)141; CHECK-NEXT:    ld2b.zx %s0, (, %s0)142; CHECK-NEXT:    b.l.t (, %s10)143  %1 = load i16, ptr @vi16, align 8144  ret i16 %1145}146 147; Function Attrs: norecurse nounwind readonly148define i8 @loadi8com() {149; CHECK-LABEL: loadi8com:150; CHECK:       # %bb.0:151; CHECK-NEXT:    lea %s0, vi8@lo152; CHECK-NEXT:    and %s0, %s0, (32)0153; CHECK-NEXT:    lea.sl %s0, vi8@hi(, %s0)154; CHECK-NEXT:    ld1b.zx %s0, (, %s0)155; CHECK-NEXT:    b.l.t (, %s10)156  %1 = load i8, ptr @vi8, align 8157  ret i8 %1158}159 160