xref: /llvm-project/llvm/test/CodeGen/VE/Vector/loadvm.ll (revision b006b60dc993b2e0ba3e412c80709477241b6be6)
1adbb46eaSKazushi (Jam) Marukawa; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2adbb46eaSKazushi (Jam) Marukawa; RUN: llc < %s -mtriple=ve-unknown-unknown -mattr=+vpu | FileCheck %s
3adbb46eaSKazushi (Jam) Marukawa
4adbb46eaSKazushi (Jam) Marukawa@v256i1 = common dso_local local_unnamed_addr global <256 x i1> zeroinitializer, align 4
5adbb46eaSKazushi (Jam) Marukawa@v512i1 = common dso_local local_unnamed_addr global <512 x i1> zeroinitializer, align 4
6adbb46eaSKazushi (Jam) Marukawa
7adbb46eaSKazushi (Jam) Marukawa; Function Attrs: norecurse nounwind readonly
8*b006b60dSNikita Popovdefine fastcc <256 x i1> @loadv256i1(ptr nocapture readonly %mp) {
9adbb46eaSKazushi (Jam) Marukawa; CHECK-LABEL: loadv256i1:
10adbb46eaSKazushi (Jam) Marukawa; CHECK:       # %bb.0:
11adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s1, (, %s0)
12adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s2, 8(, %s0)
13adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s3, 16(, %s0)
14adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s0, 24(, %s0)
15adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 0, %s1
16adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 1, %s2
17adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 2, %s3
18adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 3, %s0
19adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    b.l.t (, %s10)
20*b006b60dSNikita Popov  %m = load <256 x i1>, ptr %mp, align 16
21adbb46eaSKazushi (Jam) Marukawa  ret <256 x i1> %m
22adbb46eaSKazushi (Jam) Marukawa}
23adbb46eaSKazushi (Jam) Marukawa
24adbb46eaSKazushi (Jam) Marukawa; Function Attrs: norecurse nounwind readonly
25adbb46eaSKazushi (Jam) Marukawadefine fastcc <256 x i1> @loadv256i1com() {
26adbb46eaSKazushi (Jam) Marukawa; CHECK-LABEL: loadv256i1com:
27adbb46eaSKazushi (Jam) Marukawa; CHECK:       # %bb.0:
28adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lea %s0, v256i1@lo
29adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    and %s0, %s0, (32)0
30adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lea.sl %s0, v256i1@hi(, %s0)
31adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s1, (, %s0)
32adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s2, 8(, %s0)
33adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s3, 16(, %s0)
34adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s0, 24(, %s0)
35adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 0, %s1
36adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 1, %s2
37adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 2, %s3
38adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm1, 3, %s0
39adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    b.l.t (, %s10)
40*b006b60dSNikita Popov  %m = load <256 x i1>, ptr @v256i1, align 16
41adbb46eaSKazushi (Jam) Marukawa  ret <256 x i1> %m
42adbb46eaSKazushi (Jam) Marukawa}
43adbb46eaSKazushi (Jam) Marukawa
44adbb46eaSKazushi (Jam) Marukawa; Function Attrs: norecurse nounwind readonly
45*b006b60dSNikita Popovdefine fastcc <512 x i1> @loadv512i1(ptr nocapture readonly %mp) {
46adbb46eaSKazushi (Jam) Marukawa; CHECK-LABEL: loadv512i1:
47adbb46eaSKazushi (Jam) Marukawa; CHECK:       # %bb.0:
48adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s1, (, %s0)
49adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s2, 8(, %s0)
50adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s3, 16(, %s0)
51adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s4, 24(, %s0)
52adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 0, %s1
53adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 1, %s2
54adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 2, %s3
55adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 3, %s4
56adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s1, 32(, %s0)
57adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s2, 40(, %s0)
58adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s3, 48(, %s0)
59adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s0, 56(, %s0)
60adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 0, %s1
61adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 1, %s2
62adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 2, %s3
63adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 3, %s0
64adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    b.l.t (, %s10)
65*b006b60dSNikita Popov  %m = load <512 x i1>, ptr %mp, align 16
66adbb46eaSKazushi (Jam) Marukawa  ret <512 x i1> %m
67adbb46eaSKazushi (Jam) Marukawa}
68adbb46eaSKazushi (Jam) Marukawa
69adbb46eaSKazushi (Jam) Marukawa; Function Attrs: norecurse nounwind readonly
70adbb46eaSKazushi (Jam) Marukawadefine fastcc <512 x i1> @loadv512i1com() {
71adbb46eaSKazushi (Jam) Marukawa; CHECK-LABEL: loadv512i1com:
72adbb46eaSKazushi (Jam) Marukawa; CHECK:       # %bb.0:
73adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lea %s0, v512i1@lo
74adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    and %s0, %s0, (32)0
75adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lea.sl %s0, v512i1@hi(, %s0)
76adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s1, (, %s0)
77adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s2, 8(, %s0)
78adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s3, 16(, %s0)
79adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s4, 24(, %s0)
80adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 0, %s1
81adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 1, %s2
82adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 2, %s3
83adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm3, 3, %s4
84adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s1, 32(, %s0)
85adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s2, 40(, %s0)
86adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s3, 48(, %s0)
87adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    ld %s0, 56(, %s0)
88adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 0, %s1
89adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 1, %s2
90adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 2, %s3
91adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    lvm %vm2, 3, %s0
92adbb46eaSKazushi (Jam) Marukawa; CHECK-NEXT:    b.l.t (, %s10)
93*b006b60dSNikita Popov  %m = load <512 x i1>, ptr @v512i1, align 16
94adbb46eaSKazushi (Jam) Marukawa  ret <512 x i1> %m
95adbb46eaSKazushi (Jam) Marukawa}
96adbb46eaSKazushi (Jam) Marukawa
97