@@ -25,11 +25,16 @@ define i32 @pack_i32(i32 %a, i32 %b) nounwind {
25
25
}
26
26
27
27
define i32 @pack_i32_2 (i16 zeroext %a , i16 zeroext %b ) nounwind {
28
- ; CHECK-LABEL: pack_i32_2:
29
- ; CHECK: # %bb.0:
30
- ; CHECK-NEXT: slli a1, a1, 16
31
- ; CHECK-NEXT: or a0, a1, a0
32
- ; CHECK-NEXT: ret
28
+ ; RV32I-LABEL: pack_i32_2:
29
+ ; RV32I: # %bb.0:
30
+ ; RV32I-NEXT: slli a1, a1, 16
31
+ ; RV32I-NEXT: or a0, a1, a0
32
+ ; RV32I-NEXT: ret
33
+ ;
34
+ ; RV32ZBKB-LABEL: pack_i32_2:
35
+ ; RV32ZBKB: # %bb.0:
36
+ ; RV32ZBKB-NEXT: pack a0, a0, a1
37
+ ; RV32ZBKB-NEXT: ret
33
38
%zexta = zext i16 %a to i32
34
39
%zextb = zext i16 %b to i32
35
40
%shl1 = shl i32 %zextb , 16
@@ -38,12 +43,18 @@ define i32 @pack_i32_2(i16 zeroext %a, i16 zeroext %b) nounwind {
38
43
}
39
44
40
45
define i32 @pack_i32_3 (i16 zeroext %0 , i16 zeroext %1 , i32 %2 ) {
41
- ; CHECK-LABEL: pack_i32_3:
42
- ; CHECK: # %bb.0:
43
- ; CHECK-NEXT: slli a0, a0, 16
44
- ; CHECK-NEXT: or a0, a0, a1
45
- ; CHECK-NEXT: add a0, a0, a2
46
- ; CHECK-NEXT: ret
46
+ ; RV32I-LABEL: pack_i32_3:
47
+ ; RV32I: # %bb.0:
48
+ ; RV32I-NEXT: slli a0, a0, 16
49
+ ; RV32I-NEXT: or a0, a0, a1
50
+ ; RV32I-NEXT: add a0, a0, a2
51
+ ; RV32I-NEXT: ret
52
+ ;
53
+ ; RV32ZBKB-LABEL: pack_i32_3:
54
+ ; RV32ZBKB: # %bb.0:
55
+ ; RV32ZBKB-NEXT: pack a0, a1, a0
56
+ ; RV32ZBKB-NEXT: add a0, a0, a2
57
+ ; RV32ZBKB-NEXT: ret
47
58
%4 = zext i16 %0 to i32
48
59
%5 = shl nuw i32 %4 , 16
49
60
%6 = zext i16 %1 to i32
@@ -175,11 +186,16 @@ define i64 @packh_i64_2(i64 %a, i64 %b) nounwind {
175
186
176
187
177
188
define zeroext i16 @packh_i16 (i8 zeroext %a , i8 zeroext %b ) nounwind {
178
- ; CHECK-LABEL: packh_i16:
179
- ; CHECK: # %bb.0:
180
- ; CHECK-NEXT: slli a1, a1, 8
181
- ; CHECK-NEXT: or a0, a1, a0
182
- ; CHECK-NEXT: ret
189
+ ; RV32I-LABEL: packh_i16:
190
+ ; RV32I: # %bb.0:
191
+ ; RV32I-NEXT: slli a1, a1, 8
192
+ ; RV32I-NEXT: or a0, a1, a0
193
+ ; RV32I-NEXT: ret
194
+ ;
195
+ ; RV32ZBKB-LABEL: packh_i16:
196
+ ; RV32ZBKB: # %bb.0:
197
+ ; RV32ZBKB-NEXT: packh a0, a0, a1
198
+ ; RV32ZBKB-NEXT: ret
183
199
%zext = zext i8 %a to i16
184
200
%zext1 = zext i8 %b to i16
185
201
%shl = shl i16 %zext1 , 8
@@ -189,13 +205,19 @@ define zeroext i16 @packh_i16(i8 zeroext %a, i8 zeroext %b) nounwind {
189
205
190
206
191
207
define zeroext i16 @packh_i16_2 (i8 zeroext %0 , i8 zeroext %1 , i8 zeroext %2 ) {
192
- ; CHECK-LABEL: packh_i16_2:
193
- ; CHECK: # %bb.0:
194
- ; CHECK-NEXT: add a0, a1, a0
195
- ; CHECK-NEXT: andi a0, a0, 255
196
- ; CHECK-NEXT: slli a0, a0, 8
197
- ; CHECK-NEXT: or a0, a0, a2
198
- ; CHECK-NEXT: ret
208
+ ; RV32I-LABEL: packh_i16_2:
209
+ ; RV32I: # %bb.0:
210
+ ; RV32I-NEXT: add a0, a1, a0
211
+ ; RV32I-NEXT: andi a0, a0, 255
212
+ ; RV32I-NEXT: slli a0, a0, 8
213
+ ; RV32I-NEXT: or a0, a0, a2
214
+ ; RV32I-NEXT: ret
215
+ ;
216
+ ; RV32ZBKB-LABEL: packh_i16_2:
217
+ ; RV32ZBKB: # %bb.0:
218
+ ; RV32ZBKB-NEXT: add a0, a1, a0
219
+ ; RV32ZBKB-NEXT: packh a0, a2, a0
220
+ ; RV32ZBKB-NEXT: ret
199
221
%4 = add i8 %1 , %0
200
222
%5 = zext i8 %4 to i16
201
223
%6 = shl i16 %5 , 8
@@ -205,14 +227,21 @@ define zeroext i16 @packh_i16_2(i8 zeroext %0, i8 zeroext %1, i8 zeroext %2) {
205
227
}
206
228
207
229
define void @packh_i16_3 (i8 zeroext %0 , i8 zeroext %1 , i8 zeroext %2 , ptr %p ) {
208
- ; CHECK-LABEL: packh_i16_3:
209
- ; CHECK: # %bb.0:
210
- ; CHECK-NEXT: add a0, a1, a0
211
- ; CHECK-NEXT: andi a0, a0, 255
212
- ; CHECK-NEXT: slli a0, a0, 8
213
- ; CHECK-NEXT: or a0, a0, a2
214
- ; CHECK-NEXT: sh a0, 0(a3)
215
- ; CHECK-NEXT: ret
230
+ ; RV32I-LABEL: packh_i16_3:
231
+ ; RV32I: # %bb.0:
232
+ ; RV32I-NEXT: add a0, a1, a0
233
+ ; RV32I-NEXT: andi a0, a0, 255
234
+ ; RV32I-NEXT: slli a0, a0, 8
235
+ ; RV32I-NEXT: or a0, a0, a2
236
+ ; RV32I-NEXT: sh a0, 0(a3)
237
+ ; RV32I-NEXT: ret
238
+ ;
239
+ ; RV32ZBKB-LABEL: packh_i16_3:
240
+ ; RV32ZBKB: # %bb.0:
241
+ ; RV32ZBKB-NEXT: add a0, a1, a0
242
+ ; RV32ZBKB-NEXT: packh a0, a2, a0
243
+ ; RV32ZBKB-NEXT: sh a0, 0(a3)
244
+ ; RV32ZBKB-NEXT: ret
216
245
%4 = add i8 %1 , %0
217
246
%5 = zext i8 %4 to i16
218
247
%6 = shl i16 %5 , 8
0 commit comments