11943b7f1SSimon Moll; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s 21943b7f1SSimon Moll 31943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 4*b006b60dSNikita Popovdefine fp128 @loadf128(ptr nocapture readonly %0) { 51943b7f1SSimon Moll; CHECK-LABEL: loadf128: 644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 71943b7f1SSimon Moll; CHECK-NEXT: ld %s2, 8(, %s0) 81943b7f1SSimon Moll; CHECK-NEXT: ld %s3, (, %s0) 91943b7f1SSimon Moll; CHECK-NEXT: or %s0, 0, %s2 101943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, %s3 1144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12*b006b60dSNikita Popov %2 = load fp128, ptr %0, align 16 131943b7f1SSimon Moll ret fp128 %2 141943b7f1SSimon Moll} 151943b7f1SSimon Moll 161943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 17*b006b60dSNikita Popovdefine double @loadf64(ptr nocapture readonly %0) { 181943b7f1SSimon Moll; CHECK-LABEL: loadf64: 1944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 201943b7f1SSimon Moll; CHECK-NEXT: ld %s0, (, %s0) 2144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 22*b006b60dSNikita Popov %2 = load double, ptr %0, align 16 231943b7f1SSimon Moll ret double %2 241943b7f1SSimon Moll} 251943b7f1SSimon Moll 261943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 27*b006b60dSNikita Popovdefine float @loadf32(ptr nocapture readonly %0) { 281943b7f1SSimon Moll; CHECK-LABEL: loadf32: 2944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 301943b7f1SSimon Moll; CHECK-NEXT: ldu %s0, (, %s0) 3144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 32*b006b60dSNikita Popov %2 = load float, ptr %0, align 16 331943b7f1SSimon Moll ret float %2 341943b7f1SSimon Moll} 351943b7f1SSimon Moll 361943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 37*b006b60dSNikita Popovdefine i128 @loadi128(ptr nocapture readonly %0) { 381943b7f1SSimon Moll; CHECK-LABEL: loadi128: 3944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 401943b7f1SSimon Moll; CHECK-NEXT: ld %s2, (, %s0) 411943b7f1SSimon Moll; CHECK-NEXT: ld %s1, 8(, %s0) 421943b7f1SSimon Moll; CHECK-NEXT: or %s0, 0, %s2 4344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 44*b006b60dSNikita Popov %2 = load i128, ptr %0, align 16 451943b7f1SSimon Moll ret i128 %2 461943b7f1SSimon Moll} 471943b7f1SSimon Moll 481943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 49*b006b60dSNikita Popovdefine i64 @loadi64(ptr nocapture readonly %0) { 501943b7f1SSimon Moll; CHECK-LABEL: loadi64: 5144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 521943b7f1SSimon Moll; CHECK-NEXT: ld %s0, (, %s0) 5344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 54*b006b60dSNikita Popov %2 = load i64, ptr %0, align 16 551943b7f1SSimon Moll ret i64 %2 561943b7f1SSimon Moll} 571943b7f1SSimon Moll 581943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 59*b006b60dSNikita Popovdefine i32 @loadi32(ptr nocapture readonly %0) { 601943b7f1SSimon Moll; CHECK-LABEL: loadi32: 6144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 621943b7f1SSimon Moll; CHECK-NEXT: ldl.sx %s0, (, %s0) 6344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 64*b006b60dSNikita Popov %2 = load i32, ptr %0, align 16 651943b7f1SSimon Moll ret i32 %2 661943b7f1SSimon Moll} 671943b7f1SSimon Moll 681943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 69*b006b60dSNikita Popovdefine i64 @loadi32sext(ptr nocapture readonly %0) { 701943b7f1SSimon Moll; CHECK-LABEL: loadi32sext: 7144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 721943b7f1SSimon Moll; CHECK-NEXT: ldl.sx %s0, (, %s0) 7344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 74*b006b60dSNikita Popov %2 = load i32, ptr %0, align 16 751943b7f1SSimon Moll %3 = sext i32 %2 to i64 761943b7f1SSimon Moll ret i64 %3 771943b7f1SSimon Moll} 781943b7f1SSimon Moll 791943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 80*b006b60dSNikita Popovdefine i64 @loadi32zext(ptr nocapture readonly %0) { 811943b7f1SSimon Moll; CHECK-LABEL: loadi32zext: 8244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 831943b7f1SSimon Moll; CHECK-NEXT: ldl.zx %s0, (, %s0) 8444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 85*b006b60dSNikita Popov %2 = load i32, ptr %0, align 16 861943b7f1SSimon Moll %3 = zext i32 %2 to i64 871943b7f1SSimon Moll ret i64 %3 881943b7f1SSimon Moll} 891943b7f1SSimon Moll 901943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 91*b006b60dSNikita Popovdefine i16 @loadi16(ptr nocapture readonly %0) { 921943b7f1SSimon Moll; CHECK-LABEL: loadi16: 9344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 941943b7f1SSimon Moll; CHECK-NEXT: ld2b.zx %s0, (, %s0) 9544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 96*b006b60dSNikita Popov %2 = load i16, ptr %0, align 16 971943b7f1SSimon Moll ret i16 %2 981943b7f1SSimon Moll} 991943b7f1SSimon Moll 1001943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 101*b006b60dSNikita Popovdefine i64 @loadi16sext(ptr nocapture readonly %0) { 1021943b7f1SSimon Moll; CHECK-LABEL: loadi16sext: 10344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1041943b7f1SSimon Moll; CHECK-NEXT: ld2b.sx %s0, (, %s0) 10544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 106*b006b60dSNikita Popov %2 = load i16, ptr %0, align 16 1071943b7f1SSimon Moll %3 = sext i16 %2 to i64 1081943b7f1SSimon Moll ret i64 %3 1091943b7f1SSimon Moll} 1101943b7f1SSimon Moll 1111943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 112*b006b60dSNikita Popovdefine i64 @loadi16zext(ptr nocapture readonly %0) { 1131943b7f1SSimon Moll; CHECK-LABEL: loadi16zext: 11444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1151943b7f1SSimon Moll; CHECK-NEXT: ld2b.zx %s0, (, %s0) 11644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 117*b006b60dSNikita Popov %2 = load i16, ptr %0, align 16 1181943b7f1SSimon Moll %3 = zext i16 %2 to i64 1191943b7f1SSimon Moll ret i64 %3 1201943b7f1SSimon Moll} 1211943b7f1SSimon Moll 1221943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 123*b006b60dSNikita Popovdefine i8 @loadi8(ptr nocapture readonly %0) { 1241943b7f1SSimon Moll; CHECK-LABEL: loadi8: 12544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1261943b7f1SSimon Moll; CHECK-NEXT: ld1b.zx %s0, (, %s0) 12744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 128*b006b60dSNikita Popov %2 = load i8, ptr %0, align 16 1291943b7f1SSimon Moll ret i8 %2 1301943b7f1SSimon Moll} 1311943b7f1SSimon Moll 1321943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 133*b006b60dSNikita Popovdefine i64 @loadi8sext(ptr nocapture readonly %0) { 1341943b7f1SSimon Moll; CHECK-LABEL: loadi8sext: 13544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1361943b7f1SSimon Moll; CHECK-NEXT: ld1b.sx %s0, (, %s0) 13744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 138*b006b60dSNikita Popov %2 = load i8, ptr %0, align 16 1391943b7f1SSimon Moll %3 = sext i8 %2 to i64 1401943b7f1SSimon Moll ret i64 %3 1411943b7f1SSimon Moll} 1421943b7f1SSimon Moll 1431943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 144*b006b60dSNikita Popovdefine i64 @loadi8zext(ptr nocapture readonly %0) { 1451943b7f1SSimon Moll; CHECK-LABEL: loadi8zext: 14644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1471943b7f1SSimon Moll; CHECK-NEXT: ld1b.zx %s0, (, %s0) 14844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 149*b006b60dSNikita Popov %2 = load i8, ptr %0, align 16 1501943b7f1SSimon Moll %3 = zext i8 %2 to i64 1511943b7f1SSimon Moll ret i64 %3 1521943b7f1SSimon Moll} 1531943b7f1SSimon Moll 1541943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 1551943b7f1SSimon Molldefine fp128 @loadf128stk() { 1561943b7f1SSimon Moll; CHECK-LABEL: loadf128stk: 1571943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 158686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld %s1, (, %s11) 159686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld %s0, 8(, %s11) 160686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 161686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1621943b7f1SSimon Moll %addr = alloca fp128, align 16 163*b006b60dSNikita Popov %1 = load fp128, ptr %addr, align 16 1641943b7f1SSimon Moll ret fp128 %1 1651943b7f1SSimon Moll} 1661943b7f1SSimon Moll 1671943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 1681943b7f1SSimon Molldefine double @loadf64stk() { 1691943b7f1SSimon Moll; CHECK-LABEL: loadf64stk: 1701943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 171686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld %s0, (, %s11) 172686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 173686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1741943b7f1SSimon Moll %addr = alloca double, align 16 175*b006b60dSNikita Popov %1 = load double, ptr %addr, align 16 1761943b7f1SSimon Moll ret double %1 1771943b7f1SSimon Moll} 1781943b7f1SSimon Moll 1791943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 1801943b7f1SSimon Molldefine float @loadf32stk() { 1811943b7f1SSimon Moll; CHECK-LABEL: loadf32stk: 1821943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 183686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ldu %s0, (, %s11) 184686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 185686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1861943b7f1SSimon Moll %addr = alloca float, align 16 187*b006b60dSNikita Popov %1 = load float, ptr %addr, align 16 1881943b7f1SSimon Moll ret float %1 1891943b7f1SSimon Moll} 1901943b7f1SSimon Moll 1911943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 1921943b7f1SSimon Molldefine i128 @loadi128stk() { 1931943b7f1SSimon Moll; CHECK-LABEL: loadi128stk: 1941943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 195686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld %s0, (, %s11) 196686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld %s1, 8(, %s11) 197686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 198686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1991943b7f1SSimon Moll %addr = alloca i128, align 16 200*b006b60dSNikita Popov %1 = load i128, ptr %addr, align 16 2011943b7f1SSimon Moll ret i128 %1 2021943b7f1SSimon Moll} 2031943b7f1SSimon Moll 2041943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 2051943b7f1SSimon Molldefine i64 @loadi64stk() { 2061943b7f1SSimon Moll; CHECK-LABEL: loadi64stk: 2071943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 208686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld %s0, (, %s11) 209686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 210686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2111943b7f1SSimon Moll %addr = alloca i64, align 16 212*b006b60dSNikita Popov %1 = load i64, ptr %addr, align 16 2131943b7f1SSimon Moll ret i64 %1 2141943b7f1SSimon Moll} 2151943b7f1SSimon Moll 2161943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 2171943b7f1SSimon Molldefine i32 @loadi32stk() { 2181943b7f1SSimon Moll; CHECK-LABEL: loadi32stk: 2191943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 220686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ldl.sx %s0, (, %s11) 221686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 222686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2231943b7f1SSimon Moll %addr = alloca i32, align 16 224*b006b60dSNikita Popov %1 = load i32, ptr %addr, align 16 2251943b7f1SSimon Moll ret i32 %1 2261943b7f1SSimon Moll} 2271943b7f1SSimon Moll 2281943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 2291943b7f1SSimon Molldefine i16 @loadi16stk() { 2301943b7f1SSimon Moll; CHECK-LABEL: loadi16stk: 2311943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 232686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld2b.zx %s0, (, %s11) 233686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 234686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2351943b7f1SSimon Moll %addr = alloca i16, align 16 236*b006b60dSNikita Popov %1 = load i16, ptr %addr, align 16 2371943b7f1SSimon Moll ret i16 %1 2381943b7f1SSimon Moll} 2391943b7f1SSimon Moll 2401943b7f1SSimon Moll; Function Attrs: norecurse nounwind readonly 2411943b7f1SSimon Molldefine i8 @loadi8stk() { 2421943b7f1SSimon Moll; CHECK-LABEL: loadi8stk: 2431943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 244686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: ld1b.zx %s0, (, %s11) 245686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: adds.l %s11, 16, %s11 246686988a5SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2471943b7f1SSimon Moll %addr = alloca i8, align 16 248*b006b60dSNikita Popov %1 = load i8, ptr %addr, align 16 2491943b7f1SSimon Moll ret i8 %1 2501943b7f1SSimon Moll} 251