95 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=ve-unknown-unknown -mattr=+vpu | FileCheck %s3 4@v256i64 = common dso_local local_unnamed_addr global <256 x i64> zeroinitializer, align 165 6; Function Attrs: norecurse nounwind readonly7define fastcc <256 x i64> @loadv256i64(ptr nocapture readonly) {8; CHECK-LABEL: loadv256i64:9; CHECK: # %bb.0:10; CHECK-NEXT: lea %s1, 25611; CHECK-NEXT: lvl %s112; CHECK-NEXT: vld %v0, 8, %s013; CHECK-NEXT: b.l.t (, %s10)14 %2 = load <256 x i64>, ptr %0, align 1615 ret <256 x i64> %216}17 18; Function Attrs: norecurse nounwind readonly19define fastcc <256 x double> @loadv256f64(ptr nocapture readonly) {20; CHECK-LABEL: loadv256f64:21; CHECK: # %bb.0:22; CHECK-NEXT: lea %s1, 25623; CHECK-NEXT: lvl %s124; CHECK-NEXT: vld %v0, 8, %s025; CHECK-NEXT: b.l.t (, %s10)26 %2 = load <256 x double>, ptr %0, align 1627 ret <256 x double> %228}29 30; Function Attrs: norecurse nounwind readonly31define fastcc <256 x i32> @loadv256i32(ptr nocapture readonly) {32; CHECK-LABEL: loadv256i32:33; CHECK: # %bb.0:34; CHECK-NEXT: lea %s1, 25635; CHECK-NEXT: lvl %s136; CHECK-NEXT: vldl.zx %v0, 4, %s037; CHECK-NEXT: b.l.t (, %s10)38 %2 = load <256 x i32>, ptr %0, align 1639 ret <256 x i32> %240}41 42; Function Attrs: norecurse nounwind readonly43define fastcc <256 x float> @loadv256f32(ptr nocapture readonly) {44; CHECK-LABEL: loadv256f32:45; CHECK: # %bb.0:46; CHECK-NEXT: lea %s1, 25647; CHECK-NEXT: lvl %s148; CHECK-NEXT: vldu %v0, 4, %s049; CHECK-NEXT: b.l.t (, %s10)50 %2 = load <256 x float>, ptr %0, align 1651 ret <256 x float> %252}53 54; Function Attrs: norecurse nounwind readonly55define fastcc <256 x i64> @loadv256i64stk() {56; CHECK-LABEL: loadv256i64stk:57; CHECK: # %bb.0:58; CHECK-NEXT: lea %s11, -2048(, %s11)59; CHECK-NEXT: brge.l.t %s11, %s8, .LBB4_260; CHECK-NEXT: # %bb.1:61; CHECK-NEXT: ld %s61, 24(, %s14)62; CHECK-NEXT: or %s62, 0, %s063; CHECK-NEXT: lea %s63, 31564; CHECK-NEXT: shm.l %s63, (%s61)65; CHECK-NEXT: shm.l %s8, 8(%s61)66; CHECK-NEXT: shm.l %s11, 16(%s61)67; CHECK-NEXT: monc68; CHECK-NEXT: or %s0, 0, %s6269; CHECK-NEXT: .LBB4_2:70; CHECK-NEXT: lea %s0, 25671; CHECK-NEXT: lea %s1, (, %s11)72; CHECK-NEXT: lvl %s073; CHECK-NEXT: vld %v0, 8, %s174; CHECK-NEXT: lea %s11, 2048(, %s11)75; CHECK-NEXT: b.l.t (, %s10)76 %addr = alloca <256 x i64>, align 1677 %1 = load <256 x i64>, ptr %addr, align 1678 ret <256 x i64> %179}80 81; Function Attrs: norecurse nounwind readonly82define fastcc <256 x i64> @loadv256i64com() {83; CHECK-LABEL: loadv256i64com:84; CHECK: # %bb.0:85; CHECK-NEXT: lea %s0, v256i64@lo86; CHECK-NEXT: and %s0, %s0, (32)087; CHECK-NEXT: lea.sl %s0, v256i64@hi(, %s0)88; CHECK-NEXT: lea %s1, 25689; CHECK-NEXT: lvl %s190; CHECK-NEXT: vld %v0, 8, %s091; CHECK-NEXT: b.l.t (, %s10)92 %1 = load <256 x i64>, ptr @v256i64, align 1693 ret <256 x i64> %194}95