7
7
define void @constant_forward_stride (ptr %s , ptr %d ) {
8
8
; CHECK-LABEL: constant_forward_stride:
9
9
; CHECK: # %bb.0:
10
- ; CHECK-NEXT: addi a2, a0, 16
11
- ; CHECK-NEXT: addi a3, a0, 32
12
- ; CHECK-NEXT: addi a4, a0, 48
13
- ; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma
14
- ; CHECK-NEXT: vle8.v v8, (a0)
15
- ; CHECK-NEXT: vle8.v v9, (a2)
16
- ; CHECK-NEXT: vle8.v v10, (a3)
17
- ; CHECK-NEXT: vle8.v v11, (a4)
18
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
19
- ; CHECK-NEXT: vslideup.vi v8, v9, 2
20
- ; CHECK-NEXT: vsetivli zero, 6, e8, mf2, tu, ma
21
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
22
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
23
- ; CHECK-NEXT: vslideup.vi v8, v11, 6
24
- ; CHECK-NEXT: vse8.v v8, (a1)
10
+ ; CHECK-NEXT: li a2, 16
11
+ ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
12
+ ; CHECK-NEXT: vlse16.v v8, (a0), a2
13
+ ; CHECK-NEXT: vse16.v v8, (a1)
25
14
; CHECK-NEXT: ret
26
15
%1 = getelementptr inbounds i8 , ptr %s , i64 16
27
16
%2 = getelementptr inbounds i8 , ptr %s , i64 32
@@ -40,21 +29,11 @@ define void @constant_forward_stride(ptr %s, ptr %d) {
40
29
define void @constant_forward_stride2 (ptr %s , ptr %d ) {
41
30
; CHECK-LABEL: constant_forward_stride2:
42
31
; CHECK: # %bb.0:
43
- ; CHECK-NEXT: addi a2, a0, -16
44
- ; CHECK-NEXT: addi a3, a0, -32
45
- ; CHECK-NEXT: addi a4, a0, -48
46
- ; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma
47
- ; CHECK-NEXT: vle8.v v8, (a4)
48
- ; CHECK-NEXT: vle8.v v9, (a3)
49
- ; CHECK-NEXT: vle8.v v10, (a2)
50
- ; CHECK-NEXT: vle8.v v11, (a0)
51
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
52
- ; CHECK-NEXT: vslideup.vi v8, v9, 2
53
- ; CHECK-NEXT: vsetivli zero, 6, e8, mf2, tu, ma
54
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
55
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
56
- ; CHECK-NEXT: vslideup.vi v8, v11, 6
57
- ; CHECK-NEXT: vse8.v v8, (a1)
32
+ ; CHECK-NEXT: addi a0, a0, -48
33
+ ; CHECK-NEXT: li a2, 16
34
+ ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
35
+ ; CHECK-NEXT: vlse16.v v8, (a0), a2
36
+ ; CHECK-NEXT: vse16.v v8, (a1)
58
37
; CHECK-NEXT: ret
59
38
%1 = getelementptr inbounds i8 , ptr %s , i64 -16
60
39
%2 = getelementptr inbounds i8 , ptr %s , i64 -32
@@ -73,21 +52,10 @@ define void @constant_forward_stride2(ptr %s, ptr %d) {
73
52
define void @constant_forward_stride3 (ptr %s , ptr %d ) {
74
53
; CHECK-LABEL: constant_forward_stride3:
75
54
; CHECK: # %bb.0:
76
- ; CHECK-NEXT: addi a2, a0, 16
77
- ; CHECK-NEXT: addi a3, a0, 32
78
- ; CHECK-NEXT: addi a4, a0, 48
79
- ; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma
80
- ; CHECK-NEXT: vle8.v v8, (a0)
81
- ; CHECK-NEXT: vle8.v v9, (a2)
82
- ; CHECK-NEXT: vle8.v v10, (a3)
83
- ; CHECK-NEXT: vle8.v v11, (a4)
84
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
85
- ; CHECK-NEXT: vslideup.vi v8, v9, 2
86
- ; CHECK-NEXT: vsetivli zero, 6, e8, mf2, tu, ma
87
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
88
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
89
- ; CHECK-NEXT: vslideup.vi v8, v11, 6
90
- ; CHECK-NEXT: vse8.v v8, (a1)
55
+ ; CHECK-NEXT: li a2, 16
56
+ ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
57
+ ; CHECK-NEXT: vlse16.v v8, (a0), a2
58
+ ; CHECK-NEXT: vse16.v v8, (a1)
91
59
; CHECK-NEXT: ret
92
60
%1 = getelementptr inbounds i8 , ptr %s , i64 16
93
61
%2 = getelementptr inbounds i8 , ptr %s , i64 32
@@ -109,21 +77,10 @@ define void @constant_forward_stride3(ptr %s, ptr %d) {
109
77
define void @constant_back_stride (ptr %s , ptr %d ) {
110
78
; CHECK-LABEL: constant_back_stride:
111
79
; CHECK: # %bb.0:
112
- ; CHECK-NEXT: addi a2, a0, -16
113
- ; CHECK-NEXT: addi a3, a0, -32
114
- ; CHECK-NEXT: addi a4, a0, -48
115
- ; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma
116
- ; CHECK-NEXT: vle8.v v8, (a0)
117
- ; CHECK-NEXT: vle8.v v9, (a2)
118
- ; CHECK-NEXT: vle8.v v10, (a3)
119
- ; CHECK-NEXT: vle8.v v11, (a4)
120
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
121
- ; CHECK-NEXT: vslideup.vi v8, v9, 2
122
- ; CHECK-NEXT: vsetivli zero, 6, e8, mf2, tu, ma
123
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
124
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
125
- ; CHECK-NEXT: vslideup.vi v8, v11, 6
126
- ; CHECK-NEXT: vse8.v v8, (a1)
80
+ ; CHECK-NEXT: li a2, -16
81
+ ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
82
+ ; CHECK-NEXT: vlse16.v v8, (a0), a2
83
+ ; CHECK-NEXT: vse16.v v8, (a1)
127
84
; CHECK-NEXT: ret
128
85
%1 = getelementptr inbounds i8 , ptr %s , i64 -16
129
86
%2 = getelementptr inbounds i8 , ptr %s , i64 -32
@@ -142,21 +99,11 @@ define void @constant_back_stride(ptr %s, ptr %d) {
142
99
define void @constant_back_stride2 (ptr %s , ptr %d ) {
143
100
; CHECK-LABEL: constant_back_stride2:
144
101
; CHECK: # %bb.0:
145
- ; CHECK-NEXT: addi a2, a0, 16
146
- ; CHECK-NEXT: addi a3, a0, 32
147
- ; CHECK-NEXT: addi a4, a0, 48
148
- ; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma
149
- ; CHECK-NEXT: vle8.v v8, (a4)
150
- ; CHECK-NEXT: vle8.v v9, (a3)
151
- ; CHECK-NEXT: vle8.v v10, (a2)
152
- ; CHECK-NEXT: vle8.v v11, (a0)
153
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
154
- ; CHECK-NEXT: vslideup.vi v8, v9, 2
155
- ; CHECK-NEXT: vsetivli zero, 6, e8, mf2, tu, ma
156
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
157
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
158
- ; CHECK-NEXT: vslideup.vi v8, v11, 6
159
- ; CHECK-NEXT: vse8.v v8, (a1)
102
+ ; CHECK-NEXT: addi a0, a0, 48
103
+ ; CHECK-NEXT: li a2, -16
104
+ ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
105
+ ; CHECK-NEXT: vlse16.v v8, (a0), a2
106
+ ; CHECK-NEXT: vse16.v v8, (a1)
160
107
; CHECK-NEXT: ret
161
108
%1 = getelementptr inbounds i8 , ptr %s , i64 16
162
109
%2 = getelementptr inbounds i8 , ptr %s , i64 32
@@ -175,21 +122,10 @@ define void @constant_back_stride2(ptr %s, ptr %d) {
175
122
define void @constant_back_stride3 (ptr %s , ptr %d ) {
176
123
; CHECK-LABEL: constant_back_stride3:
177
124
; CHECK: # %bb.0:
178
- ; CHECK-NEXT: addi a2, a0, -16
179
- ; CHECK-NEXT: addi a3, a0, -32
180
- ; CHECK-NEXT: addi a4, a0, -48
181
- ; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma
182
- ; CHECK-NEXT: vle8.v v8, (a0)
183
- ; CHECK-NEXT: vle8.v v9, (a2)
184
- ; CHECK-NEXT: vle8.v v10, (a3)
185
- ; CHECK-NEXT: vle8.v v11, (a4)
186
- ; CHECK-NEXT: vsetivli zero, 4, e8, mf2, tu, ma
187
- ; CHECK-NEXT: vslideup.vi v8, v9, 2
188
- ; CHECK-NEXT: vsetivli zero, 6, e8, mf2, tu, ma
189
- ; CHECK-NEXT: vslideup.vi v8, v10, 4
190
- ; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
191
- ; CHECK-NEXT: vslideup.vi v8, v11, 6
192
- ; CHECK-NEXT: vse8.v v8, (a1)
125
+ ; CHECK-NEXT: li a2, -16
126
+ ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
127
+ ; CHECK-NEXT: vlse16.v v8, (a0), a2
128
+ ; CHECK-NEXT: vse16.v v8, (a1)
193
129
; CHECK-NEXT: ret
194
130
%1 = getelementptr inbounds i8 , ptr %s , i64 -16
195
131
%2 = getelementptr inbounds i8 , ptr %s , i64 -32
0 commit comments